@@ -0,0 +1,209 @@ | |||
#campaigns-select { | |||
display: inline-block; | |||
padding-right: 1em; | |||
background: transparent 100% 50%/contain no-repeat; | |||
border-width: 1px; | |||
} | |||
#campaigns-select select { | |||
max-width: 120px; | |||
padding: 0 0.25em; | |||
font-size: 100%; | |||
color: inherit; | |||
background: transparent; | |||
border: none; | |||
appearance: none; | |||
-webkit-appearance: none; | |||
-moz-appearance: none; | |||
} | |||
h2 .disabled { | |||
color: #989898; | |||
text-decoration: line-through; | |||
} | |||
h2 .disabled-info { | |||
margin-left: 0.5em; | |||
color: #989898; | |||
font-size: 85%; | |||
font-variant: none; | |||
} | |||
#operations { | |||
margin-bottom: 1em; | |||
} | |||
#operations section { | |||
display: flex; | |||
} | |||
.operation { | |||
flex: 1; | |||
} | |||
.operation .primary .num { | |||
height: 60px; | |||
line-height: 60px; | |||
} | |||
.operation .big { | |||
font-size: 300%; | |||
} | |||
.operation .medium { | |||
font-size: 200%; | |||
} | |||
.operation .small { | |||
font-size: 150%; | |||
} | |||
.operation .secondary { | |||
font-size: 105%; | |||
} | |||
.operation .unit { | |||
font-style: italic; | |||
} | |||
.operation .summary { | |||
font-size: 14px; | |||
} | |||
.operation .summary .head { | |||
margin-top: 1em; | |||
} | |||
.operation .summary .contents { | |||
position: relative; | |||
margin-top: 0.5em; | |||
border: 1px solid #282828; | |||
} | |||
.operation .board { | |||
border-spacing: 0; | |||
border-collapse: collapse; | |||
text-align: left; | |||
} | |||
.operation .board:not(.expanded) tr:nth-child(2n) { | |||
background-color: #181818; | |||
} | |||
.operation .board:not(.expanded) tr:nth-child(2n+1) { | |||
background-color: #0A0A0A; | |||
} | |||
.operation .board td { | |||
padding: 0.25em 0; | |||
} | |||
.operation .board td:first-child { | |||
padding-left: 1em; | |||
} | |||
.operation .board td:last-child { | |||
padding-right: 1em; | |||
} | |||
.operation .board .fluid { | |||
padding-right: 0.5em; | |||
} | |||
.operation .board .icon { | |||
width: 46px; | |||
} | |||
.operation .board.expanded { | |||
position: absolute; | |||
z-index: 1; | |||
transition: clip-path 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94); | |||
clip-path: inset(0 100% 0 0); | |||
} | |||
.operation .board:not(.expanded) .extra { | |||
display: none; | |||
} | |||
.operation .board.expanded .spacer { | |||
display: none; | |||
} | |||
.operation .board img { | |||
width: 42px; | |||
height: 42px; | |||
vertical-align: middle; | |||
} | |||
.operation .board abbr { | |||
border-bottom: none; | |||
} | |||
.operation .itemboard td:last-child { | |||
padding-left: 0.5em; | |||
text-align: right; | |||
} | |||
.operation .itemboard .count { | |||
font-weight: bold; | |||
} | |||
.operation .itemboard .count::before { | |||
content: "×"; | |||
font-weight: normal; | |||
color: #AAA; | |||
} | |||
@media (min-width: 800px) { | |||
#operations { | |||
margin: 1em 0; | |||
} | |||
#operations section { | |||
margin-bottom: 2em; | |||
} | |||
.operation { | |||
margin: 0 0.75em; | |||
text-align: center; | |||
} | |||
.operation .secondary { | |||
margin-top: 0.5em; | |||
} | |||
.operation .secondary .unit { | |||
margin-left: 0.15em; | |||
} | |||
.operation .summary .contents { | |||
display: inline-block; | |||
margin-bottom: -4px; | |||
} | |||
} | |||
@media (max-width: 799px) { | |||
#operations section { | |||
flex-direction: column; | |||
} | |||
.operation { | |||
margin: 0.5em 0; | |||
} | |||
.operation .overview { | |||
margin-left: 1em; | |||
} | |||
.operation .primary, .operation .primary .unit { | |||
display: inline-block; | |||
} | |||
.operation .unit { | |||
margin-left: 0.15em; | |||
} | |||
.operation .board:not(.expanded) { | |||
width: 100%; | |||
} | |||
} |
@@ -0,0 +1,26 @@ | |||
$(function() { | |||
// Enable form auto-submit on campaign change: | |||
$("#campaigns-select select").change(function() { | |||
this.form.submit(); | |||
}); | |||
$('#campaigns-select input[type="submit"]').hide(); | |||
//Selectively reveal operation summary details: | |||
$(".operation .killboard tr").mouseenter(function() { | |||
var div = $("<table>", {addClass: "board expanded"}) | |||
.css($(this).position()) | |||
.css("background-color", $(this).css("background-color")) | |||
.css("position", "fixed") | |||
.append($("<tr>").html($(this).html())) | |||
.mouseleave(function() { $(this).remove(); }); | |||
div.find(".spacer").remove(); | |||
$(this).closest(".summary").find(".expanded").remove(); | |||
$(this).closest(".contents").prepend(div); | |||
div.css("width", Math.max(div.width(), $(this).width())); | |||
div.css("position", ""); | |||
div.css("clip-path", "inset(0 0% 0 0)"); | |||
}); | |||
$(".operation .summary").mouseleave(function() { | |||
$(this).find(".expanded").remove(); | |||
}); | |||
}); |
@@ -1,6 +1,3 @@ | |||
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~ Calefaction Main CSS ~~~~~~~~~~~~~~~~~~~~~~~~~ */ | |||
/* =============================== Universal =============================== */ | |||
@import url(//fonts.googleapis.com/css?family=Open+Sans:400,400italic,700); | |||
body { | |||
@@ -374,253 +371,3 @@ footer ul li:not(:last-child)::after { | |||
.sec-1_0 { | |||
color: #33F9F9; | |||
} | |||
/* ================================ Modules ================================ */ | |||
/* ------------------------------- Campaigns ------------------------------- */ | |||
#campaigns-select { | |||
display: inline-block; | |||
padding-right: 1em; | |||
background: transparent 100% 50%/contain no-repeat; | |||
border-width: 1px; | |||
} | |||
#campaigns-select select { | |||
max-width: 120px; | |||
padding: 0 0.25em; | |||
font-size: 100%; | |||
color: inherit; | |||
background: transparent; | |||
border: none; | |||
appearance: none; | |||
-webkit-appearance: none; | |||
-moz-appearance: none; | |||
} | |||
h2 .disabled { | |||
color: #989898; | |||
text-decoration: line-through; | |||
} | |||
h2 .disabled-info { | |||
margin-left: 0.5em; | |||
color: #989898; | |||
font-size: 85%; | |||
font-variant: none; | |||
} | |||
#operations { | |||
margin-bottom: 1em; | |||
} | |||
#operations section { | |||
display: flex; | |||
} | |||
.operation { | |||
flex: 1; | |||
} | |||
.operation .primary .num { | |||
height: 60px; | |||
line-height: 60px; | |||
} | |||
.operation .big { | |||
font-size: 300%; | |||
} | |||
.operation .medium { | |||
font-size: 200%; | |||
} | |||
.operation .small { | |||
font-size: 150%; | |||
} | |||
.operation .secondary { | |||
font-size: 105%; | |||
} | |||
.operation .unit { | |||
font-style: italic; | |||
} | |||
.operation .summary { | |||
font-size: 14px; | |||
} | |||
.operation .summary .head { | |||
margin-top: 1em; | |||
} | |||
.operation .summary .contents { | |||
position: relative; | |||
margin-top: 0.5em; | |||
border: 1px solid #282828; | |||
} | |||
.operation .board { | |||
border-spacing: 0; | |||
border-collapse: collapse; | |||
text-align: left; | |||
} | |||
.operation .board:not(.expanded) tr:nth-child(2n) { | |||
background-color: #181818; | |||
} | |||
.operation .board:not(.expanded) tr:nth-child(2n+1) { | |||
background-color: #0A0A0A; | |||
} | |||
.operation .board td { | |||
padding: 0.25em 0; | |||
} | |||
.operation .board td:first-child { | |||
padding-left: 1em; | |||
} | |||
.operation .board td:last-child { | |||
padding-right: 1em; | |||
} | |||
.operation .board .fluid { | |||
padding-right: 0.5em; | |||
} | |||
.operation .board .icon { | |||
width: 46px; | |||
} | |||
.operation .board.expanded { | |||
position: absolute; | |||
z-index: 1; | |||
transition: clip-path 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94); | |||
clip-path: inset(0 100% 0 0); | |||
} | |||
.operation .board:not(.expanded) .extra { | |||
display: none; | |||
} | |||
.operation .board.expanded .spacer { | |||
display: none; | |||
} | |||
.operation .board img { | |||
width: 42px; | |||
height: 42px; | |||
vertical-align: middle; | |||
} | |||
.operation .board abbr { | |||
border-bottom: none; | |||
} | |||
.operation .itemboard td:last-child { | |||
padding-left: 0.5em; | |||
text-align: right; | |||
} | |||
.operation .itemboard .count { | |||
font-weight: bold; | |||
} | |||
.operation .itemboard .count::before { | |||
content: "×"; | |||
font-weight: normal; | |||
color: #AAA; | |||
} | |||
@media (min-width: 800px) { | |||
#operations { | |||
margin: 1em 0; | |||
} | |||
#operations section { | |||
margin-bottom: 2em; | |||
} | |||
.operation { | |||
margin: 0 0.75em; | |||
text-align: center; | |||
} | |||
.operation .secondary { | |||
margin-top: 0.5em; | |||
} | |||
.operation .secondary .unit { | |||
margin-left: 0.15em; | |||
} | |||
.operation .summary .contents { | |||
display: inline-block; | |||
margin-bottom: -4px; | |||
} | |||
} | |||
@media (max-width: 799px) { | |||
#operations section { | |||
flex-direction: column; | |||
} | |||
.operation { | |||
margin: 0.5em 0; | |||
} | |||
.operation .overview { | |||
margin-left: 1em; | |||
} | |||
.operation .primary, .operation .primary .unit { | |||
display: inline-block; | |||
} | |||
.operation .unit { | |||
margin-left: 0.15em; | |||
} | |||
.operation .board:not(.expanded) { | |||
width: 100%; | |||
} | |||
} | |||
/* -------------------------------- Members -------------------------------- */ | |||
#members-list { | |||
list-style: none; | |||
margin: 1em 0 0.5em 0; | |||
padding: 0; | |||
column-count: 2; | |||
} | |||
#members-list li { | |||
margin-bottom: 0.5em; | |||
} | |||
#members-list a:hover { | |||
text-decoration: none; | |||
} | |||
#members-list img { | |||
width: 48px; | |||
height: 48px; | |||
vertical-align: middle; | |||
border-width: 1px; | |||
} | |||
#members-list span { | |||
margin-left: 0.5em; | |||
vertical-align: middle; | |||
} | |||
#members-list em { | |||
font-size: 90%; | |||
} | |||
#members-list em::before { | |||
content: ", "; | |||
} |
@@ -3,8 +3,6 @@ var overlaps = function(needle, haystack) { | |||
}; | |||
$(function() { | |||
/* ============================= Universal ============================= */ | |||
// Install logout auto-POST form: | |||
$("#logout").click(function() { | |||
$("<form>", { | |||
@@ -56,31 +54,4 @@ $(function() { | |||
.prop("disabled", false); | |||
$(this).addClass("cur").find(":submit").prop("disabled", true); | |||
}); | |||
/* ============================== Modules ============================== */ | |||
// Campaigns: enable form auto-submit on campaign change: | |||
$("#campaigns-select select").change(function() { | |||
this.form.submit(); | |||
}); | |||
$('#campaigns-select input[type="submit"]').hide(); | |||
//Campaigns: selectively reveal operation summary details: | |||
$(".operation .killboard tr").mouseenter(function() { | |||
var div = $("<table>", {addClass: "board expanded"}) | |||
.css($(this).position()) | |||
.css("background-color", $(this).css("background-color")) | |||
.css("position", "fixed") | |||
.append($("<tr>").html($(this).html())) | |||
.mouseleave(function() { $(this).remove(); }); | |||
div.find(".spacer").remove(); | |||
$(this).closest(".summary").find(".expanded").remove(); | |||
$(this).closest(".contents").prepend(div); | |||
div.css("width", Math.max(div.width(), $(this).width())); | |||
div.css("position", ""); | |||
div.css("clip-path", "inset(0 0% 0 0)"); | |||
}); | |||
$(".operation .summary").mouseleave(function() { | |||
$(this).find(".expanded").remove(); | |||
}); | |||
}); |
@@ -0,0 +1,34 @@ | |||
#members-list { | |||
list-style: none; | |||
margin: 1em 0 0.5em 0; | |||
padding: 0; | |||
column-count: 2; | |||
} | |||
#members-list li { | |||
margin-bottom: 0.5em; | |||
} | |||
#members-list a:hover { | |||
text-decoration: none; | |||
} | |||
#members-list img { | |||
width: 48px; | |||
height: 48px; | |||
vertical-align: middle; | |||
border-width: 1px; | |||
} | |||
#members-list span { | |||
margin-left: 0.5em; | |||
vertical-align: middle; | |||
} | |||
#members-list em { | |||
font-size: 90%; | |||
} | |||
#members-list em::before { | |||
content: ", "; | |||
} |
@@ -1,6 +1,6 @@ | |||
<%inherit file="_base.mako"/> | |||
<%block name="title"> | |||
${self.maketitle("404")} | |||
${self.support.maketitle("404")} | |||
</%block> | |||
<h2>Error 404</h2> | |||
<p>The page you asked for couldn't be found.</p> |
@@ -1,32 +1,27 @@ | |||
<%namespace name="support" file="_base_support.mako" inheritable="True"/>\ | |||
<!DOCTYPE html> | |||
<html lang="en"> | |||
<head> | |||
<meta charset="utf-8"> | |||
<title> | |||
<%def name="maketitle(*parts)"> | |||
<% | |||
if request.url_rule and request.url_rule.endpoint == "index": | |||
parts = () | |||
%> | |||
${" | ".join(parts + (g.config.get("corp.name"),)) | h} | |||
</%def> | |||
<%block name="title"> | |||
${maketitle()} | |||
${support.maketitle()} | |||
</%block> | |||
</title> | |||
<meta name="viewport" content="width=device-width, initial-scale=1"> | |||
<link rel="canonical" href="${g.config.scheme}://${g.config.get('site.canonical')}${request.script_root}${request.path}"> | |||
<link rel="stylesheet" type="text/css" href="${url_for('staticv', filename='main.css')}"/> | |||
${support.makecss("main.css")} | |||
<% style = g.auth.get_character_prop("style") or g.config.get("style.default") %> | |||
% if style: | |||
<% stylesheet = "styles/{}.css".format(style) %> | |||
<link id="user-style" rel="stylesheet" type="text/css" href="${url_for('staticv', filename=stylesheet)}"/> | |||
${support.makecss("styles/{}.css".format(style), "user-style")} | |||
% endif | |||
<%block name="extracss"></%block> | |||
% for size in g.eve.image.corp_widths: | |||
<link rel="icon" type="image/png" sizes="${size}x${size}" href="${g.eve.image.corp(g.config.get('corp.id'), size)}"/> | |||
% endfor | |||
<script src="https://code.jquery.com/jquery-3.1.1.min.js" integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8=" crossorigin="anonymous"></script> | |||
<script src="${url_for('staticv', filename='main.js')}"></script> | |||
${support.makejs("main.js")} | |||
<%block name="extrajs"></%block> | |||
</head> | |||
<body> | |||
<%block name="header"> | |||
@@ -0,0 +1,14 @@ | |||
<%! import markupsafe %> | |||
<%def name="maketitle(*parts)" filter="trim"> | |||
<% | |||
if request.url_rule and request.url_rule.endpoint == "index": | |||
parts = () | |||
%> | |||
${" | ".join(parts + (g.config.get("corp.name"),)) | h} | |||
</%def> | |||
<%def name="makecss(filename, id_=None)" filter="trim"> | |||
<link ${'id="{}" '.format(markupsafe.escape(id_)) if id_ else ""}rel="stylesheet" type="text/css" href="${url_for('staticv', filename=filename)}"/> | |||
</%def> | |||
<%def name="makejs(filename)" filter="trim"> | |||
<script src="${url_for('staticv', filename=filename)}"></script> | |||
</%def> |
@@ -4,7 +4,13 @@ | |||
<%inherit file="../_default.mako"/> | |||
<%namespace file="renderers.mako" import="render_summary"/> | |||
<%block name="title"> | |||
${self.maketitle(campaign["title"], "Campaigns")} | |||
${self.support.maketitle(campaign["title"], "Campaigns")} | |||
</%block> | |||
<%block name="extracss"> | |||
${self.support.makecss("campaigns.css")} | |||
</%block> | |||
<%block name="extrajs"> | |||
${self.support.makejs("campaigns.js")} | |||
</%block> | |||
<h2> | |||
<span class="understate">Campaign:</span> | |||
@@ -1,5 +1,5 @@ | |||
<%inherit file="../_default.mako"/> | |||
<%block name="title"> | |||
${self.maketitle("Campaigns")} | |||
${self.support.maketitle("Campaigns")} | |||
</%block> | |||
<p>No campaigns currently.</p> |
@@ -1,6 +1,6 @@ | |||
<%inherit file="../_default.mako"/> | |||
<%block name="title"> | |||
${self.maketitle(operation["title"], campaign["title"], "Campaigns")} | |||
${self.support.maketitle(operation["title"], campaign["title"], "Campaigns")} | |||
</%block> | |||
<h2> <!-- ... breadcrumb --> | |||
<span class="understate">Operation:</span> | |||
@@ -1,6 +1,6 @@ | |||
<%inherit file="_base.mako"/> | |||
<%block name="title"> | |||
${self.maketitle("Error")} | |||
${self.support.maketitle("Error")} | |||
</%block> | |||
<h2>Error!</h2> | |||
<p>You may report the following information to the developers:</p> | |||
@@ -1,6 +1,6 @@ | |||
<%inherit file="_base.mako"/> | |||
<%block name="title"> | |||
${self.maketitle("Log out")} | |||
${self.support.maketitle("Log out")} | |||
</%block> | |||
<h2>Log out</h2> | |||
<p>Use the button below to safely log out and clear your session.</p> | |||
@@ -1,6 +1,9 @@ | |||
<%inherit file="../_default.mako"/> | |||
<%block name="title"> | |||
${self.maketitle("Members")} | |||
${self.support.maketitle("Members")} | |||
</%block> | |||
<%block name="extracss"> | |||
${self.support.makecss("members.css")} | |||
</%block> | |||
<h2>Members</h2> | |||
% if members: | |||