From 9b3fa77719642acd13a2ae6f29087dffcb261f4d Mon Sep 17 00:00:00 2001 From: czaks Date: Wed, 8 Oct 2014 23:23:59 +0200 Subject: new banlist implementation; also includes a public banlist --- templates/main.js | 47 ++++++++++ templates/mod/ban_list.html | 137 ++++++++---------------------- templates/themes/public_banlist/info.php | 33 +++++++ templates/themes/public_banlist/theme.php | 56 ++++++++++++ templates/themes/ukko/theme.php | 6 +- 5 files changed, 178 insertions(+), 101 deletions(-) create mode 100644 templates/themes/public_banlist/info.php create mode 100644 templates/themes/public_banlist/theme.php (limited to 'templates') diff --git a/templates/main.js b/templates/main.js index 52f38e69..ed25f7d9 100644 --- a/templates/main.js +++ b/templates/main.js @@ -22,6 +22,53 @@ function fmt(s,a) { return s.replace(/\{([0-9]+)\}/g, function(x) { return a[x[1]]; }); } +function until($timestamp) { + var $difference = $timestamp - Date.now()/1000|0, $num; + switch(true){ + case ($difference < 60): + return "" + $difference + ' ' + _('second(s)'); + case ($difference < 3600): //60*60 = 3600 + return "" + ($num = Math.round($difference/(60))) + ' ' + _('minute(s)'); + case ($difference < 86400): //60*60*24 = 86400 + return "" + ($num = Math.round($difference/(3600))) + ' ' + _('hour(s)'); + case ($difference < 604800): //60*60*24*7 = 604800 + return "" + ($num = Math.round($difference/(86400))) + ' ' + _('day(s)'); + case ($difference < 31536000): //60*60*24*365 = 31536000 + return "" + ($num = Math.round($difference/(604800))) + ' ' + _('week(s)'); + default: + return "" + ($num = Math.round($difference/(31536000))) + ' ' + _('year(s)'); + } +} + +function ago($timestamp) { + var $difference = (Date.now()/1000|0) - $timestamp, $num; + switch(true){ + case ($difference < 60) : + return "" + $difference + ' ' + _('second(s)'); + case ($difference < 3600): //60*60 = 3600 + return "" + ($num = Math.round($difference/(60))) + ' ' + _('minute(s)'); + case ($difference < 86400): //60*60*24 = 86400 + return "" + ($num = Math.round($difference/(3600))) + ' ' + _('hour(s)'); + case ($difference < 604800): //60*60*24*7 = 604800 + return "" + ($num = Math.round($difference/(86400))) + ' ' + _('day(s)'); + case ($difference < 31536000): //60*60*24*365 = 31536000 + return "" + ($num = Math.round($difference/(604800))) + ' ' + _('week(s)'); + default: + return "" + ($num = Math.round($difference/(31536000))) + ' ' + _('year(s)'); + } +} + +var datelocale = + { days: [_('Sunday'), _('Monday'), _('Tuesday'), _('Wednesday'), _('Thursday'), _('Friday'), _('Saturday')] + , shortDays: [_("Sun"), _("Mon"), _("Tue"), _("Wed"), _("Thu"), _("Fri"), _("Sat")] + , months: [_('January'), _('February'), _('March'), _('April'), _('May'), _('June'), _('July'), _('August'), _('September'), _('October'), _('November'), _('December')] + , shortMonths: [_('Jan'), _('Feb'), _('Mar'), _('Apr'), _('May'), _('Jun'), _('Jul'), _('Aug'), _('Sep'), _('Oct'), _('Nov'), _('Dec')] + , AM: _('AM') + , PM: _('PM') + , am: _('am') + , pm: _('pm') + }; + var saved = {}; diff --git a/templates/mod/ban_list.html b/templates/mod/ban_list.html index 97c02029..0c67f269 100644 --- a/templates/mod/ban_list.html +++ b/templates/mod/ban_list.html @@ -1,104 +1,41 @@ -{% if bans|count == 0 %} -

({% trans 'There are no active bans.' %})

-{% else %} -
- - - - - - - - - - - - - {% for ban in bans %} - - - - - - - - - - - {% endfor %} + + + + + + + + + + + {% if token %} + + {% endif %} +
+
+ {% if mod and mod.boards[0] != '*' %} + + {% endif %} + +
+
+ + {% if mod %} + + {% endif %} +
+ +
+
+ +
{% trans 'IP address/mask' %}{% trans 'Reason' %}{% trans 'Board' %}{% trans 'Set' %}{% trans 'Duration' %}{% trans 'Expires' %}{% trans 'Seen' %}{% trans 'Staff' %}
- - {% if ban.single_addr %} - {{ ban.mask }} - {% else %} - {{ ban.mask }} - {% endif %} - - {% if ban.reason %} - {{ ban.reason }} - {% else %} - - - {% endif %} - - {% if ban.board %} - {{ config.board_abbreviation|sprintf(ban.board) }} - {% else %} - {% trans 'all boards' %} - {% endif %} - - - {{ ban.created|ago }} ago - - - {% if ban.expires == 0 %} - - - {% else %} - {{ (ban.expires - ban.created + time()) | until }} - {% endif %} - - {% if ban.expires == 0 %} - {% trans 'never' %} - {% else %} - {{ ban.expires|date(config.post_date) }} - {% if ban.expires > time() %} - (in {{ ban.expires|until }}) - {% endif %} - {% endif %} - - {% if ban.seen %} - {% trans 'Yes' %} - {% else %} - {% trans 'No' %} - {% endif %} - - {% if ban.username %} - {% if mod|hasPermission(config.mod.view_banstaff) %} - {{ ban.username|e }} - {% else %} - {% if mod|hasPermission(config.mod.view_banquestionmark) %} - ? - {% else %} - - {% endif %} - {% endif %} - {% elseif ban.creator == -1 %} - system - {% else %} - {% trans 'deleted?' %} - {% endif %} -
+ + -

- -

+{% if token_json %} + +{% else %} + {% endif %} - -{% if count > bans|count %} -

- {% for i in range(0, (count - 1) / config.mod.modlog_page) %} - [{{ i + 1 }}] - {% endfor %} -

-{% endif %} - diff --git a/templates/themes/public_banlist/info.php b/templates/themes/public_banlist/info.php new file mode 100644 index 00000000..006ac38e --- /dev/null +++ b/templates/themes/public_banlist/info.php @@ -0,0 +1,33 @@ + 'JSON feed file', + 'name' => 'file_json', + 'type' => 'text', + 'default' => 'bans.json', + 'comment' => '(eg. "bans.json")' + ); + + $theme['config'][] = Array( + 'title' => 'Main HTML file', + 'name' => 'file_bans', + 'type' => 'text', + 'default' => 'bans.html', + 'comment' => '(eg. "bans.html")' + ); + + // Unique function name for building everything + $theme['build_function'] = 'pbanlist_build'; +?> diff --git a/templates/themes/public_banlist/theme.php b/templates/themes/public_banlist/theme.php new file mode 100644 index 00000000..b64b8d9e --- /dev/null +++ b/templates/themes/public_banlist/theme.php @@ -0,0 +1,56 @@ + $config, + 'mod' => false, + 'hide_dashboard_link' => true, + 'title' => _("Ban list"), + 'subtitle' => "", + 'nojavascript' => true, + 'body' => Element('mod/ban_list.html', array( + 'mod' => false, + 'boards' => "[]", + 'token' => false, + 'token_json' => false, + 'uri_json' => $config['dir']['home'] . $settings['file_json'], + )) + )); + } + }; + +?> diff --git a/templates/themes/ukko/theme.php b/templates/themes/ukko/theme.php index b2624ed7..058fc77b 100644 --- a/templates/themes/ukko/theme.php +++ b/templates/themes/ukko/theme.php @@ -4,7 +4,11 @@ function ukko_build($action, $settings) { $ukko = new ukko(); $ukko->settings = $settings; - + + if (! ($action == 'all' || $action == 'post' || $action == 'post-thread' || $action == 'post-delete')) { + return; + } + file_write($settings['uri'] . '/index.html', $ukko->build()); file_write($settings['uri'] . '/ukko.js', Element('themes/ukko/ukko.js', array())); } -- cgit v1.3