1
0
mirror of https://github.com/anope/anope.git synced 2026-06-30 10:56:38 +02:00

Merge pull request #20 from Phr33d0m/1.9

Redesign body of the pages.
This commit is contained in:
Adam
2013-08-23 00:03:58 -07:00
23 changed files with 623 additions and 531 deletions
@@ -23,7 +23,7 @@ bool WebCPanel::OperServ::Akill::OnRequest(HTTPProvider *server, const Anope::st
else
{
if (akills->GetCount() == 0)
replacements["MESSAGES"] = "No Akills to display.";
replacements["AKILLS"] = "No Akills to display.";
if (message.post_data.count("mask") > 0 && message.post_data.count("expiry") > 0 && message.post_data.count("reason") > 0)
{
@@ -1,12 +1,13 @@
{INCLUDE header.html}
{FOR M IN MESSAGES}
<div class="alert alert-info">
{M}<br>
</div>
{END FOR}
<div class="panel-heading">Access List</div>
<div class="panel-body">
{FOR M IN MESSAGES}
<div class="alert alert-info">
{M}<br>
</div>
{END FOR}
<h2>Access List</h2>
{IF EXISTS ACCESSES}
{IF EXISTS ACCESSES}
<table id="tableNSAccess" class="table table-hover">
<thead>
<tr>
@@ -29,41 +30,41 @@
{END FOR}
</tbody>
</table>
{ELSE}
{ELSE}
<em>Access list is empty.</em>
{END IF}
{END IF}
<hr>
<hr>
<h4>Add an access entry</h4>
<form class="form-horizontal" method="post" action="/chanserv/access?channel={ESCAPED_CHANNEL}">
<div class="form-group">
<label class="control-label col-lg-2" for="mask">Mask:</label>
<div class="col-lg-6">
<input class="form-control" type="text" name="mask" id="mask" placeholder="Valid HostMask">
<h4>Add an access entry</h4>
<form class="form-horizontal" method="post" action="/chanserv/access?channel={ESCAPED_CHANNEL}">
<div class="form-group">
<label class="control-label col-lg-2" for="mask">Mask:</label>
<div class="col-lg-6">
<input class="form-control" type="text" name="mask" id="mask" placeholder="Valid HostMask">
</div>
</div>
</div>
<div class="form-group">
<label class="control-label col-lg-2" for="access">Access:</label>
<div class="col-lg-6">
<input class="form-control" type="text" name="access" id="access" placeholder="Access level">
<div class="form-group">
<label class="control-label col-lg-2" for="access">Access:</label>
<div class="col-lg-6">
<input class="form-control" type="text" name="access" id="access" placeholder="Access level">
</div>
</div>
</div>
<div class="form-group">
<label class="control-label col-lg-2" for="reason">Provider:</label>
<div class="col-lg-6">
<select name="provider" class="form-control">
{FOR PROVIDER IN PROVIDERS}
<option value="{PROVIDER}">{PROVIDER}</option>
{END FOR}
</select>
<div class="form-group">
<label class="control-label col-lg-2" for="reason">Provider:</label>
<div class="col-lg-6">
<select name="provider" class="form-control">
{FOR PROVIDER IN PROVIDERS}
<option value="{PROVIDER}">{PROVIDER}</option>
{END FOR}
</select>
</div>
</div>
</div>
<div class="form-group">
<div class="col-lg-offset-2 col-lg-6">
<button type="submit" class="btn btn-primary">Send</button>
<div class="form-group">
<div class="col-lg-offset-2 col-lg-6">
<button type="submit" class="btn btn-primary">Send</button>
</div>
</div>
</div>
</form>
</form>
</div>
{INCLUDE footer.html}
@@ -1,12 +1,13 @@
{INCLUDE header.html}
{FOR M IN MESSAGES}
<div class="alert alert-info">
{M}<br>
</div>
{END FOR}
<div class="panel-heading">Akick List</div>
<div class="panel-body">
{FOR M IN MESSAGES}
<div class="alert alert-info">
{M}<br>
</div>
{END FOR}
<h2>Akick List</h2>
{IF EXISTS MASKS}
{IF EXISTS MASKS}
<table id="tableNSAccess" class="table table-hover">
<thead>
<tr>
@@ -27,32 +28,31 @@
{END FOR}
</tbody>
</table>
{ELSE}
{ELSE}
<em>Akick list is empty.</em>
{END IF}
{END IF}
<hr>
<hr>
<h4>Add an akick entry</h4>
<form class="form-horizontal" method="post" action="/chanserv/akick?channel={ESCAPED_CHANNEL}">
<div class="form-group">
<label class="control-label col-lg-2" for="mask">Mask:</label>
<div class="col-lg-6">
<input class="form-control" type="text" name="mask" id="mask" placeholder="Valid HostMask">
<h4>Add an akick entry</h4>
<form class="form-horizontal" method="post" action="/chanserv/akick?channel={ESCAPED_CHANNEL}">
<div class="form-group">
<label class="control-label col-lg-2" for="mask">Mask:</label>
<div class="col-lg-6">
<input class="form-control" type="text" name="mask" id="mask" placeholder="Valid HostMask">
</div>
</div>
</div>
<div class="form-group">
<label class="control-label col-lg-2" for="reason">Reason:</label>
<div class="col-lg-6">
<input class="form-control" type="text" name="reason" id="reason" placeholder="Reason for AKICK">
<div class="form-group">
<label class="control-label col-lg-2" for="reason">Reason:</label>
<div class="col-lg-6">
<input class="form-control" type="text" name="reason" id="reason" placeholder="Reason for AKICK">
</div>
</div>
</div>
<div class="form-group">
<div class="col-lg-offset-2 col-lg-6">
<button type="submit" class="btn btn-primary">Send</button>
<div class="form-group">
<div class="col-lg-offset-2 col-lg-6">
<button type="submit" class="btn btn-primary">Send</button>
</div>
</div>
</div>
</form>
</form>
</div>
{INCLUDE footer.html}
@@ -1,34 +1,36 @@
{INCLUDE header.html}
{FOR M IN MESSAGES}
<div class="alert alert-info">
{M}<br>
</div>
{END FOR}
<h2>Channels you can drop</h2>
<div class="scroll">
{FOR CH,ECH IN CHANNEL_NAMES,ESCAPED_CHANNEL_NAMES}
<a href="/chanserv/drop?channel={ECH}">{CH}</a></br>
{END FOR}
</div>
{IF EXISTS CHANNEL_DROP}
<div class="alert alert-danger" style="margin-top: 15px; margin-bottom: 0; padding-bottom: 0;">
<h4>Drop Channel <strong>{CHANNEL_DROP}</strong>?</h4>
<form class="form-horizontal" method="post" action="/operserv/akill">
<input type="hidden" value="{CHANNEL_DROP}" name="channel">
<input type="hidden" value="yes" name="drop">
<div class="form-group">
<label class="control-label col-lg-3" for="confChan">Confirm channel name:</label>
<div class="col-lg-4">
<input class="form-control" type="text" name="confChan" id="confChan" placeholder="This cannot be undone!">
</div>
</div>
<div class="form-group">
<div class="col-lg-offset-3 col-lg-4">
<button type="submit" class="btn btn-danger">Drop</button>
</div>
</div>
</form>
<div class="panel-heading">Channels you can drop</div>
<div class="panel-body">
{FOR M IN MESSAGES}
<div class="alert alert-info">
{M}<br>
</div>
{END IF}
{END FOR}
<div class="scroll">
{FOR CH,ECH IN CHANNEL_NAMES,ESCAPED_CHANNEL_NAMES}
<a href="/chanserv/drop?channel={ECH}">{CH}</a></br>
{END FOR}
</div>
{IF EXISTS CHANNEL_DROP}
<div class="alert alert-danger" style="margin-top: 15px; margin-bottom: 0; padding-bottom: 0;">
<h4>Drop Channel <strong>{CHANNEL_DROP}</strong>?</h4>
<form class="form-horizontal" method="post" action="/chanserv/drop">
<input type="hidden" value="{CHANNEL_DROP}" name="channel">
<input type="hidden" value="yes" name="drop">
<div class="form-group">
<label class="control-label col-lg-3" for="confChan">Confirm channel name:</label>
<div class="col-lg-4">
<input class="form-control" type="text" name="confChan" id="confChan" placeholder="This cannot be undone!">
</div>
</div>
<div class="form-group">
<div class="col-lg-offset-3 col-lg-4">
<button type="submit" class="btn btn-danger">Drop</button>
</div>
</div>
</form>
</div>
{END IF}
</div>
{INCLUDE footer.html}
@@ -1,8 +1,17 @@
{INCLUDE header.html}
<h2>Channels you have access in</h2>
<div class="cinfo">
{FOR CH,ECH IN CHANNEL_NAMES,ESCAPED_CHANNEL_NAMES}
<a href="/chanserv/set?channel={ECH}">{CH}</a></br>
{END FOR}
<div class="panel-heading">Channels you have access in</div>
<div class="panel-body">
{IF EXISTS CHANNEL_NAMES}
<div>
<h3 style="margin: -12px 0 20px 0;"><small>Choose a channel to access it's Settings, Access or Akick pages.</small></h3>
<ul id="channelList">
{FOR CH,ECH IN CHANNEL_NAMES,ESCAPED_CHANNEL_NAMES}
<li><a href="/chanserv/set?channel={ECH}">{CH}</a></li>
{END FOR}
</ul>
</div>
{ELSE}
<em>You don't have access in any channel</em><br>
{END IF}
</div>
{INCLUDE footer.html}
@@ -1,76 +1,81 @@
{INCLUDE header.html}
{FOR M IN MESSAGES}
<div class="alert alert-info">
{M}<br>
</div>
{END FOR}
<div class="panel-heading">Channel Information</div>
<div class="panel-body">
{FOR M IN MESSAGES}
<div class="alert alert-info">
{M}<br>
</div>
{END FOR}
<h2>Channel Information</h2>
<form method="post" action="/chanserv/set?channel={CHANNEL_ESCAPED}">
<table id="tableInfo" class="table table-hover">
<tr>
<td>Channel Name</td>
<td>{CHANNEL}</td>
</tr>
{IF EXISTS FOUNDER}
<tr>
<td>Founder</td>
<td>{FOUNDER}</td>
</tr>
{END IF}
{IF EXISTS SUCCESSOR}
<tr>
<td>Succsesor</td>
<td>{SUCCESSOR}</td>
</tr>
{END IF}
<tr>
<td>Time registered</td>
<td>{TIME_REGISTERED}</td>
</tr>
<tr>
<td>Last used</td>
<td>{LAST_USED}</td>
</tr>
{IF EXISTS LAST_TOPIC}
<tr>
<td>Last topic</td>
<td>{LAST_TOPIC}</td>
</tr>
<tr>
<td>Set by</td>
<td>{LAST_TOPIC_SETTER}</td>
</tr>
{END IF}
<tr>
<td>Keep topic</td>
<td><input type="checkbox" name="keeptopic" value="on" {IF EXISTS KEEPTOPIC}checked{END IF}></td>
</tr>
<tr>
<td>Peace</td>
<td><input type="checkbox" name="peace" value="on" {IF EXISTS PEACE}checked{END IF}></td>
</tr>
<tr>
<td>Private</td>
<td><input type="checkbox" name="private" value="on" {IF EXISTS PRIVATE}checked{END IF}></td>
</tr>
<tr>
<td>Restricted</td>
<td><input type="checkbox" name="restricted" value="on" {IF EXISTS RESTRICTED}checked{END IF}></td>
</tr>
<tr>
<td>Secure</td>
<td><input type="checkbox" name="secure" value="on" {IF EXISTS SECURE}checked{END IF}></td>
</tr>
<tr>
<td>Secure Ops</td>
<td><input type="checkbox" name="secureops" value="on" {IF EXISTS SECUREOPS}checked{END IF}></td>
</tr>
<tr>
<td>Topic Lock</td>
<td><input type="checkbox" name="topiclock" value="on" {IF EXISTS TOPICLOCK}checked{END IF}></td>
</tr>
</table>
<input type="submit" value="Save">
</form>
<form method="post" action="/chanserv/set?channel={CHANNEL_ESCAPED}">
<table id="tableInfo" class="table table-hover">
<tr>
<td>Channel Name</td>
<td>{CHANNEL}</td>
</tr>
{IF EXISTS FOUNDER}
<tr>
<td>Founder</td>
<td>{FOUNDER}</td>
</tr>
{END IF}
{IF EXISTS SUCCESSOR}
<tr>
<td>Succsesor</td>
<td>{SUCCESSOR}</td>
</tr>
{END IF}
<tr>
<td>Time registered</td>
<td>{TIME_REGISTERED}</td>
</tr>
<tr>
<td>Last used</td>
<td>{LAST_USED}</td>
</tr>
{IF EXISTS LAST_TOPIC}
<tr>
<td>Last topic</td>
<td>{LAST_TOPIC}</td>
</tr>
<tr>
<td>Set by</td>
<td>{LAST_TOPIC_SETTER}</td>
</tr>
{END IF}
<tr>
<td>Keep topic</td>
<td><input type="checkbox" name="keeptopic" value="on" {IF EXISTS KEEPTOPIC}checked{END IF}></td>
</tr>
<tr>
<td>Peace</td>
<td><input type="checkbox" name="peace" value="on" {IF EXISTS PEACE}checked{END IF}></td>
</tr>
<tr>
<td>Private</td>
<td><input type="checkbox" name="private" value="on" {IF EXISTS PRIVATE}checked{END IF}></td>
</tr>
<tr>
<td>Restricted</td>
<td><input type="checkbox" name="restricted" value="on" {IF EXISTS RESTRICTED}checked{END IF}></td>
</tr>
<tr>
<td>Secure</td>
<td><input type="checkbox" name="secure" value="on" {IF EXISTS SECURE}checked{END IF}></td>
</tr>
<tr>
<td>Secure Ops</td>
<td><input type="checkbox" name="secureops" value="on" {IF EXISTS SECUREOPS}checked{END IF}></td>
</tr>
<tr>
<td>Topic Lock</td>
<td><input type="checkbox" name="topiclock" value="on" {IF EXISTS TOPICLOCK}checked{END IF}></td>
</tr>
<tr>
<td></td>
<td><button type="submit" class="btn btn-primary">Save</button></td>
</tr>
</table>
</form>
</div>
{INCLUDE footer.html}
@@ -16,7 +16,9 @@
<div id="frontPages" class="container">
<div class="row">
<div class="col-lg-offset-4 col-lg-4">
<a href="/"><img src="http://www.geniusdex.net/anope/anope.svg" class="img-responsive" width="370"></a>
<a href="/">
<img src="/static/logo.png" class="img-responsive">
</a>
<a href="/" class="btn btn-lg btn-default btn-block">Back Home</a>
<h1 class="form-signin-heading">Register</h1>
Binary file not shown.

After

Width:  |  Height:  |  Size: 723 B

@@ -1,8 +1,9 @@
<br>
<br>
</div>
</div>
</div>
<div class="row">
<div class="col-lg-offset-3 col-lg-6">
<div class="col-lg-12">
<div class="footer text-center">
Anope IRC Services - &copy; 2013 Anope Team - <a href="http://anope.org">http://anope.org</a>
</div>
@@ -4,7 +4,7 @@
<!--[if IE 9]> <html lang="en" class="ie9"> <![endif]-->
<!--[if !IE]><!-->
<html lang="en">
<!--<![endif]-->
<!--<![endif]-->
<head>
<link href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" rel="stylesheet">
<link href="/static/style.css" media="screen" rel="stylesheet" type="text/css" />
@@ -22,18 +22,23 @@
</head>
<body>
<div id="frontPages" class="container">
<div class="row">
<div class="navbar navbar-default">
<span class="navbar-brand" style="margin-top: -1px">Anope Web <small>Control Panel</small></span>
<ul class="nav navbar-nav">
{FOR CATEGORY_URL,CATEGORY_NAME IN CATEGORY_URLS,CATEGORY_NAMES}
<li><a href="{CATEGORY_URL}">{CATEGORY_NAME}</a></li>
{END FOR}
</ul>
<span id="loggedIn" class="pull-right">
Logged in as {ACCOUNT} <a href="/logout">(Logout)</a>
</span>
</div>
<div class="navbar navbar-default">
<span class="navbar-brand" style="margin-top: -1px">Anope Web <small>Control Panel</small></span>
<ul class="nav navbar-nav">
{FOR CATEGORY_URL,CATEGORY_NAME IN CATEGORY_URLS,CATEGORY_NAMES}
<li
{IF EQ CATEGORY NickServ}{IF EQ CATEGORY_NAME NickServ}class="active"{END IF}{END IF}
{IF EQ CATEGORY ChanServ}{IF EQ CATEGORY_NAME ChanServ}class="active"{END IF}{END IF}
{IF EQ CATEGORY MemoServ}{IF EQ CATEGORY_NAME MemoServ}class="active"{END IF}{END IF}
{IF EQ CATEGORY HostServ}{IF EQ CATEGORY_NAME HostServ}class="active"{END IF}{END IF}
{IF EQ CATEGORY OperServ}{IF EQ CATEGORY_NAME OperServ}class="active"{END IF}{END IF}>
<a href="{CATEGORY_URL}">{CATEGORY_NAME}</a>
</li>
{END FOR}
</ul>
<span id="loggedIn" class="pull-right">
<span>Logged in as {ACCOUNT}</span> <a href="/logout">(Logout)</a>
</span>
</div>
<div class="row">
@@ -50,4 +55,4 @@
</div>
<div class="col-lg-9">
<div class="well" style="padding: 20px 20px 5px 20px;">
<div class="panel panel-default">
@@ -1,43 +1,45 @@
{INCLUDE header.html}
{FOR M IN MESSAGES}
<div class="alert alert-info">
{M}<br>
</div>
{END FOR}
<div class="panel-heading">vHost Information</div>
<div class="panel-body">
{FOR M IN MESSAGES}
<div class="alert alert-info">
{M}<br>
</div>
{END FOR}
<h2>vHost Information</h2>
<table id="tableInfo" class="table table-hover">
<tbody>
<tr>
<td>Your current vHost:</td>
<td>
{IF EXISTS VHOST}
{VHOST}
{ELSE}
<em>None</em>
{END IF}
</td>
<td></td>
</tr>
{IF EXISTS CAN_REQUEST}
<tr>
<td>
<table id="tableInfo" class="table table-hover">
<tbody>
<tr>
<td>Your current vHost:</td>
<td>
{IF EXISTS VHOST}
Request a new vHost
{VHOST}
{ELSE}
Request a vHost
<em>None</em>
{END IF}
</td>
<form method="post" action="/hostserv/request">
<td><input class="form-control" name="req"></td>
<td><button type="submit" class="btn btn-primary">Request</button></td>
</form>
</tr>
{ELSE}
<tr>
<td colspan="2" class="text-center"><strong>vHost requests are disabled on this network.</strong></td>
</tr>
{END IF}
</tbody>
</table>
</td>
<td></td>
</tr>
{IF EXISTS CAN_REQUEST}
<tr>
<td>
{IF EXISTS VHOST}
Request a new vHost
{ELSE}
Request a vHost
{END IF}
</td>
<form method="post" action="/hostserv/request">
<td><input class="form-control" name="req"></td>
<td><button type="submit" class="btn btn-primary">Request</button></td>
</form>
</tr>
{ELSE}
<tr>
<td colspan="2" class="text-center"><strong>vHost requests are disabled on this network.</strong></td>
</tr>
{END IF}
</tbody>
</table>
</div>
{INCLUDE footer.html}
@@ -17,8 +17,9 @@
<div class="row">
<div class="col-lg-offset-4 col-lg-4">
<a href="/">
<img src="http://www.geniusdex.net/anope/anope.svg" class="img-responsive" width="370">
<img src="/static/logo.png" class="img-responsive">
</a>
<h1 class="form-signin-heading">Login <small>to continue</small></h1>
{IF EXISTS INVALID_LOGIN}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 19 KiB

@@ -1,103 +1,112 @@
{INCLUDE header.html}
{FOR M IN MESSAGES}
<div class="alert alert-info">
{M}<br>
</div>
{END FOR}
<div class="panel-heading">Memos List</div>
<div class="panel-body">
{FOR M IN MESSAGES}
<div class="alert alert-info">
{M}<br>
</div>
{END FOR}
{IF EXISTS NUMBER}
<script>
$("#tableInfoMemos").ready(function() \{
$(".reply").click(function(e) \{
e.preventDefault();
var recv = $(this).attr('href');
$("#receiver").val(recv);
$("#message").focus();
{IF EXISTS NUMBER}
<script>
$("#tableInfoMemos").ready(function() \{
$(".reply").click(function(e) \{
e.preventDefault();
var recv = $(this).attr('href');
$("#receiver").val(recv);
$("#message").focus();
\});
\});
\});
</script>
</script>
<script>
$(function () \{
$('.table tbody tr td abbr').popover();
\});
</script>
<script>
$(function () \{
$('.table tbody tr td abbr').popover();
\});
</script>
<h2>Memos List</h2>
<table id="tableInfoMemos" class="table table-hover">
<thead>
<th>Number</th>
<th>Sender</th>
<th>Message <small>(hover: Time)</small></th>
<th></th>
</thead>
<tbody>
{FOR I,S,T,TXT,U IN NUMBER,SENDER,TIME,TEXT,UNREAD}
{IF EQ U YES}
<tr class="read">
{ELSE}
<tr class="unread">
{END IF}
<td>{I}</td>
<td>{S}</td>
<td><abbr data-container="body" data-trigger="hover" data-placement="top" data-content="{T}">{TXT}</abbr></td>
<td style="text-align: right;" nowrap="nowrap">
<table id="tableInfoMemos" class="table table-hover">
<thead>
<th>Number</th>
<th>Sender</th>
<th>Message <small>(hover: Time)</small></th>
<th></th>
</thead>
<tbody>
{FOR I,S,T,TXT,U IN NUMBER,SENDER,TIME,TEXT,UNREAD}
{IF EQ U YES}
<a class="label label-success reply" href="{S}" id="memo{I}">Reply</a>
<a class="label label-warning" href="/memoserv/memos?channel={ESCAPED_CHANNEL_NAME}&number={I}&read=1">Mark as Read</a>
<a class="label label-danger" href="/memoserv/memos?channel={ESCAPED_CHANNEL_NAME}&number={I}&del=1">Delete</a>
<tr class="read">
{ELSE}
<a class="label label-success reply" href="{S}" id="memo{I}">Reply</a>
<a class="label label-warning" href="/memoserv/memos?channel={ESCAPED_CHANNEL_NAME}&number={I}&read=2">Mark as Unread</a>
<a class="label label-danger" href="/memoserv/memos?channel={ESCAPED_CHANNEL_NAME}&number={I}&del=1">Delete</a>
<tr class="unread">
{END IF}
</td>
</tr>
{END FOR}
</tbody>
</table>
{ELSE}
<em>No memos to show.</em>
{END IF}
<td>{I}</td>
<td>{S}</td>
<td><abbr data-container="body" data-trigger="hover" data-placement="top" data-content="{T}">{TXT}</abbr></td>
<td style="text-align: right;" nowrap="nowrap">
{IF EQ U YES}
<a class="label label-success reply" href="{S}" id="memo{I}">Reply</a>
<a class="label label-warning" href="/memoserv/memos?channel={ESCAPED_CHANNEL_NAME}&number={I}&read=1">Mark as Read</a>
<a class="label label-danger" href="/memoserv/memos?channel={ESCAPED_CHANNEL_NAME}&number={I}&del=1">Delete</a>
{ELSE}
<a class="label label-success reply" href="{S}" id="memo{I}">Reply</a>
<a class="label label-warning" href="/memoserv/memos?channel={ESCAPED_CHANNEL_NAME}&number={I}&read=2">Mark as Unread</a>
<a class="label label-danger" href="/memoserv/memos?channel={ESCAPED_CHANNEL_NAME}&number={I}&del=1">Delete</a>
{END IF}
</td>
</tr>
{END FOR}
</tbody>
</table>
{ELSE}
<em>No memos to show.</em>
{END IF}
<hr>
<hr>
<div class="row">
<div class="col-lg-5">
<h4>Memos for channel</h4>
<ul>
{FOR CH,ECH IN CHANNEL_NAMES,ESCAPED_CHANNEL_NAMES}
<li><a href="/memoserv/memos?channel={ECH}" class="channel">{CH}</a></li>
{END FOR}
</ul>
<div class="row">
<div class="col-lg-5">
<h4>Memos for channel</h4>
{IF EXISTS CHANNEL_NAMES}
<div>
<ul id="channelList">
{FOR CH,ECH IN CHANNEL_NAMES,ESCAPED_CHANNEL_NAMES}
<li><a href="/memoserv/memos?channel={ECH}">{CH}</a></li>
{END FOR}
</ul>
</div>
{ELSE}
<em>You don't have access in any channel</em><br>
{END IF}
</div>
<div class="col-lg-7">
<h4>Send a new Memo</h4>
<form class="form-horizontal" method="post" action="/memoserv/memos?channel={ESCAPED_CHANNEL}">
<div class="form-group">
<label class="control-label col-lg-2" for="receiver">Receiver:</label>
<div class="col-lg-10">
<input class="form-control" type="text" name="receiver" id="receiver" placeholder="Nick or Channel" value="">
</div>
</div>
<div class="form-group">
<label class="control-label col-lg-2" for="message">Message:</label>
<div class="col-lg-10">
<input class="form-control" type="text" name="message" id="message" placeholder="Your message here">
</div>
</div>
<div class="form-group">
<div class="col-lg-offset-2 col-lg-10">
<button type="submit" class="btn btn-primary">Send</button>
</div>
</div>
</form>
</div>
</div>
<div class="col-lg-7">
<h4>Send a new Memo</h4>
<form class="form-horizontal" method="post" action="/memoserv/memos?channel={ESCAPED_CHANNEL}">
<div class="form-group">
<label class="control-label col-lg-2" for="receiver">Receiver:</label>
<div class="col-lg-10">
<input class="form-control" type="text" name="receiver" id="receiver" placeholder="Nick or Channel" value="">
</div>
</div>
<div class="form-group">
<label class="control-label col-lg-2" for="message">Message:</label>
<div class="col-lg-10">
<input class="form-control" type="text" name="message" id="message" placeholder="Your message here">
</div>
</div>
<div class="form-group">
<div class="col-lg-offset-2 col-lg-10">
<button type="submit" class="btn btn-primary">Send</button>
</div>
</div>
</form>
</div>
</div>
{IF EXISTS CMDR}
<div class="alert alert-info">
{CMDR}
{IF EXISTS CMDR}
<div class="alert alert-info">
{CMDR}
</div>
{END IF}
</div>
{END IF}
{INCLUDE footer.html}
@@ -1,12 +1,13 @@
{INCLUDE header.html}
{FOR M IN MESSAGES}
<div class="alert alert-info">
{M}<br>
</div>
{END FOR}
<div class="panel-heading">Nick access list</div>
<div class="panel-body">
{FOR M IN MESSAGES}
<div class="alert alert-info">
{M}<br>
</div>
{END FOR}
{IF EXISTS ACCESS}
<h2>Nick access list</h2>
{IF EXISTS ACCESS}
<table id="tableNSAccess" class="table table-hover">
<tbody>
{FOR A IN ACCESS}
@@ -17,24 +18,25 @@
{END FOR}
</tbody>
</table>
{ELSE}
<b>Your access list is empty.</b>
{END IF}
{ELSE}
<em>Your access list is empty.</em>
{END IF}
<hr>
<hr>
<h4>Add an access entry</h4>
<form class="form-horizontal" method="post" action="/nickserv/access">
<div class="form-group">
<label class="control-label col-lg-2" for="message">Hostmask:</label>
<div class="col-lg-5">
<input class="form-control" type="text" name="message" id="message" placeholder="Your message here">
<h4>Add an access entry</h4>
<form class="form-horizontal" method="post" action="/nickserv/access">
<div class="form-group">
<label class="control-label col-lg-2" for="message">Hostmask:</label>
<div class="col-lg-5">
<input class="form-control" type="text" name="message" id="message" placeholder="Your message here">
</div>
</div>
</div>
<div class="form-group">
<div class="col-lg-offset-2 col-lg-5">
<button type="submit" class="btn btn-primary">Add</button>
<div class="form-group">
<div class="col-lg-offset-2 col-lg-5">
<button type="submit" class="btn btn-primary">Add</button>
</div>
</div>
</div>
</form>
</form>
</div>
{INCLUDE footer.html}
@@ -1,21 +1,23 @@
{INCLUDE header.html}
<h2>Channel access list</h2>
<table id="tableInfoNorm" class="table table-hover">
<thead>
<tr>
<th>Number</th>
<th>Channel</th>
<th>Access</th>
</tr>
</thead>
<tbody>
{FOR N,C,A IN NUMBERS,CHANNELS,ACCESSES}
<div class="panel-heading">Channel access list</div>
<div class="panel-body">
<table id="tableInfoNorm" class="table table-hover">
<thead>
<tr>
<td>{N}</td>
<td>{C}</td>
<td>{A}</td>
<th>Number</th>
<th>Channel</th>
<th>Access</th>
</tr>
{END FOR}
</tbody>
</table>
</thead>
<tbody>
{FOR N,C,A IN NUMBERS,CHANNELS,ACCESSES}
<tr>
<td>{N}</td>
<td>{C}</td>
<td>{A}</td>
</tr>
{END FOR}
</tbody>
</table>
</div>
{INCLUDE footer.html}
@@ -1,36 +1,38 @@
{INCLUDE header.html}
{FOR M IN MESSAGES}
<div class="alert alert-info">
{M}<br>
</div>
{END FOR}
<b>Your certificate finrgerprints</b>
<table id="tableNSAccess" class="table table-hover">
<tbody>
{FOR CERT IN CERTS}
<tr>
<td>{CERT}</td>
<td><a href="/nickserv/cert?mask={CERT}&del=1" class="btn btn-sm btn-danger">Delete</a></td>
</tr>
<div class="panel-heading">Your certificate fingerprints</div>
<div class="panel-body">
{FOR M IN MESSAGES}
<div class="alert alert-info">
{M}<br>
</div>
{END FOR}
</tbody>
</table>
<hr>
<table id="tableNSAccess" class="table table-hover">
<tbody>
{FOR CERT IN CERTS}
<tr>
<td>{CERT}</td>
<td><a href="/nickserv/cert?mask={CERT}&del=1" class="btn btn-sm btn-danger">Delete</a></td>
</tr>
{END FOR}
</tbody>
</table>
<h4>Add an certificate fingerprint</h4>
<form class="form-horizontal" method="post" action="/nickserv/cert">
<div class="form-group">
<label class="control-label col-lg-2" for="certfp">Certificate:</label>
<div class="col-lg-5">
<input class="form-control" type="text" name="certfp" id="certfp" placeholder="Your certificate">
<hr>
<h4>Add a certificate fingerprint</h4>
<form class="form-horizontal" method="post" action="/nickserv/cert">
<div class="form-group">
<label class="control-label col-lg-2" for="certfp">Certificate:</label>
<div class="col-lg-5">
<input class="form-control" type="text" name="certfp" id="certfp" placeholder="Your certificate">
</div>
</div>
</div>
<div class="form-group">
<div class="col-lg-offset-2 col-lg-5">
<button type="submit" class="btn btn-primary">Add</button>
<div class="form-group">
<div class="col-lg-offset-2 col-lg-5">
<button type="submit" class="btn btn-primary">Add</button>
</div>
</div>
</div>
</form>
</form>
</div>
{INCLUDE footer.html}
@@ -1,74 +1,72 @@
{INCLUDE header.html}
{IF EXISTS ERRORS}
<div class="panel-heading">Your account information</div>
<div class="panel-body">
{FOR M IN ERRORS}
<div class="alert alert-danger">
{M}<br>
</div>
{END FOR}
{END IF}
{IF EXISTS MESSAGES}
<div class="alert alert-info">
{FOR M IN MESSAGES}
<div class="alert alert-info">
{M}<br>
{END FOR}
</div>
{END IF}
<h2>Your account information:</h2>
<form method="post" action="/nickserv/info">
<table id="tableInfo" class="table table-hover">
<tbody>
<tr>
<td>Account:</td>
<td>{DISPLAY}</td>
</tr>
{IF EXISTS EMAIL}
<tr>
<td>E-mail:</td>
<td>{EMAIL}</td>
</tr>
{END IF}
<tr>
<td>Time registered:</td>
<td>{TIME_REGISTERED}</td>
</tr>
{IF EXISTS VHOST}
<tr>
<td>Vhost:</td>
<td>{VHOST}</td>
</tr>
{END IF}
<tr>
<td>Greet:</td>
<td><input name="greet" value="{GREET}" class="form-control input-sm"></td>
</tr>
<tr>
<td>Auto op:</td>
<td><input type="checkbox" name="autoop" value="on" {IF EXISTS AUTOOP}checked{END IF}></td>
</tr>
<tr>
<td>Private:</td>
<td><input type="checkbox" name="private" value="on" {IF EXISTS PRIVATE}checked{END IF}></td>
</tr>
<tr>
<td>Secure:</td>
<td><input type="checkbox" name="secure" value="on" {IF EXISTS SECURE}checked{END IF}></td>
</tr>
<tr>
<td>Kill:</td>
<td>
<select name="kill" class="form-control input-sm">
<option value="on" {IF EXISTS KILL_ON}selected{END IF}>On</option>
<option value="quick" {IF EXISTS KILL_QUICK}selected{END IF}>Quick</option>
<option value="off" {IF EXISTS KILL_OFF}selected{END IF}>Off</option>
</select>
</td>
</tr>
</tbody>
</table>
<div class="text-center">
<button type="submit" class="btn btn-lg btn-primary">Save</button>
</div>
</form>
{END FOR}
<form method="post" action="/nickserv/info">
<table id="tableInfo" class="table table-hover">
<tbody>
<tr>
<td>Account:</td>
<td>{DISPLAY}</td>
</tr>
{IF EXISTS EMAIL}
<tr>
<td>E-mail:</td>
<td>{EMAIL}</td>
</tr>
{END IF}
<tr>
<td>Time registered:</td>
<td>{TIME_REGISTERED}</td>
</tr>
{IF EXISTS VHOST}
<tr>
<td>Vhost:</td>
<td>{VHOST}</td>
</tr>
{END IF}
<tr>
<td>Greet:</td>
<td><input name="greet" value="{GREET}" class="form-control input-sm"></td>
</tr>
<tr>
<td>Auto op:</td>
<td><input type="checkbox" name="autoop" value="on" {IF EXISTS AUTOOP}checked{END IF}></td>
</tr>
<tr>
<td>Private:</td>
<td><input type="checkbox" name="private" value="on" {IF EXISTS PRIVATE}checked{END IF}></td>
</tr>
<tr>
<td>Secure:</td>
<td><input type="checkbox" name="secure" value="on" {IF EXISTS SECURE}checked{END IF}></td>
</tr>
<tr>
<td>Kill:</td>
<td>
<select name="kill" class="form-control input-sm">
<option value="on" {IF EXISTS KILL_ON}selected{END IF}>On</option>
<option value="quick" {IF EXISTS KILL_QUICK}selected{END IF}>Quick</option>
<option value="off" {IF EXISTS KILL_OFF}selected{END IF}>Off</option>
</select>
</td>
</tr>
</tbody>
</table>
<div class="text-center">
<button type="submit" class="btn btn-lg btn-primary">Save</button>
</div>
</form>
</div>
{INCLUDE footer.html}
@@ -1,71 +1,77 @@
{INCLUDE header.html}
{IF EXISTS NOACCESS}
<h2>Access denied.</h2>
{ELSE}
<div class="panel-heading">Akill List</div>
<div class="panel-body">
{IF EXISTS NOACCESS}
<h2>Access denied.</h2>
{ELSE}
{FOR M IN MESSAGES}
<div class="alert alert-info">
{M}<br>
{FOR M IN MESSAGES}
<div class="alert alert-info">
{M}<br>
</div>
{END FOR}
<script>
$(function () \{
$('.table tbody tr td abbr').popover();
\});
</script>
{IF EXISTS AKILLS}
<em>{AKILLS}</em>
{ELSE}
<table id="tableNSAccess" class="table table-hover">
<thead>
<tr>
<th>Number</th>
<th>Hostmask <small>(hover: Reason)</small></th>
<th>Expires <small>(hover: Set Date)</small></th>
<th>Setter</th>
<th></th>
</tr>
</thead>
<tbody>
{FOR N,H,S,T,E,R IN NUMBER,HOST,SETTER,TIME,EXPIRE,REASON}
<tr>
<td>{N}</td>
<td><abbr data-container="body" data-trigger="hover" data-placement="top" data-content="{R}">{H}</abbr></td>
<td><abbr data-container="body" data-trigger="hover" data-placement="top" data-content="{T}">{E}</abbr></td>
<td>{S}</td>
<td><a href="/operserv/akill?&number={N}&del=1" class="btn btn-sm btn-danger">Delete</a></td>
</tr>
{END FOR}
</tbody>
</table>
{END IF}
<hr>
<h4>Add a new Akill</h4>
<form class="form-horizontal" method="post" action="/operserv/akill">
<div class="form-group">
<label class="control-label col-lg-2" for="mask">HostMask:</label>
<div class="col-lg-6">
<input class="form-control" type="text" name="mask" id="mask" placeholder="Valid HostMask">
</div>
</div>
<div class="form-group">
<label class="control-label col-lg-2" for="expiry">Expiry:</label>
<div class="col-lg-6">
<input class="form-control" type="text" name="expiry" id="expiry" placeholder="Expire time">
</div>
</div>
<div class="form-group">
<label class="control-label col-lg-2" for="reason">Message:</label>
<div class="col-lg-6">
<input class="form-control" type="text" name="reason" id="reason" placeholder="Reason for AKILL">
</div>
</div>
<div class="form-group">
<div class="col-lg-offset-2 col-lg-6">
<button type="submit" class="btn btn-primary">Send</button>
</div>
</div>
</form>
{END IF}
</div>
{END FOR}
<script>
$(function () \{
$('.table tbody tr td abbr').popover();
\});
</script>
<h2>AKILL List</h2>
<table id="tableNSAccess" class="table table-hover">
<thead>
<tr>
<th>Number</th>
<th>Hostmask <small>(hover: Reason)</small></th>
<th>Expires <small>(hover: Set Date)</small></th>
<th>Setter</th>
<th></th>
</tr>
</thead>
<tbody>
{FOR N,H,S,T,E,R IN NUMBER,HOST,SETTER,TIME,EXPIRE,REASON}
<tr>
<td>{N}</td>
<td><abbr data-container="body" data-trigger="hover" data-placement="top" data-content="{R}">{H}</abbr></td>
<td><abbr data-container="body" data-trigger="hover" data-placement="top" data-content="{T}">{E}</abbr></td>
<td>{S}</td>
<td><a href="/operserv/akill?&number={N}&del=1" class="btn btn-sm btn-danger">Delete</a></td>
</tr>
{END FOR}
</tbody>
</table>
<hr>
<h4>Add a new AKILL</h4>
<form class="form-horizontal" method="post" action="/operserv/akill">
<div class="form-group">
<label class="control-label col-lg-2" for="mask">HostMask:</label>
<div class="col-lg-6">
<input class="form-control" type="text" name="mask" id="mask" placeholder="Valid HostMask">
</div>
</div>
<div class="form-group">
<label class="control-label col-lg-2" for="expiry">Expiry:</label>
<div class="col-lg-6">
<input class="form-control" type="text" name="expiry" id="expiry" placeholder="Expire time">
</div>
</div>
<div class="form-group">
<label class="control-label col-lg-2" for="reason">Message:</label>
<div class="col-lg-6">
<input class="form-control" type="text" name="reason" id="reason" placeholder="Reason for AKILL">
</div>
</div>
<div class="form-group">
<div class="col-lg-offset-2 col-lg-6">
<button type="submit" class="btn btn-primary">Send</button>
</div>
</div>
</form>
{END IF}
{INCLUDE footer.html}
@@ -16,7 +16,9 @@
<div id="frontPages" class="container">
<div class="row">
<div class="col-lg-offset-4 col-lg-4">
<a href="/"><img src="http://www.geniusdex.net/anope/anope.svg" class="img-responsive" width="370"></a>
<a href="/">
<img src="/static/logo.png" class="img-responsive">
</a>
<a href="/" class="btn btn-lg btn-default btn-block">Back Home</a>
<h1 class="form-signin-heading">Register</h1>
@@ -1,11 +1,12 @@
@import url(http://fonts.googleapis.com/css?family=Open+Sans:300,400);
@import url(//fonts.googleapis.com/css?family=Open+Sans:300,400);
@import url(//fonts.googleapis.com/css?family=Port+Lligat+Slab);
*, html, body, h1, h2, h3, h4, div, p, span, a, button {
font-family: 'Open Sans', sans-serif;
}
body {
background-color: #eee;
background-image: url('http://politeia.in/assets/img/bg/cubes.png');
background-image: url('/static/cubes.png');
}
/* RANDOM STUFF */
@@ -25,6 +26,19 @@ h4 {
box-shadow: 0 1px 10px rgba(0, 0, 0, 0.8);
}
.label {
font-size: 13px;
font-weight: normal;
}
.label-info {
background-color: #4EA4EE;
}
.label-info[href]:hover, .label-info[href]:focus {
background-color: #428BCA;
}
/* LOGIN FORM */
.form-signin .form-signin-heading, .form-signin .checkbox {
margin-bottom: 10px;
@@ -50,6 +64,9 @@ h4 {
}
/* Control Panel */
.panel-default .panel-heading {
font-size: 24px;
}
#loggedIn {
margin: 15px 15px 0 0;
}
@@ -69,6 +86,7 @@ h4 {
font-weight: bold;
padding-right: 10px;
text-align: right;
width: 25%;
}
#tableInfoNorm td {
@@ -105,6 +123,10 @@ h4 {
font-weight: normal;
}
#channelList li {
margin-top: 10px;
}
/* NAVBAR */
.navbar, .well {
background-color: white;
@@ -115,13 +137,30 @@ h4 {
-moz-box-shadow: 0 8px 6px -8px black;
box-shadow: 0 8px 6px -8px black;
}
.navbar-default .navbar-nav > li > a {
color: #777777;
.navbar-brand {
font-size: 25px;
}
.navbar-brand, .navbar-brand small {
font-family: 'Port Lligat Slab', serif;
}
.navbar-default .navbar-nav > li > a:hover, .navbar-default .navbar-nav > li > a:focus {
color: #333333;
border-bottom: 3px solid #0082D9;
margin-bottom: -3px;
.navbar-default .nav {
margin-bottom: -1px;
}
.navbar-default .nav > li > a {
color: #428BCA;
}
.navbar-default .nav > li > a:hover, .navbar-default .nav > li > a:focus {
color: #428BCA;
border-top: 3px solid #0082D9;
margin-top: -3px;
}
.navbar-default .nav > li.active > a, .navbar-default .nav > li.active > a:hover, .navbar-default .nav > li.active > a:focus {
color: #428BCA;
background-color: transparent;
background-color: rgba(66, 139, 202, 0.1);
border-bottom-color: transparent;
}
+4 -2
View File
@@ -16,7 +16,7 @@ class ModuleWebCPanel : public Module
Panel panel;
PrimitiveExtensibleItem<Anope::string> id, ip;
StaticFileServer style_css, logo_png, favicon_ico;
StaticFileServer style_css, logo_png, cubes_png, favicon_ico;
WebCPanel::Index index;
WebCPanel::Logout logout;
@@ -44,7 +44,7 @@ class ModuleWebCPanel : public Module
public:
ModuleWebCPanel(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator, EXTRA | VENDOR),
panel(this, "webcpanel"), id(this, "webcpanel_id"), ip(this, "webcpanel_ip"),
style_css("style.css", "/static/style.css", "text/css"), logo_png("logo.png", "/static/logo.png", "image/png"), favicon_ico("favicon.ico", "/favicon.ico", "image/x-icon"),
style_css("style.css", "/static/style.css", "text/css"), logo_png("logo.png", "/static/logo.png", "image/png"), cubes_png("cubes.png", "/static/cubes.png", "image/png"), favicon_ico("favicon.ico", "/favicon.ico", "image/x-icon"),
index("/"), logout("/logout"), _register("/register"), confirm("/confirm"),
nickserv_info("NickServ", "/nickserv/info"), nickserv_cert("NickServ", "/nickserv/cert"), nickserv_access("NickServ", "/nickserv/access"), nickserv_alist("NickServ", "/nickserv/alist"),
chanserv_info("ChanServ", "/chanserv/info"), chanserv_set("ChanServ", "/chanserv/set"), chanserv_access("ChanServ", "/chanserv/access"), chanserv_akick("ChanServ", "/chanserv/akick"),
@@ -65,6 +65,7 @@ class ModuleWebCPanel : public Module
provider->RegisterPage(&this->style_css);
provider->RegisterPage(&this->logo_png);
provider->RegisterPage(&this->cubes_png);
provider->RegisterPage(&this->favicon_ico);
provider->RegisterPage(&this->index);
@@ -192,6 +193,7 @@ class ModuleWebCPanel : public Module
{
provider->UnregisterPage(&this->style_css);
provider->UnregisterPage(&this->logo_png);
provider->UnregisterPage(&this->cubes_png);
provider->UnregisterPage(&this->favicon_ico);
provider->UnregisterPage(&this->index);
+2
View File
@@ -96,6 +96,8 @@ class WebPanelProtectedPage : public WebPanelPage
replacements["TITLE"] = page_title;
replacements["ACCOUNT"] = na->nc->display;
replacements["PAGE_NAME"] = page_name;
replacements["CATEGORY"] = category;
Anope::string sections, get;