xref: /plugin/botmon/admin.php (revision 9f1ee8c1f3ed9963111a116a92ad1baea9857250)
1f125bc8dSSascha Leib<?php
2f125bc8dSSascha Leib
3f125bc8dSSascha Leibuse dokuwiki\Extension\AdminPlugin;
4f125bc8dSSascha Leib
5f125bc8dSSascha Leib/**
6f125bc8dSSascha Leib * Trafic Monitoring Plugin
7f125bc8dSSascha Leib*
8f125bc8dSSascha Leib* @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
9f125bc8dSSascha Leib* @author     Sascha Leib <ad@hominem.info>
10f125bc8dSSascha Leib*/
11f125bc8dSSascha Leib
12f125bc8dSSascha Leib/**
13f125bc8dSSascha Leib * All DokuWiki plugins to extend the admin function
14f125bc8dSSascha Leib * need to inherit from this class
15f125bc8dSSascha Leib**/
16f125bc8dSSascha Leibclass admin_plugin_monitor extends AdminPlugin {
17f125bc8dSSascha Leib
18f125bc8dSSascha Leib	/**
19f125bc8dSSascha Leib	 * Return the path to the icon being displayed in the main admin menu.
20f125bc8dSSascha Leib	 *
21f125bc8dSSascha Leib	 * @return string full path to the icon file
22f125bc8dSSascha Leib	**/
23f125bc8dSSascha Leib	public function getMenuIcon() {
24f125bc8dSSascha Leib		$plugin = $this->getPluginName();
25f125bc8dSSascha Leib		return DOKU_PLUGIN . $plugin . '/img/admin.svg';
26f125bc8dSSascha Leib	}
27f125bc8dSSascha Leib
28f125bc8dSSascha Leib	/**
29f125bc8dSSascha Leib	 * output appropriate html
30f125bc8dSSascha Leib	*/
31f125bc8dSSascha Leib	public function html() {
32f125bc8dSSascha Leib
33f125bc8dSSascha Leib		$svg = '<svg width="60" height="60" id="monitor__today__busy" viewBox="0 0 38 38"><g transform="translate(19 19)"><g transform="rotate(0)"><circle cx="0" cy="12" r="3" opacity="0.125"><animate attributeName="opacity" from="0.125" to="0.125" dur="1.2s" begin="0s" repeatCount="indefinite" keyTimes="0;1" values="1;0.125"></animate></circle></g><g transform="rotate(45)"><circle cx="0" cy="12" r="3" opacity="0.25"><animate attributeName="opacity" from="0.25" to="0.25" dur="1.2s" begin="0.15s" repeatCount="indefinite" keyTimes="0;1" values="1;0.25"></animate></circle></g><g transform="rotate(90)"><circle cx="0" cy="12" r="3" opacity="0.375"><animate attributeName="opacity" from="0.375" to="0.375" dur="1.2s" begin="0.3s" repeatCount="indefinite" keyTimes="0;1" values="1;0.375"></animate></circle></g><g transform="rotate(135)"><circle cx="0" cy="12" r="3" opacity="0.5"><animate attributeName="opacity" from="0.5" to="0.5" dur="1.2s" begin="0.45s" repeatCount="indefinite" keyTimes="0;1" values="1;0.5"></animate></circle></g><g transform="rotate(180)"><circle cx="0" cy="12" r="3" opacity="0.625"><animate attributeName="opacity" from="0.625" to="0.625" dur="1.2s" begin="0.6s" repeatCount="indefinite" keyTimes="0;1" values="1;0.625"></animate></circle></g><g transform="rotate(225)"><circle cx="0" cy="12" r="3" opacity="0.75"><animate attributeName="opacity" from="0.75" to="0.75" dur="1.2s" begin="0.75s" repeatCount="indefinite" keyTimes="0;1" values="1;0.75"></animate></circle></g><g transform="rotate(270)"><circle cx="0" cy="12" r="3" opacity="0.875"><animate attributeName="opacity" from="0.875" to="0.875" dur="1.2s" begin="0.9s" repeatCount="indefinite" keyTimes="0;1" values="1;0.875"></animate></circle></g><g transform="rotate(315)"><circle cx="0" cy="12" r="3" opacity="1"><animate attributeName="opacity" from="1" to="1" dur="1.2s" begin="1.05s" repeatCount="indefinite" keyTimes="0;1" values="1;1"></animate></circle></g></g></svg>';
34f125bc8dSSascha Leib
35f125bc8dSSascha Leib		/* Plugin Headline */
36f125bc8dSSascha Leib		echo '<div id="monitor__admin">';
37f125bc8dSSascha Leib		echo '<h1>Monitor Plugin</h1>';
38f125bc8dSSascha Leib
39f125bc8dSSascha Leib		/* tab navigation */
40f125bc8dSSascha Leib		echo '<nav id="monitor__tabs">';
41f125bc8dSSascha Leib		echo '<ul class="tabs" role="tablist">';
42f125bc8dSSascha Leib		echo '<li role="presentation" class="active">';
43f125bc8dSSascha Leib		echo '<a role="tab" href="#monitor__panel1" aria-controls="monitor__panel1" id="monitor__tab1" aria-selected="true">Today</a></li>';
44f125bc8dSSascha Leib		echo '</ul></nav>';
45f125bc8dSSascha Leib
46f125bc8dSSascha Leib		/* Live tab */
47f125bc8dSSascha Leib		echo '<section role="tabpanel" id="monitor__today"">';
48f125bc8dSSascha Leib		echo '<h2 class="a11y">Today</h2>';
49f125bc8dSSascha Leib		echo '<header><h3 id="monitor__today__title">Loading&nbsp;&hellip;</h3></header>';
50*9f1ee8c1SSascha Leib		echo '<div id="monitor__today__content">';
51*9f1ee8c1SSascha Leib		echo '<details id="monitor__today__visitors"><summary>Visitor log</summary>';
52*9f1ee8c1SSascha Leib		echo '<ul id="monitor__today__visitorlist"></ul>';
53*9f1ee8c1SSascha Leib		echo '</details></div>';
54*9f1ee8c1SSascha Leib		echo '<footer aria-live="polite">' . $svg . '<span id="monitor__today__status">Initialising&nbsp;&hellip;</span></footer>';
55f125bc8dSSascha Leib		echo '</section>';
56f125bc8dSSascha Leib		echo '</div><!-- End of Monitor Admin Tool -->';
57f125bc8dSSascha Leib
58f125bc8dSSascha Leib	}
59f125bc8dSSascha Leib}