1008 lines
29 KiB
Text
1008 lines
29 KiB
Text
<% #href %>
|
||
<% param.path %>
|
||
|
||
<% #listItem %>
|
||
<tr>
|
||
<td class='uk-width-6-10'><% site.title | site.link %></td>
|
||
<td class='uk-text-truncate' title='<% site.modified short %>' data-uk-tooltip="{pos: 'top-left'}">
|
||
<% site.modified text %>
|
||
</td>
|
||
<td><% site.modifier %></td>
|
||
</tr>
|
||
|
||
<% #edit %>
|
||
<h1><% response.title %></h1>
|
||
<div class='uk-article-meta'><% site.skin $HopObject#meta %></div>
|
||
<form class='uk-form uk-form-stacked' id="edit" method="post" action="<% response.action %>">
|
||
<fieldset>
|
||
<div class='uk-form-row uk-margin-top'>
|
||
<label class='uk-form-label' for='mode'>
|
||
<% gettext Mode %>
|
||
</label>
|
||
<div class='uk-form-controls'>
|
||
<% site.select mode %>
|
||
</div>
|
||
</div>
|
||
<div class='uk-form-row'>
|
||
<label class='uk-form-label' for='title'>
|
||
<% gettext Title %>
|
||
</label>
|
||
<div class='uk-form-controls'>
|
||
<% site.input title class='uk-width-1-1' %>
|
||
</div>
|
||
</div>
|
||
<div class='uk-form-row'>
|
||
<label class='uk-form-label' for='tagline'>
|
||
<% gettext Description %>
|
||
</label>
|
||
<div class='uk-form-controls'>
|
||
<% site.input tagline class='uk-width-1-1' %>
|
||
</div>
|
||
</div>
|
||
<div class='uk-form-row'>
|
||
<label class='uk-form-label' for='pageSize'>
|
||
<% gettext Paging %>
|
||
</label>
|
||
<div class='uk-form-controls'>
|
||
<% site.input pageSize class='uk-width-1-6' type=number min=1 max=25 %>
|
||
<% gettext "{0} per page" <% gettext "stories" %> %>
|
||
<% // site.select pageMode %>
|
||
</div>
|
||
</div>
|
||
<div class='uk-form-row'>
|
||
<label class='uk-form-label' for='commentMode'>
|
||
<% gettext Comments %>
|
||
</label>
|
||
<div class='uk-form-controls'>
|
||
<label>
|
||
<% site.checkbox commentMode %>
|
||
<% gettext enabled %>
|
||
</label>
|
||
</div>
|
||
</div>
|
||
<div class='uk-form-row'>
|
||
<label class='uk-form-label'>
|
||
<% gettext Archive %>
|
||
</label>
|
||
<div class='uk-form-controls'>
|
||
<label>
|
||
<% site.checkbox archiveMode %>
|
||
<% gettext enabled %>
|
||
</label>
|
||
</div>
|
||
</div>
|
||
<div class='uk-form-row'>
|
||
<label class='uk-form-label' for='locale'>
|
||
<% gettext Language %>
|
||
</label>
|
||
<div class='uk-form-controls'>
|
||
<% site.select locale %>
|
||
</div>
|
||
</div>
|
||
<div class='uk-form-row'>
|
||
<label class='uk-form-label' for='timeZone'>
|
||
<% gettext 'Time Zone' %>
|
||
</label>
|
||
<div class='uk-form-controls'>
|
||
<% site.select timeZone %>
|
||
</div>
|
||
</div>
|
||
<div class='uk-form-row'>
|
||
<label class='uk-form-label' for='notificationMode'>
|
||
<% gettext Notifications %>
|
||
</label>
|
||
<div class='uk-form-controls'>
|
||
<% site.select notificationMode %>
|
||
</div>
|
||
</div>
|
||
</fieldset>
|
||
<% site.skin $Site#admin restricted=true %>
|
||
<fieldset class='uk-margin-top'>
|
||
<legend><% gettext Advanced %></legend>
|
||
<div class='uk-form-row'>
|
||
<label class='uk-form-label' for='callbackUrl'>
|
||
<% gettext 'Callback URL' %>
|
||
</label>
|
||
<div class='uk-form-controls'>
|
||
<% site.input callbackUrl type=url class='uk-width-1-1' %>
|
||
<label>
|
||
<% site.checkbox callbackMode %>
|
||
<% gettext enabled %>
|
||
</label>
|
||
</div>
|
||
</div>
|
||
<div class='uk-form-row'>
|
||
<label class='uk-form-label'>
|
||
<% gettext 'Disk Space' %>
|
||
</label>
|
||
<div class='uk-form-controls'>
|
||
<% site.diskspace %>
|
||
</div>
|
||
</div>
|
||
<div class='uk-form-row'>
|
||
<label class='uk-form-label'>
|
||
<% gettext Bookmarklet %>
|
||
</label>
|
||
<div class='uk-form-controls'>
|
||
<a class='uk-button' data-uk-tooltip='{pos: "right"}' href="javascript: var siteUrl = '<% site.href %>'; var selection = (window.getSelection) ? window.getSelection() : document.selection.createRange(); selection = selection.text || selection; selection = selection + ''; var url='<% root.static %>../../formica.html?s=' + encodeURIComponent(siteUrl) + '&l=' + encodeURIComponent(location.href) + '&r=' + encodeURIComponent(document.referrer) + '&w=400&h=400&c=' + encodeURIComponent(selection || document.title); window.open(url, 'formica', 'width=630, height=350'); void 0;" title="<% gettext 'Drag to Bookmarks Bar' %>"><% gettext "Post to {0}" <% site.title %> %></a>
|
||
</div>
|
||
</div>
|
||
</fieldset>
|
||
<a id="spamfilter" name="spamfilter"></a>
|
||
<fieldset class='uk-margin-top'>
|
||
<legend><% gettext "Referrer Filter" %></legend>
|
||
<div class='uk-form-row'>
|
||
<div class='uk-form-controls'>
|
||
<% site.textarea spamfilter rows=5 class='uk-width-1-1' %>
|
||
<p class="uk-form-help-block">
|
||
<% gettext "Enter one filter {0}pattern{1} per line to be applied on every URL in the referrer and backlink lists." '<a href="http://en.wikipedia.org/wiki/Regular_expression">' </a> %>
|
||
</p>
|
||
</div>
|
||
</div>
|
||
</fieldset>
|
||
<div class='uk-margin-top'>
|
||
<button class='uk-button uk-button-primary' type="submit" id="submit" name="save" value="1">
|
||
<% gettext Save %>
|
||
</button>
|
||
<% site.link delete <% gettext Delete %> class='uk-button' %>
|
||
<a href='<% site.href %>' class="uk-button uk-button-link"><% gettext Cancel %></a>
|
||
</div>
|
||
</form>
|
||
<script>
|
||
$(function () {
|
||
$('input#callbackMode').on('click', function(event) {
|
||
$('input#callbackUrl').prop('disabled', !this.checked);
|
||
});
|
||
$('input#callbackUrl').prop('disabled', !$('input#callbackMode').prop('checked'));
|
||
|
||
// Group related <option> elements by inserting additional <optgroup> elements.
|
||
var groups = [];
|
||
var element = $('form#edit #timeZone');
|
||
element.find('option').each(function(index, item) {
|
||
var zone = $(item);
|
||
var parts = zone.html().split('/'); // E.g. Europe/Vienna
|
||
var group = parts[0];
|
||
if ($.inArray(group, groups) < 0) {
|
||
groups.push(group);
|
||
}
|
||
});
|
||
groups.sort();
|
||
$.each(groups, function(index, group) {
|
||
var key = group + '/'; // E.g. Europe/
|
||
element.find('option:contains(' + key + ')')
|
||
.wrapAll($('<optgroup>').attr('label', group))
|
||
.each(function(index, item) {
|
||
$(item).html($(item).html().replace(key, ''));
|
||
});
|
||
});
|
||
});
|
||
</script>
|
||
|
||
<% #admin %>
|
||
<a name='admin' id='admin'></a>
|
||
<fieldset class='uk-margin-top'>
|
||
<legend><% gettext Administration %></legend>
|
||
<div class='uk-form-row'>
|
||
<label class='uk-form-label' for='status'>
|
||
<% gettext Status %>
|
||
</label>
|
||
<div class='uk-form-controls'>
|
||
<% site.select status %>
|
||
</div>
|
||
</div>
|
||
<div class='uk-form-row'>
|
||
<label class='uk-form-label' for='status'>
|
||
<% gettext Information %>
|
||
</label>
|
||
<div><% ngettext "{0} Story" "{0} Stories" <% count <% site.self stories %> %> %></div>
|
||
<div><% ngettext "{0} Comment" "{0} Comments" <% count <% site.self comments %> %> %></div>
|
||
<div><% ngettext "{0} Image" "{0} Images" <% count <% site.self images %> %> %></div>
|
||
<div><% ngettext "{0} File" "{0} Files" <% count <% site.self files %> %> %></div>
|
||
</div>
|
||
<div class='uk-form-row'>
|
||
<label class='uk-form-label' for='notes'>
|
||
<% gettext Notes %>
|
||
</label>
|
||
<div class='uk-form-controls'>
|
||
<% site.textarea notes class='uk-width-1-1' rows=5 %>
|
||
</div>
|
||
</div>
|
||
</fieldset>
|
||
|
||
<% #delete %>
|
||
<div class='uk-alert uk-alert-danger'>
|
||
<% gettext 'You are about to delete the whole site which currently contains {0}, {1}, {2}, {3} and {4}.'
|
||
<% ngettext '{0} story' '{0} stories' <% count <% site.self stories %> %> %>
|
||
<% ngettext '{0} comment' '{0} comments' <% count <% site.self comments %> %> %>
|
||
<% ngettext '{0} image' '{0} images' <% count <% site.self images %> %> %>
|
||
<% ngettext '{0} file' '{0} files' <% count <% site.self files %> %> %>
|
||
<% ngettext '{0} poll' '{0} polls' <% count <% site.self polls %> %> %> %>
|
||
<strong><% gettext 'All of this will be deleted irreversibly.' %></strong>
|
||
<% gettext 'Are you sure you want to proceed?' %>
|
||
</div>
|
||
|
||
<% #search %>
|
||
<h1><% response.title %></h1>
|
||
<form class='uk-form' method='post' action='<% site.href search %>'>
|
||
<div class='uk-form-controls'>
|
||
<input type='text' class='uk-width-1-2' name='q' value='<% request.q encoding="form" %>' required>
|
||
<button type='submit' name='search' value='1' class='uk-button uk-button-primary'>
|
||
<% gettext Find %>
|
||
</button>
|
||
<a href='<% site.href %>' class='uk-button uk-button-link'><% gettext Cancel %></a>
|
||
</div>
|
||
</form>
|
||
<p>
|
||
<% if <% response.count %> is null then '' else <% ngettext 'Showing {0} result' 'Showing {0} results' <% response.count %> suffix=. %> %>
|
||
</p>
|
||
<dl class='uk-description-list-line'>
|
||
<% response.result %>
|
||
</dl>
|
||
|
||
<% #opensearchdescription %>
|
||
<?xml version="1.0" encoding="UTF-8"?>
|
||
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
|
||
<ShortName><% site.title %></ShortName>
|
||
<Description>Search the site <% site.href %></Description>
|
||
<Tags>antville search</Tags>
|
||
<Image height="16" width="16" type="image/vnd.microsoft.icon"><% image /favicon.png url %></Image>
|
||
<Url type="text/html" template="<% site.href search %>?q={searchTerms}" />
|
||
<Query role="example" searchTerms="cat" />
|
||
</OpenSearchDescription>
|
||
|
||
<% #header %>
|
||
<header class='av-header'>
|
||
<div class='av-header-bg'>
|
||
<div class='av-header-bg-chaos'></div>
|
||
<div class='av-header-bg-offset'>
|
||
<div class='av-header-bg-dots'></div>
|
||
</div>
|
||
</div>
|
||
<div class='av-title'>
|
||
<% site.title | site.link title=<% site.tagline %> %>
|
||
</div>
|
||
</header>
|
||
|
||
<% #footer %>
|
||
<footer>
|
||
<hr class='uk-margin-large-top'>
|
||
<div class='uk-text-small uk-margin-bottom uk-float-left'>
|
||
<div><% gettext 'Created {0}' <% site.created text %> %>.</div>
|
||
<div><% gettext 'Last modified {0}' <% site.modified text %> %>.</div>
|
||
</div>
|
||
<div class='uk-text-right'>
|
||
<% image /smallchaos.gif | link http://antville.org %> &
|
||
<% image /helma.png | link http://helma.org %>
|
||
</div>
|
||
</footer>
|
||
|
||
<% #javascript %>
|
||
document.addEventListener('DOMContentLoaded', function () {
|
||
// Injecting main.css if necessary for compatibility reasons
|
||
if (!document.querySelector('link[href$=main\\.css]')) {
|
||
var link = document.createElement('link');
|
||
link.href = '<% site.href main.css %>';
|
||
link.rel = 'stylesheet';
|
||
link.type = 'text/css';
|
||
document.head.appendChild(link);
|
||
}
|
||
});
|
||
|
||
<% site.skin Site#javascript | script %>
|
||
|
||
<% #include %>
|
||
(function (url) {
|
||
var script = document.createElement('script');
|
||
script.type = 'text/javascript';
|
||
script.src = url;
|
||
document.head.appendChild(script);
|
||
})('<% param.href %>');
|
||
|
||
<% #stylesheet %>
|
||
@import '<% root.static ../../styles/main.min.css %>';
|
||
|
||
// FIXME: compatibility
|
||
|
||
@background-color: <% value 'background color' default=#fff %>;
|
||
@link-color: <% value 'link color' default=#ff4040 %>;
|
||
@hover-color: <% value 'active link color' default=#d50000 %>;
|
||
|
||
@font-family: <% value 'base font' default='Helvetica Neue, Helvetica, Arial, sans-serif' %>;
|
||
@font-size: <% value 'base font size' default="'14px / 20px'" %>;
|
||
@font-color: <% value 'base font color' default=#444 %>;
|
||
|
||
@font-family-large: <% value 'big font' default=@font-family %>;
|
||
@font-size-large: <% value 'big font size' default=inherit %>;
|
||
@font-color-large: <% value 'big font color' default=@font-color %>;
|
||
|
||
@muted-color: average(@background-color, @font-color);
|
||
@muted-background: fadeout(@muted-color, 80%);
|
||
|
||
@font-family-small: <% value 'small font' default=@font-family %>;
|
||
@font-size-small: <% value 'small font size' default=inherit %>;
|
||
@font-color-small: <% value 'small font color' default=@muted-color %>;
|
||
|
||
// Overwriting some classes defined by UIKit to go along with Antville’s layout
|
||
|
||
html {
|
||
font: normal @font-size @font-family;
|
||
}
|
||
|
||
h1, h2, h3, h4, h5, h6 {
|
||
color: @font-color-large;
|
||
font-family: @font-family-large;
|
||
}
|
||
|
||
a {
|
||
color: @link-color;
|
||
&:hover {
|
||
color: @hover-color;
|
||
}
|
||
}
|
||
|
||
em {
|
||
color: @font-color;
|
||
small & {
|
||
color: @font-color-small;
|
||
}
|
||
}
|
||
|
||
img {
|
||
max-width: initial; // FIXME: compatibility
|
||
&[src$='pixel.gif'] {
|
||
width: initial;
|
||
height: initial;
|
||
}
|
||
}
|
||
|
||
hr {
|
||
border-top-color: @muted-background;
|
||
}
|
||
|
||
.uk-description-list-line {
|
||
overflow: hidden;
|
||
}
|
||
|
||
.uk-text-muted, .uk-article-meta, .uk-description-list-line > dd {
|
||
color: @muted-color !important;
|
||
}
|
||
|
||
.uk-table-striped tbody tr:hover, .uk-table-striped tbody tr:nth-of-type(odd) {
|
||
background: inherit;
|
||
}
|
||
|
||
.uk-button-group.av-link-group a {
|
||
border-right: initial;
|
||
}
|
||
|
||
.uk-nav-divider + .uk-nav-divider,
|
||
.uk-nav-header + .uk-nav-header {
|
||
display: none;
|
||
}
|
||
|
||
.uk-nav-side .uk-nav-divider {
|
||
margin-top: 15px;
|
||
border-top: none;
|
||
}
|
||
|
||
.uk-alert {
|
||
background: @muted-background;
|
||
border-color: @muted-color;
|
||
color: @muted-color;
|
||
text-shadow: none;
|
||
}
|
||
|
||
.uk-icon-button {
|
||
&:link, &:visited {
|
||
background-color: @background-color;
|
||
color: @link-color;
|
||
border-color: @link-color;
|
||
text-shadow: initial;
|
||
}
|
||
&:hover {
|
||
background-color: @background-color;
|
||
color: @hover-color;
|
||
border-color: @hover-color;
|
||
text-shadow: initial;
|
||
}
|
||
}
|
||
|
||
.uk-button {
|
||
&, &:link, &:visited {
|
||
background-color: @background-color;
|
||
color: @font-color;
|
||
border-color: @font-color;
|
||
text-shadow: initial;
|
||
}
|
||
&:hover {
|
||
background-color: @background-color;
|
||
color: @hover-color;
|
||
border-color: @hover-color;
|
||
}
|
||
&.uk-button-link {
|
||
border: initial;
|
||
&:link, &:visited {
|
||
color: @link-color;
|
||
}
|
||
&:hover {
|
||
color: @hover-color;
|
||
}
|
||
}
|
||
&.uk-button-primary {
|
||
background-color: @background-color;
|
||
border-style: double;
|
||
border-color: @link-color;
|
||
color: @link-color;
|
||
font-weight: bold;
|
||
&:hover {
|
||
background: inherit;
|
||
border-color: @hover-color;
|
||
color: @hover-color;
|
||
}
|
||
}
|
||
}
|
||
|
||
.uk-pagination {
|
||
& > li > a {
|
||
background: @background-color;
|
||
color: @link-color;
|
||
border-color: @link-color;
|
||
text-shadow: initial;
|
||
&:hover {
|
||
background: @background-color;
|
||
color: @hover-color;
|
||
border-color: @hover-color;
|
||
}
|
||
}
|
||
& > .uk-active > span {
|
||
background: @background-color;
|
||
border-color: @font-color-small;
|
||
color: @font-color-small;
|
||
font-weight: bold;
|
||
}
|
||
& > .uk-disabled > span {
|
||
background: @muted-background;
|
||
color: @muted-color;
|
||
border-color: @muted-color;
|
||
text-shadow: initial;
|
||
}
|
||
}
|
||
|
||
.uk-subnav > li > a {
|
||
&:link, &:visited {
|
||
color: @link-color;
|
||
}
|
||
&:hover {
|
||
color: @hover-color;
|
||
}
|
||
}
|
||
|
||
.uk-nav-side > li.uk-active > a {
|
||
background: none;
|
||
color: @link-color;
|
||
box-shadow: none;
|
||
font-weight: bold;
|
||
}
|
||
|
||
.uk-thumbnail img {
|
||
max-width: 100%;
|
||
}
|
||
|
||
h1 a, .uk-table a {
|
||
&:visited {
|
||
color: @link-color;
|
||
}
|
||
&:hover {
|
||
color: @hover-color;
|
||
}
|
||
}
|
||
|
||
.uk-table th, .uk-table td, {
|
||
border-color: @muted-background;
|
||
}
|
||
|
||
.uk-form legend:after {
|
||
content: '';
|
||
display: block;
|
||
border-bottom: 1px solid @muted-background;
|
||
width: 100%;
|
||
}
|
||
|
||
.uk-form select, .uk-form textarea, .uk-form input:not([type]), .uk-form input[type="text"], .uk-form input[type="password"], .uk-form input[type="datetime"], .uk-form input[type="datetime-local"], .uk-form input[type="date"], .uk-form input[type="month"], .uk-form input[type="time"], .uk-form input[type="week"], .uk-form input[type="number"], .uk-form input[type="email"], .uk-form input[type="url"], .uk-form input[type="search"], .uk-form input[type="tel"], .uk-form input[type="color"] {
|
||
border-color: @muted-background;
|
||
}
|
||
|
||
// Here come the classes defining the default Antville layout
|
||
|
||
.av-page {
|
||
width: 900px; // FIXME: Could we use the `vw` unit already?
|
||
}
|
||
|
||
.av-sprite {
|
||
display: inline-block;
|
||
vertical-align: middle;
|
||
}
|
||
|
||
.av-ant {
|
||
display: inline-block;
|
||
margin: 0 0 -2px -2px;
|
||
width: 15px;
|
||
height: 15px;
|
||
background: url(/static/img/ant.svg);
|
||
background-size: 15px 15px;
|
||
}
|
||
|
||
.av-border-left {
|
||
border-left: 1px solid @muted-background;
|
||
}
|
||
|
||
.av-overflow {
|
||
// FIXME: Is this cross-browser compatible?
|
||
max-width: 0;
|
||
overflow: hidden;
|
||
}
|
||
|
||
.av-invisible {
|
||
visibility: hidden;
|
||
}
|
||
|
||
.av-upload {
|
||
position: relative;
|
||
|
||
input[type='file'] {
|
||
position: relative;
|
||
z-index: 1;
|
||
visibility: hidden;
|
||
}
|
||
|
||
.av-upload-controls {
|
||
position: absolute;
|
||
z-index: 2;
|
||
top: 0;
|
||
left: 0;
|
||
}
|
||
}
|
||
|
||
.av-image-box {
|
||
display: inline-block;
|
||
max-width: 100%;
|
||
}
|
||
|
||
.av-tagged {
|
||
padding: 0;
|
||
.av-tagged-image {
|
||
opacity: 0;
|
||
img {
|
||
max-width: 100%;
|
||
display: inline-block;
|
||
margin: 0;
|
||
padding: 0;
|
||
vertical-align: bottom;
|
||
opacity: 1;
|
||
}
|
||
.Caption_Content {
|
||
color: #fff;
|
||
padding: 10px;
|
||
}
|
||
}
|
||
}
|
||
|
||
.av-poll-result-bar {
|
||
display: inline-block;
|
||
height: 0.5rem;
|
||
overflow: hidden;
|
||
margin-right: 0.5rem;
|
||
background-color: @link-color;
|
||
}
|
||
|
||
.av-header {
|
||
margin-top: 5px;
|
||
|
||
.av-header-bg {
|
||
position: relative;
|
||
}
|
||
|
||
.av-header-bg-chaos {
|
||
float: left;
|
||
width: 262px;
|
||
height: 53px;
|
||
margin-left: -40px;
|
||
background: url('<% image /spritesheet.png url %>');
|
||
background-position: 5px -139px;
|
||
}
|
||
|
||
.av-header-bg-offset {
|
||
height: 53px;
|
||
margin-left: 222px;
|
||
}
|
||
|
||
.av-header-bg-dots {
|
||
position: relative;
|
||
top: 7px;
|
||
height: 38px;
|
||
background: url('<% image /dot.gif url %>');
|
||
background-position-x: 1px;
|
||
}
|
||
|
||
.av-title {
|
||
position: relative;
|
||
top: -50px;
|
||
overflow: visible;
|
||
white-space: nowrap;
|
||
font-family: Verdana, Helvetica, Arial, sans-serif;
|
||
font-size: 25px;
|
||
font-weight: bold;
|
||
transform: translateY(50%);
|
||
}
|
||
}
|
||
|
||
.av-skin-active {
|
||
background: #fff;
|
||
opacity: .25;
|
||
}
|
||
|
||
.av-locale-needs-translation {
|
||
color: @muted-color;
|
||
}
|
||
|
||
.av-layout-sandbox {
|
||
height: 22px;
|
||
}
|
||
|
||
.av-layout-sandbox div {
|
||
position: fixed;
|
||
top: 0;
|
||
left: 0;
|
||
right: 0;
|
||
height: 22px;
|
||
padding: 0 20px;
|
||
background: url('<% image /sandbox.png url %>');
|
||
background-position: 0 23px;
|
||
text-align: left;
|
||
}
|
||
|
||
.av-skin-control {
|
||
margin: 5px 0;
|
||
}
|
||
|
||
.av-skin-edit-link {
|
||
padding: 2px;
|
||
text-decoration: none !important;
|
||
}
|
||
|
||
// Overwriting some Helma and Jala classes for debugging and calendar integration
|
||
|
||
.helma-debug-line /*:has(script)*/ {
|
||
border: none !important;
|
||
}
|
||
|
||
.jala-calendar {
|
||
width: 100%;
|
||
text-align: center;
|
||
}
|
||
|
||
.jala-calendar tbody th {
|
||
font-weight: normal;
|
||
color: @font-color;
|
||
}
|
||
|
||
.jala-calendar-day {
|
||
width: 14.27%;
|
||
line-height: 1.2rem;
|
||
text-align: center;
|
||
a {
|
||
font-weight: bold;
|
||
}
|
||
}
|
||
|
||
.jala-calendar-selected {
|
||
border: 1px solid @muted-color;
|
||
border-radius: 4px;
|
||
font-weight: bold;
|
||
}
|
||
|
||
.jala-calendar-left {
|
||
text-align: center;
|
||
vertical-align: baseline;
|
||
}
|
||
|
||
.jala-calendar-right {
|
||
border: 0;
|
||
text-align: center;
|
||
vertical-align: baseline;
|
||
}
|
||
|
||
// Overwriting some CSS classes for Google’s custom search
|
||
|
||
.gs-webResult.gs-result a.gs-title:link,
|
||
.gs-webResult.gs-result a.gs-title:link b,
|
||
.gs-imageResult a.gs-title:link,
|
||
.gs-imageResult a.gs-title:link b {
|
||
color: @link-color !important;
|
||
}
|
||
|
||
.gs-webResult.gs-result a.gs-title:visited,
|
||
.gs-webResult.gs-result a.gs-title:visited b,
|
||
.gs-imageResult a.gs-title:visited,
|
||
.gs-imageResult a.gs-title:visited b {
|
||
color: @link-color !important;
|
||
}
|
||
|
||
.gs-result .gs-title, .gs-result .gs-title * {
|
||
text-decoration: none !important;
|
||
}
|
||
|
||
a.gs-title:hover {
|
||
text-decoration: underline !important;
|
||
}
|
||
|
||
.gsc-results {
|
||
border: none !important;
|
||
width: auto !important;
|
||
}
|
||
|
||
.cse .gsc-control-cse, .gsc-control-cse, .gsc-result-info, .gcsc-branding, .gsc-table-result, .gsc-thumbnail-inside, .gsc-url-top {
|
||
border: none !important;
|
||
padding-left: 0 !important;
|
||
padding-right: 0 !important;
|
||
}
|
||
|
||
.gsc-results .gsc-cursor-box {
|
||
margin: 10px 0 0 0 !important;
|
||
}
|
||
|
||
.gsc-result-info, .gsc-orderby-label, td.gsc-branding-text, td.gcsc-branding-text {
|
||
color: @muted-color !important;
|
||
}
|
||
|
||
.gs-no-results-result .gs-snippet, .gs-error-result .gs-snippet {
|
||
margin: 0 !important;
|
||
border: none !important;
|
||
padding: 0 !important;
|
||
background-color: inherit !important;
|
||
}
|
||
|
||
.gs-webResult div.gs-visibleUrl, .gs-imageResult div.gs-visibleUrl {
|
||
color: @muted-color !important;
|
||
}
|
||
|
||
.gsc-control-cse, .gsc-control-cse-en {
|
||
background: @background-color !important;
|
||
}
|
||
|
||
.gsc-webResult.gsc-result, .gsc-results .gsc-imageResult {
|
||
border: none !important;
|
||
background: none !important;
|
||
}
|
||
|
||
.gs-webResult .gs-snippet, .gs-imageResult .gs-snippet, .gs-fileFormatType {
|
||
color: @font-color !important;
|
||
}
|
||
|
||
.gsc-results .gsc-cursor-box .gsc-cursor-page {
|
||
color: @link-color !important;
|
||
background: none !important;
|
||
}
|
||
|
||
.gcsc-branding-img-noclear {
|
||
width: 51px;
|
||
height: 15px;
|
||
max-width: initial;
|
||
vertical-align: text-bottom;
|
||
}
|
||
|
||
.gsc-above-wrapper-area {
|
||
border-bottom-color: @muted-background !important;
|
||
}
|
||
|
||
<% #referrers %>
|
||
<h1><% response.title %></h1>
|
||
<form class='uk-form' action="<% response.action %>" method="get">
|
||
<div class='uk-form-row'>
|
||
<input class='uk-width-1-2' type="text" name="filter" value="<% request.filter encoding="form" %>">
|
||
<button class='uk-button uk-button-primary' type="submit" name="submit" value="1"><% gettext Search %></button>
|
||
<a class='uk-button' href='<% site.href referrers %>'>
|
||
<% gettext Reset %>
|
||
</a>
|
||
<div class='uk-form-help-block'>
|
||
<label>
|
||
<input type="checkbox" id="includeSpam" name="includeSpam" value="checked" <% request.includeSpam prefix='checked="' suffix='"' encoding="form" %> />
|
||
<% gettext 'Disable filter' %>
|
||
<i class='uk-icon uk-icon-info-circle uk-text-muted' data-uk-tooltip="{pos: 'right'}"title='<% gettext "Edit the filter in the site settings." %>'></i>
|
||
</label>
|
||
</div>
|
||
</div>
|
||
<% site.skin $Site#referrerTable %>
|
||
</form>
|
||
|
||
<% #referrerTable %>
|
||
<table class='uk-hidden uk-table uk-table-condensed uk-table-striped uk-table-hover av-referrers'>
|
||
<thead>
|
||
<tr>
|
||
<th class='uk-text-right'><i class='uk-icon-bar-chart'></i></th>
|
||
<th><% gettext Referrer %></th>
|
||
<th></th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<% site.skin $Site#referrer %>
|
||
<% response.list %>
|
||
</tbody>
|
||
</table>
|
||
<script type="text/javascript">
|
||
$(function () {
|
||
var query = new Antville.Query();
|
||
var spamFilter = new Antville.Filter([<% site.spamfilter %>]);
|
||
var searchFilter = new Antville.Filter(query.filter);
|
||
var searchEngineFilters = [
|
||
new Antville.Filter("\/\/.*altavista.*\?", "q"),
|
||
new Antville.Filter("\/\/.*bing\..*\?", "q"),
|
||
new Antville.Filter("\/\/.*google\..*\?", "q"),
|
||
new Antville.Filter("\/\/.*search\.yahoo\..*\?", "p"),
|
||
new Antville.Filter("\/\/.*yandex\..*\?", "text")
|
||
];
|
||
var urlShortenerCounter = 0;
|
||
var urlShortenerFilters = [
|
||
new Antville.Filter('\/\/bit\.ly/'),
|
||
new Antville.Filter('\/\/goo\.gl/'),
|
||
new Antville.Filter('\/\/owl\.ly/'),
|
||
new Antville.Filter('\/\/t\.co/'),
|
||
new Antville.Filter('\/\/tinyurl\.com/')
|
||
];
|
||
$('.av-referrer-row').each(function (index) {
|
||
if (index < 1) return;
|
||
var row = $(this);
|
||
var ref = row.find('.av-referrer a');
|
||
var url = ref.attr('href');
|
||
var count = row.find('.av-referrer-count').html();
|
||
var control = row.find('.av-referrer-control a');
|
||
control.on('click', function (event) {
|
||
event.preventDefault();
|
||
var input = prompt("<% gettext 'Are you sure you want to add this URL to the referrer filter? Edit it below to filter a pattern only.' %>", url);
|
||
if (input) {
|
||
location.href = '<% site.href referrers %>?submit=1&permanent=' + encodeURIComponent(input);
|
||
}
|
||
});
|
||
var referrer = new Antville.Referrer(url, url, count);
|
||
ref.html(referrer.text);
|
||
for (var i = 0, filter; i < urlShortenerFilters.length; i += 1) {
|
||
filter = urlShortenerFilters[i];
|
||
if (filter.test(url)) {
|
||
urlShortenerCounter += parseInt(count, 10);
|
||
row.remove();
|
||
}
|
||
}
|
||
if (spamFilter.test(url)) {
|
||
if (query.includeSpam) {
|
||
ref.addClass('uk-text-muted');
|
||
control.remove();
|
||
} else {
|
||
row.remove();
|
||
}
|
||
}
|
||
if (query.filter && !searchFilter.test(url)) {
|
||
row.remove();
|
||
}
|
||
var re = new RegExp('[:/].*$');
|
||
for (var i = 0, filter; i < searchEngineFilters.length; i += 1) {
|
||
filter = searchEngineFilters[i];
|
||
if (filter.test(url)) {
|
||
var host = referrer.text.replace(re, '');
|
||
ref.html(referrer.compose('<i><% gettext "Search" %> ' + host + ':</i>', filter.key));
|
||
break;
|
||
}
|
||
}
|
||
});
|
||
var firstRow = $('.av-referrer-row:first');
|
||
if (urlShortenerCounter > 0) {
|
||
firstRow.find('.av-referrer-count')
|
||
.html(urlShortenerCounter)
|
||
.end()
|
||
.find('.av-referrer')
|
||
.html('URL Shorteners')
|
||
.end()
|
||
.find('.av-referrer-control a')
|
||
.remove();
|
||
var rows = $('.av-referrer-row');
|
||
for (var i = 1, count; i < rows.length; i += 1) {
|
||
count = parseInt(rows.eq(i).find('.av-referrer-count').html(), 10);
|
||
if (count >= urlShortenerCounter) {
|
||
firstRow.insertAfter(rows.eq(i));
|
||
break;
|
||
}
|
||
}
|
||
} else {
|
||
firstRow.remove();
|
||
}
|
||
if ($('.av-referrers tbody').children().length > 0) {
|
||
$('.av-referrers').removeClass('uk-hidden');
|
||
}
|
||
});
|
||
</script>
|
||
|
||
<% #referrer %>
|
||
<tr class='av-referrer-row'>
|
||
<td class='uk-text-right av-referrer-count'><% param.requests %></td>
|
||
<td class='av-referrer av-overflow uk-width-1-1'>
|
||
<% param.referrer | link %>
|
||
</td>
|
||
<td class='av-referrer-control uk-text-right'>
|
||
<a href='javascript:'><i class='uk-icon uk-icon-filter'></i></a>
|
||
</td>
|
||
</tr>
|
||
|
||
<% #deleted %>
|
||
<% gettext "This site is going to be deleted completely and irreversibly after {0}." <% site.deleted | format long %> %>
|
||
|
||
<% #export %>
|
||
<h1><% gettext "Export Site Data" %></h1>
|
||
<p>
|
||
<% if <% param.status %> is null then <% if <% file.self %> is null then '' else <% gettext "Download the file {0} or klick “Start” to create a new one." <% file.skin File#main %> '<small>' <% file.created | format short %> '</small>' %> %> else <% param.status %> %>
|
||
</p>
|
||
<form action="" method="post">
|
||
<button type="submit" name="submit" value="<% if <% param.status %> is null then start else stop %>" class='uk-button uk-button-primary'>
|
||
<% if <% param.status %> is null then <% gettext Start %> else <% gettext Stop %> %>
|
||
</button>
|
||
<a href='<% site.href %>' class='uk-button uk-link-button'><% gettext Cancel %></a>
|
||
</form>
|
||
|
||
<% #import %>
|
||
<h1><% gettext 'Import Site Data' %></h1>
|
||
<p>
|
||
<% if <% file.self %> is null then '' else <% gettext "The site is scheduled for importing the file {0}. The imported site data will be available within 24 hours." <% file.skin File#main %> '</a>' '<small>' <% file.created | format short %> '</small>' %> %>
|
||
</p>
|
||
<form class='uk-form uk-form-stacked' method="post" enctype="multipart/form-data">
|
||
<div class='uk-form-row'>
|
||
<label class='uk-form-label' for=''>
|
||
<% gettext File %>
|
||
</label>
|
||
<div class='uk-form-controls'>
|
||
<% if <% file.self %> is null then <% site.upload file %> %>
|
||
</div>
|
||
</div>
|
||
<div class='uk-form-row'>
|
||
<button class='uk-button uk-button-primary' type="submit" name="submit" value="<% if <% file.self %> is null then start else stop %>">
|
||
<% if <% file.self %> is null then <% gettext Start %> else <% gettext Stop %> %>
|
||
</button>
|
||
<a href='<% site.href %>' class='uk-button uk-button-link'><% gettext Cancel %></a>
|
||
</div>
|
||
</form>
|
||
|
||
<% #notify_block %>
|
||
<% gettext 'Hello {0}.' <% membership.name %> %>
|
||
|
||
<% gettext 'The site {0} at {1} will be blocked in {2} because it is being
|
||
restricted for too long.' <% site.title %> <%site.href %>
|
||
<% ngettext '{0} day' '{0} days' <% root.phaseOutGracePeriod %> %> %>
|
||
|
||
<% gettext "Best regards." %>
|
||
<% gettext "The Management" %>
|
||
|
||
<% #notify_delete %>
|
||
<% gettext 'Hello {0}.' <% membership.name %> %>
|
||
|
||
<% gettext 'The site {0} at {1} will be deleted in {2} because it has been
|
||
considered as abandoned.' <% site.title %> <% site.href %>
|
||
<% ngettext '{0} day' '{0} days' <% root.phaseOutGracePeriod %> %> %>
|
||
|
||
<% gettext "Best regards." %>
|
||
<% gettext "The Management" %>
|
||
|
||
<% #noscript %>
|
||
<% gettext "Referrers and backlinks are processed in your browser to reduce spam. To see them, your browser needs to permit the execution of JavaScript." %>
|
||
|
||
<% #menuExt %>
|
||
<script type="text/javascript" defer="defer">
|
||
var win = external.menuArguments;
|
||
var url = "<% site.url %>stories/create?text=";
|
||
var link = escape('<a href="' + win.location.href + '">' +
|
||
win.document.title + "</a>: ");
|
||
var text = escape(win.document.selection.createRange().text);
|
||
win.location.href = url + link + text;
|
||
</script>
|
||
|
||
<% #menuExtRegistry %>
|
||
REGEDIT4
|
||
[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\Post to <% site.title %>]
|
||
@="<% site.url %>menuext"
|
||
"contexts"=hex:31
|