fixing line endings
This commit is contained in:
parent
b9a6bb4f41
commit
e3dc55220c
484
docs/make.bat
484
docs/make.bat
|
@ -1,242 +1,242 @@
|
||||||
@ECHO OFF
|
@ECHO OFF
|
||||||
|
|
||||||
REM Command file for Sphinx documentation
|
REM Command file for Sphinx documentation
|
||||||
|
|
||||||
if "%SPHINXBUILD%" == "" (
|
if "%SPHINXBUILD%" == "" (
|
||||||
set SPHINXBUILD=sphinx-build
|
set SPHINXBUILD=sphinx-build
|
||||||
)
|
)
|
||||||
set BUILDDIR=_build
|
set BUILDDIR=_build
|
||||||
set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% .
|
set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% .
|
||||||
set I18NSPHINXOPTS=%SPHINXOPTS% .
|
set I18NSPHINXOPTS=%SPHINXOPTS% .
|
||||||
if NOT "%PAPER%" == "" (
|
if NOT "%PAPER%" == "" (
|
||||||
set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS%
|
set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS%
|
||||||
set I18NSPHINXOPTS=-D latex_paper_size=%PAPER% %I18NSPHINXOPTS%
|
set I18NSPHINXOPTS=-D latex_paper_size=%PAPER% %I18NSPHINXOPTS%
|
||||||
)
|
)
|
||||||
|
|
||||||
if "%1" == "" goto help
|
if "%1" == "" goto help
|
||||||
|
|
||||||
if "%1" == "help" (
|
if "%1" == "help" (
|
||||||
:help
|
:help
|
||||||
echo.Please use `make ^<target^>` where ^<target^> is one of
|
echo.Please use `make ^<target^>` where ^<target^> is one of
|
||||||
echo. html to make standalone HTML files
|
echo. html to make standalone HTML files
|
||||||
echo. dirhtml to make HTML files named index.html in directories
|
echo. dirhtml to make HTML files named index.html in directories
|
||||||
echo. singlehtml to make a single large HTML file
|
echo. singlehtml to make a single large HTML file
|
||||||
echo. pickle to make pickle files
|
echo. pickle to make pickle files
|
||||||
echo. json to make JSON files
|
echo. json to make JSON files
|
||||||
echo. htmlhelp to make HTML files and a HTML help project
|
echo. htmlhelp to make HTML files and a HTML help project
|
||||||
echo. qthelp to make HTML files and a qthelp project
|
echo. qthelp to make HTML files and a qthelp project
|
||||||
echo. devhelp to make HTML files and a Devhelp project
|
echo. devhelp to make HTML files and a Devhelp project
|
||||||
echo. epub to make an epub
|
echo. epub to make an epub
|
||||||
echo. latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter
|
echo. latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter
|
||||||
echo. text to make text files
|
echo. text to make text files
|
||||||
echo. man to make manual pages
|
echo. man to make manual pages
|
||||||
echo. texinfo to make Texinfo files
|
echo. texinfo to make Texinfo files
|
||||||
echo. gettext to make PO message catalogs
|
echo. gettext to make PO message catalogs
|
||||||
echo. changes to make an overview over all changed/added/deprecated items
|
echo. changes to make an overview over all changed/added/deprecated items
|
||||||
echo. xml to make Docutils-native XML files
|
echo. xml to make Docutils-native XML files
|
||||||
echo. pseudoxml to make pseudoxml-XML files for display purposes
|
echo. pseudoxml to make pseudoxml-XML files for display purposes
|
||||||
echo. linkcheck to check all external links for integrity
|
echo. linkcheck to check all external links for integrity
|
||||||
echo. doctest to run all doctests embedded in the documentation if enabled
|
echo. doctest to run all doctests embedded in the documentation if enabled
|
||||||
goto end
|
goto end
|
||||||
)
|
)
|
||||||
|
|
||||||
if "%1" == "clean" (
|
if "%1" == "clean" (
|
||||||
for /d %%i in (%BUILDDIR%\*) do rmdir /q /s %%i
|
for /d %%i in (%BUILDDIR%\*) do rmdir /q /s %%i
|
||||||
del /q /s %BUILDDIR%\*
|
del /q /s %BUILDDIR%\*
|
||||||
goto end
|
goto end
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
%SPHINXBUILD% 2> nul
|
%SPHINXBUILD% 2> nul
|
||||||
if errorlevel 9009 (
|
if errorlevel 9009 (
|
||||||
echo.
|
echo.
|
||||||
echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
|
echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
|
||||||
echo.installed, then set the SPHINXBUILD environment variable to point
|
echo.installed, then set the SPHINXBUILD environment variable to point
|
||||||
echo.to the full path of the 'sphinx-build' executable. Alternatively you
|
echo.to the full path of the 'sphinx-build' executable. Alternatively you
|
||||||
echo.may add the Sphinx directory to PATH.
|
echo.may add the Sphinx directory to PATH.
|
||||||
echo.
|
echo.
|
||||||
echo.If you don't have Sphinx installed, grab it from
|
echo.If you don't have Sphinx installed, grab it from
|
||||||
echo.http://sphinx-doc.org/
|
echo.http://sphinx-doc.org/
|
||||||
exit /b 1
|
exit /b 1
|
||||||
)
|
)
|
||||||
|
|
||||||
if "%1" == "html" (
|
if "%1" == "html" (
|
||||||
%SPHINXBUILD% -b html %ALLSPHINXOPTS% %BUILDDIR%/html
|
%SPHINXBUILD% -b html %ALLSPHINXOPTS% %BUILDDIR%/html
|
||||||
if errorlevel 1 exit /b 1
|
if errorlevel 1 exit /b 1
|
||||||
echo.
|
echo.
|
||||||
echo.Build finished. The HTML pages are in %BUILDDIR%/html.
|
echo.Build finished. The HTML pages are in %BUILDDIR%/html.
|
||||||
goto end
|
goto end
|
||||||
)
|
)
|
||||||
|
|
||||||
if "%1" == "dirhtml" (
|
if "%1" == "dirhtml" (
|
||||||
%SPHINXBUILD% -b dirhtml %ALLSPHINXOPTS% %BUILDDIR%/dirhtml
|
%SPHINXBUILD% -b dirhtml %ALLSPHINXOPTS% %BUILDDIR%/dirhtml
|
||||||
if errorlevel 1 exit /b 1
|
if errorlevel 1 exit /b 1
|
||||||
echo.
|
echo.
|
||||||
echo.Build finished. The HTML pages are in %BUILDDIR%/dirhtml.
|
echo.Build finished. The HTML pages are in %BUILDDIR%/dirhtml.
|
||||||
goto end
|
goto end
|
||||||
)
|
)
|
||||||
|
|
||||||
if "%1" == "singlehtml" (
|
if "%1" == "singlehtml" (
|
||||||
%SPHINXBUILD% -b singlehtml %ALLSPHINXOPTS% %BUILDDIR%/singlehtml
|
%SPHINXBUILD% -b singlehtml %ALLSPHINXOPTS% %BUILDDIR%/singlehtml
|
||||||
if errorlevel 1 exit /b 1
|
if errorlevel 1 exit /b 1
|
||||||
echo.
|
echo.
|
||||||
echo.Build finished. The HTML pages are in %BUILDDIR%/singlehtml.
|
echo.Build finished. The HTML pages are in %BUILDDIR%/singlehtml.
|
||||||
goto end
|
goto end
|
||||||
)
|
)
|
||||||
|
|
||||||
if "%1" == "pickle" (
|
if "%1" == "pickle" (
|
||||||
%SPHINXBUILD% -b pickle %ALLSPHINXOPTS% %BUILDDIR%/pickle
|
%SPHINXBUILD% -b pickle %ALLSPHINXOPTS% %BUILDDIR%/pickle
|
||||||
if errorlevel 1 exit /b 1
|
if errorlevel 1 exit /b 1
|
||||||
echo.
|
echo.
|
||||||
echo.Build finished; now you can process the pickle files.
|
echo.Build finished; now you can process the pickle files.
|
||||||
goto end
|
goto end
|
||||||
)
|
)
|
||||||
|
|
||||||
if "%1" == "json" (
|
if "%1" == "json" (
|
||||||
%SPHINXBUILD% -b json %ALLSPHINXOPTS% %BUILDDIR%/json
|
%SPHINXBUILD% -b json %ALLSPHINXOPTS% %BUILDDIR%/json
|
||||||
if errorlevel 1 exit /b 1
|
if errorlevel 1 exit /b 1
|
||||||
echo.
|
echo.
|
||||||
echo.Build finished; now you can process the JSON files.
|
echo.Build finished; now you can process the JSON files.
|
||||||
goto end
|
goto end
|
||||||
)
|
)
|
||||||
|
|
||||||
if "%1" == "htmlhelp" (
|
if "%1" == "htmlhelp" (
|
||||||
%SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% %BUILDDIR%/htmlhelp
|
%SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% %BUILDDIR%/htmlhelp
|
||||||
if errorlevel 1 exit /b 1
|
if errorlevel 1 exit /b 1
|
||||||
echo.
|
echo.
|
||||||
echo.Build finished; now you can run HTML Help Workshop with the ^
|
echo.Build finished; now you can run HTML Help Workshop with the ^
|
||||||
.hhp project file in %BUILDDIR%/htmlhelp.
|
.hhp project file in %BUILDDIR%/htmlhelp.
|
||||||
goto end
|
goto end
|
||||||
)
|
)
|
||||||
|
|
||||||
if "%1" == "qthelp" (
|
if "%1" == "qthelp" (
|
||||||
%SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% %BUILDDIR%/qthelp
|
%SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% %BUILDDIR%/qthelp
|
||||||
if errorlevel 1 exit /b 1
|
if errorlevel 1 exit /b 1
|
||||||
echo.
|
echo.
|
||||||
echo.Build finished; now you can run "qcollectiongenerator" with the ^
|
echo.Build finished; now you can run "qcollectiongenerator" with the ^
|
||||||
.qhcp project file in %BUILDDIR%/qthelp, like this:
|
.qhcp project file in %BUILDDIR%/qthelp, like this:
|
||||||
echo.^> qcollectiongenerator %BUILDDIR%\qthelp\phpservermon.qhcp
|
echo.^> qcollectiongenerator %BUILDDIR%\qthelp\phpservermon.qhcp
|
||||||
echo.To view the help file:
|
echo.To view the help file:
|
||||||
echo.^> assistant -collectionFile %BUILDDIR%\qthelp\phpservermon.ghc
|
echo.^> assistant -collectionFile %BUILDDIR%\qthelp\phpservermon.ghc
|
||||||
goto end
|
goto end
|
||||||
)
|
)
|
||||||
|
|
||||||
if "%1" == "devhelp" (
|
if "%1" == "devhelp" (
|
||||||
%SPHINXBUILD% -b devhelp %ALLSPHINXOPTS% %BUILDDIR%/devhelp
|
%SPHINXBUILD% -b devhelp %ALLSPHINXOPTS% %BUILDDIR%/devhelp
|
||||||
if errorlevel 1 exit /b 1
|
if errorlevel 1 exit /b 1
|
||||||
echo.
|
echo.
|
||||||
echo.Build finished.
|
echo.Build finished.
|
||||||
goto end
|
goto end
|
||||||
)
|
)
|
||||||
|
|
||||||
if "%1" == "epub" (
|
if "%1" == "epub" (
|
||||||
%SPHINXBUILD% -b epub %ALLSPHINXOPTS% %BUILDDIR%/epub
|
%SPHINXBUILD% -b epub %ALLSPHINXOPTS% %BUILDDIR%/epub
|
||||||
if errorlevel 1 exit /b 1
|
if errorlevel 1 exit /b 1
|
||||||
echo.
|
echo.
|
||||||
echo.Build finished. The epub file is in %BUILDDIR%/epub.
|
echo.Build finished. The epub file is in %BUILDDIR%/epub.
|
||||||
goto end
|
goto end
|
||||||
)
|
)
|
||||||
|
|
||||||
if "%1" == "latex" (
|
if "%1" == "latex" (
|
||||||
%SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex
|
%SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex
|
||||||
if errorlevel 1 exit /b 1
|
if errorlevel 1 exit /b 1
|
||||||
echo.
|
echo.
|
||||||
echo.Build finished; the LaTeX files are in %BUILDDIR%/latex.
|
echo.Build finished; the LaTeX files are in %BUILDDIR%/latex.
|
||||||
goto end
|
goto end
|
||||||
)
|
)
|
||||||
|
|
||||||
if "%1" == "latexpdf" (
|
if "%1" == "latexpdf" (
|
||||||
%SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex
|
%SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex
|
||||||
cd %BUILDDIR%/latex
|
cd %BUILDDIR%/latex
|
||||||
make all-pdf
|
make all-pdf
|
||||||
cd %BUILDDIR%/..
|
cd %BUILDDIR%/..
|
||||||
echo.
|
echo.
|
||||||
echo.Build finished; the PDF files are in %BUILDDIR%/latex.
|
echo.Build finished; the PDF files are in %BUILDDIR%/latex.
|
||||||
goto end
|
goto end
|
||||||
)
|
)
|
||||||
|
|
||||||
if "%1" == "latexpdfja" (
|
if "%1" == "latexpdfja" (
|
||||||
%SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex
|
%SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex
|
||||||
cd %BUILDDIR%/latex
|
cd %BUILDDIR%/latex
|
||||||
make all-pdf-ja
|
make all-pdf-ja
|
||||||
cd %BUILDDIR%/..
|
cd %BUILDDIR%/..
|
||||||
echo.
|
echo.
|
||||||
echo.Build finished; the PDF files are in %BUILDDIR%/latex.
|
echo.Build finished; the PDF files are in %BUILDDIR%/latex.
|
||||||
goto end
|
goto end
|
||||||
)
|
)
|
||||||
|
|
||||||
if "%1" == "text" (
|
if "%1" == "text" (
|
||||||
%SPHINXBUILD% -b text %ALLSPHINXOPTS% %BUILDDIR%/text
|
%SPHINXBUILD% -b text %ALLSPHINXOPTS% %BUILDDIR%/text
|
||||||
if errorlevel 1 exit /b 1
|
if errorlevel 1 exit /b 1
|
||||||
echo.
|
echo.
|
||||||
echo.Build finished. The text files are in %BUILDDIR%/text.
|
echo.Build finished. The text files are in %BUILDDIR%/text.
|
||||||
goto end
|
goto end
|
||||||
)
|
)
|
||||||
|
|
||||||
if "%1" == "man" (
|
if "%1" == "man" (
|
||||||
%SPHINXBUILD% -b man %ALLSPHINXOPTS% %BUILDDIR%/man
|
%SPHINXBUILD% -b man %ALLSPHINXOPTS% %BUILDDIR%/man
|
||||||
if errorlevel 1 exit /b 1
|
if errorlevel 1 exit /b 1
|
||||||
echo.
|
echo.
|
||||||
echo.Build finished. The manual pages are in %BUILDDIR%/man.
|
echo.Build finished. The manual pages are in %BUILDDIR%/man.
|
||||||
goto end
|
goto end
|
||||||
)
|
)
|
||||||
|
|
||||||
if "%1" == "texinfo" (
|
if "%1" == "texinfo" (
|
||||||
%SPHINXBUILD% -b texinfo %ALLSPHINXOPTS% %BUILDDIR%/texinfo
|
%SPHINXBUILD% -b texinfo %ALLSPHINXOPTS% %BUILDDIR%/texinfo
|
||||||
if errorlevel 1 exit /b 1
|
if errorlevel 1 exit /b 1
|
||||||
echo.
|
echo.
|
||||||
echo.Build finished. The Texinfo files are in %BUILDDIR%/texinfo.
|
echo.Build finished. The Texinfo files are in %BUILDDIR%/texinfo.
|
||||||
goto end
|
goto end
|
||||||
)
|
)
|
||||||
|
|
||||||
if "%1" == "gettext" (
|
if "%1" == "gettext" (
|
||||||
%SPHINXBUILD% -b gettext %I18NSPHINXOPTS% %BUILDDIR%/locale
|
%SPHINXBUILD% -b gettext %I18NSPHINXOPTS% %BUILDDIR%/locale
|
||||||
if errorlevel 1 exit /b 1
|
if errorlevel 1 exit /b 1
|
||||||
echo.
|
echo.
|
||||||
echo.Build finished. The message catalogs are in %BUILDDIR%/locale.
|
echo.Build finished. The message catalogs are in %BUILDDIR%/locale.
|
||||||
goto end
|
goto end
|
||||||
)
|
)
|
||||||
|
|
||||||
if "%1" == "changes" (
|
if "%1" == "changes" (
|
||||||
%SPHINXBUILD% -b changes %ALLSPHINXOPTS% %BUILDDIR%/changes
|
%SPHINXBUILD% -b changes %ALLSPHINXOPTS% %BUILDDIR%/changes
|
||||||
if errorlevel 1 exit /b 1
|
if errorlevel 1 exit /b 1
|
||||||
echo.
|
echo.
|
||||||
echo.The overview file is in %BUILDDIR%/changes.
|
echo.The overview file is in %BUILDDIR%/changes.
|
||||||
goto end
|
goto end
|
||||||
)
|
)
|
||||||
|
|
||||||
if "%1" == "linkcheck" (
|
if "%1" == "linkcheck" (
|
||||||
%SPHINXBUILD% -b linkcheck %ALLSPHINXOPTS% %BUILDDIR%/linkcheck
|
%SPHINXBUILD% -b linkcheck %ALLSPHINXOPTS% %BUILDDIR%/linkcheck
|
||||||
if errorlevel 1 exit /b 1
|
if errorlevel 1 exit /b 1
|
||||||
echo.
|
echo.
|
||||||
echo.Link check complete; look for any errors in the above output ^
|
echo.Link check complete; look for any errors in the above output ^
|
||||||
or in %BUILDDIR%/linkcheck/output.txt.
|
or in %BUILDDIR%/linkcheck/output.txt.
|
||||||
goto end
|
goto end
|
||||||
)
|
)
|
||||||
|
|
||||||
if "%1" == "doctest" (
|
if "%1" == "doctest" (
|
||||||
%SPHINXBUILD% -b doctest %ALLSPHINXOPTS% %BUILDDIR%/doctest
|
%SPHINXBUILD% -b doctest %ALLSPHINXOPTS% %BUILDDIR%/doctest
|
||||||
if errorlevel 1 exit /b 1
|
if errorlevel 1 exit /b 1
|
||||||
echo.
|
echo.
|
||||||
echo.Testing of doctests in the sources finished, look at the ^
|
echo.Testing of doctests in the sources finished, look at the ^
|
||||||
results in %BUILDDIR%/doctest/output.txt.
|
results in %BUILDDIR%/doctest/output.txt.
|
||||||
goto end
|
goto end
|
||||||
)
|
)
|
||||||
|
|
||||||
if "%1" == "xml" (
|
if "%1" == "xml" (
|
||||||
%SPHINXBUILD% -b xml %ALLSPHINXOPTS% %BUILDDIR%/xml
|
%SPHINXBUILD% -b xml %ALLSPHINXOPTS% %BUILDDIR%/xml
|
||||||
if errorlevel 1 exit /b 1
|
if errorlevel 1 exit /b 1
|
||||||
echo.
|
echo.
|
||||||
echo.Build finished. The XML files are in %BUILDDIR%/xml.
|
echo.Build finished. The XML files are in %BUILDDIR%/xml.
|
||||||
goto end
|
goto end
|
||||||
)
|
)
|
||||||
|
|
||||||
if "%1" == "pseudoxml" (
|
if "%1" == "pseudoxml" (
|
||||||
%SPHINXBUILD% -b pseudoxml %ALLSPHINXOPTS% %BUILDDIR%/pseudoxml
|
%SPHINXBUILD% -b pseudoxml %ALLSPHINXOPTS% %BUILDDIR%/pseudoxml
|
||||||
if errorlevel 1 exit /b 1
|
if errorlevel 1 exit /b 1
|
||||||
echo.
|
echo.
|
||||||
echo.Build finished. The pseudo-XML files are in %BUILDDIR%/pseudoxml.
|
echo.Build finished. The pseudo-XML files are in %BUILDDIR%/pseudoxml.
|
||||||
goto end
|
goto end
|
||||||
)
|
)
|
||||||
|
|
||||||
:end
|
:end
|
||||||
|
|
|
@ -1,56 +1,56 @@
|
||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* PHP Server Monitor
|
* PHP Server Monitor
|
||||||
* Monitor your servers and websites.
|
* Monitor your servers and websites.
|
||||||
*
|
*
|
||||||
* This file is part of PHP Server Monitor.
|
* This file is part of PHP Server Monitor.
|
||||||
* PHP Server Monitor is free software: you can redistribute it and/or modify
|
* PHP Server Monitor is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* PHP Server Monitor is distributed in the hope that it will be useful,
|
* PHP Server Monitor is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with PHP Server Monitor. If not, see <http://www.gnu.org/licenses/>.
|
* along with PHP Server Monitor. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*
|
*
|
||||||
* @package phpservermon
|
* @package phpservermon
|
||||||
* @author Pepijn Over <pep@neanderthal-technology.com>
|
* @author Pepijn Over <pep@neanderthal-technology.com>
|
||||||
* @copyright Copyright (c) 2008-2014 Pepijn Over <pep@neanderthal-technology.com>
|
* @copyright Copyright (c) 2008-2014 Pepijn Over <pep@neanderthal-technology.com>
|
||||||
* @license http://www.gnu.org/licenses/gpl.txt GNU GPL v3
|
* @license http://www.gnu.org/licenses/gpl.txt GNU GPL v3
|
||||||
* @version Release: @package_version@
|
* @version Release: @package_version@
|
||||||
* @link http://www.phpservermonitor.org/
|
* @link http://www.phpservermonitor.org/
|
||||||
* @since phpservermon 3.1
|
* @since phpservermon 3.1
|
||||||
**/
|
**/
|
||||||
|
|
||||||
namespace psm\Module\Error\Controller;
|
namespace psm\Module\Error\Controller;
|
||||||
use psm\Module\AbstractController;
|
use psm\Module\AbstractController;
|
||||||
use psm\Service\Database;
|
use psm\Service\Database;
|
||||||
|
|
||||||
class ErrorController extends AbstractController {
|
class ErrorController extends AbstractController {
|
||||||
|
|
||||||
function __construct(Database $db, \Twig_Environment $twig) {
|
function __construct(Database $db, \Twig_Environment $twig) {
|
||||||
parent::__construct($db, $twig);
|
parent::__construct($db, $twig);
|
||||||
|
|
||||||
$this->setMinUserLevelRequired(PSM_USER_ANONYMOUS);
|
$this->setMinUserLevelRequired(PSM_USER_ANONYMOUS);
|
||||||
|
|
||||||
$this->setActions(array(
|
$this->setActions(array(
|
||||||
'401',
|
'401',
|
||||||
), '401');
|
), '401');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 401 error page
|
* 401 error page
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
protected function execute401() {
|
protected function execute401() {
|
||||||
return $this->twig->render('module/error/401.tpl.html', array(
|
return $this->twig->render('module/error/401.tpl.html', array(
|
||||||
'label_title' => psm_get_lang('error', '401_unauthorized'),
|
'label_title' => psm_get_lang('error', '401_unauthorized'),
|
||||||
'label_description' => psm_get_lang('error', '401_unauthorized_description'),
|
'label_description' => psm_get_lang('error', '401_unauthorized_description'),
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,39 +1,39 @@
|
||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* PHP Server Monitor
|
* PHP Server Monitor
|
||||||
* Monitor your servers and websites.
|
* Monitor your servers and websites.
|
||||||
*
|
*
|
||||||
* This file is part of PHP Server Monitor.
|
* This file is part of PHP Server Monitor.
|
||||||
* PHP Server Monitor is free software: you can redistribute it and/or modify
|
* PHP Server Monitor is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* PHP Server Monitor is distributed in the hope that it will be useful,
|
* PHP Server Monitor is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with PHP Server Monitor. If not, see <http://www.gnu.org/licenses/>.
|
* along with PHP Server Monitor. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*
|
*
|
||||||
* @package phpservermon
|
* @package phpservermon
|
||||||
* @author Pepijn Over <pep@neanderthal-technology.com>
|
* @author Pepijn Over <pep@neanderthal-technology.com>
|
||||||
* @copyright Copyright (c) 2008-2014 Pepijn Over <pep@neanderthal-technology.com>
|
* @copyright Copyright (c) 2008-2014 Pepijn Over <pep@neanderthal-technology.com>
|
||||||
* @license http://www.gnu.org/licenses/gpl.txt GNU GPL v3
|
* @license http://www.gnu.org/licenses/gpl.txt GNU GPL v3
|
||||||
* @version Release: @package_version@
|
* @version Release: @package_version@
|
||||||
* @link http://www.phpservermonitor.org/
|
* @link http://www.phpservermonitor.org/
|
||||||
* @since phpservermon 3.1
|
* @since phpservermon 3.1
|
||||||
**/
|
**/
|
||||||
|
|
||||||
namespace psm\Module\Error;
|
namespace psm\Module\Error;
|
||||||
use psm\Module\ModuleInterface;
|
use psm\Module\ModuleInterface;
|
||||||
|
|
||||||
class ErrorModule implements ModuleInterface {
|
class ErrorModule implements ModuleInterface {
|
||||||
public function getControllers() {
|
public function getControllers() {
|
||||||
return array(
|
return array(
|
||||||
'error' => __NAMESPACE__ . '\Controller\ErrorController',
|
'error' => __NAMESPACE__ . '\Controller\ErrorController',
|
||||||
);
|
);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,119 +1,119 @@
|
||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* PHP Server Monitor
|
* PHP Server Monitor
|
||||||
* Monitor your servers and websites.
|
* Monitor your servers and websites.
|
||||||
*
|
*
|
||||||
* This file is part of PHP Server Monitor.
|
* This file is part of PHP Server Monitor.
|
||||||
* PHP Server Monitor is free software: you can redistribute it and/or modify
|
* PHP Server Monitor is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* PHP Server Monitor is distributed in the hope that it will be useful,
|
* PHP Server Monitor is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with PHP Server Monitor. If not, see <http://www.gnu.org/licenses/>.
|
* along with PHP Server Monitor. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*
|
*
|
||||||
* @package phpservermon
|
* @package phpservermon
|
||||||
* @author Pepijn Over <pep@neanderthal-technology.com>
|
* @author Pepijn Over <pep@neanderthal-technology.com>
|
||||||
* @copyright Copyright (c) 2008-2014 Pepijn Over <pep@neanderthal-technology.com>
|
* @copyright Copyright (c) 2008-2014 Pepijn Over <pep@neanderthal-technology.com>
|
||||||
* @license http://www.gnu.org/licenses/gpl.txt GNU GPL v3
|
* @license http://www.gnu.org/licenses/gpl.txt GNU GPL v3
|
||||||
* @version Release: @package_version@
|
* @version Release: @package_version@
|
||||||
* @link http://www.phpservermonitor.org/
|
* @link http://www.phpservermonitor.org/
|
||||||
* @since phpservermon 3.1
|
* @since phpservermon 3.1
|
||||||
**/
|
**/
|
||||||
|
|
||||||
namespace psm\Util\Server;
|
namespace psm\Util\Server;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Makes sure all data of servers is being archived properly or removed if necessary.
|
* Makes sure all data of servers is being archived properly or removed if necessary.
|
||||||
*/
|
*/
|
||||||
class ArchiveManager {
|
class ArchiveManager {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Available archiver utils.
|
* Available archiver utils.
|
||||||
* @var array $archivers
|
* @var array $archivers
|
||||||
*/
|
*/
|
||||||
protected $archivers = array();
|
protected $archivers = array();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Database service
|
* Database service
|
||||||
* @var \psm\Service\Database $db
|
* @var \psm\Service\Database $db
|
||||||
*/
|
*/
|
||||||
protected $db;
|
protected $db;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retention period
|
* Retention period
|
||||||
* @var \DateInterval $retention_period
|
* @var \DateInterval $retention_period
|
||||||
* @see setRetentionPeriod()
|
* @see setRetentionPeriod()
|
||||||
*/
|
*/
|
||||||
protected $retention_period;
|
protected $retention_period;
|
||||||
|
|
||||||
public function __construct(\psm\Service\Database $db) {
|
public function __construct(\psm\Service\Database $db) {
|
||||||
$this->db = $db;
|
$this->db = $db;
|
||||||
|
|
||||||
$this->setRetentionPeriod(psm_get_conf('log_retention_period', 365));
|
$this->setRetentionPeriod(psm_get_conf('log_retention_period', 365));
|
||||||
|
|
||||||
$this->archivers[] = new Archiver\UptimeArchiver($db);
|
$this->archivers[] = new Archiver\UptimeArchiver($db);
|
||||||
$this->archivers[] = new Archiver\LogsArchiver($db);
|
$this->archivers[] = new Archiver\LogsArchiver($db);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Archive one or more servers.
|
* Archive one or more servers.
|
||||||
* @param int $server_id
|
* @param int $server_id
|
||||||
* @return boolean
|
* @return boolean
|
||||||
*/
|
*/
|
||||||
public function archive($server_id = null) {
|
public function archive($server_id = null) {
|
||||||
$result = true;
|
$result = true;
|
||||||
foreach($this->archivers as $archiver) {
|
foreach($this->archivers as $archiver) {
|
||||||
if(!$archiver->archive($server_id)) {
|
if(!$archiver->archive($server_id)) {
|
||||||
$result = false;
|
$result = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Cleanup old records for one or more servers
|
* Cleanup old records for one or more servers
|
||||||
* @param int $server_id
|
* @param int $server_id
|
||||||
* @return boolean
|
* @return boolean
|
||||||
*/
|
*/
|
||||||
public function cleanup($server_id = null) {
|
public function cleanup($server_id = null) {
|
||||||
$result = true;
|
$result = true;
|
||||||
if(!$this->retention_period) {
|
if(!$this->retention_period) {
|
||||||
// cleanup is disabled
|
// cleanup is disabled
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
$retdate = new \DateTime();
|
$retdate = new \DateTime();
|
||||||
$retdate->sub($this->retention_period);
|
$retdate->sub($this->retention_period);
|
||||||
|
|
||||||
foreach($this->archivers as $archiver) {
|
foreach($this->archivers as $archiver) {
|
||||||
if(!$archiver->cleanup($retdate, $server_id)) {
|
if(!$archiver->cleanup($retdate, $server_id)) {
|
||||||
$result = false;
|
$result = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set retention period for this archive run.
|
* Set retention period for this archive run.
|
||||||
*
|
*
|
||||||
* Set period to 0 to disable cleanup altogether.
|
* Set period to 0 to disable cleanup altogether.
|
||||||
* @param \DateInterval|int $period \DateInterval object or number of days (int)
|
* @param \DateInterval|int $period \DateInterval object or number of days (int)
|
||||||
* @return \psm\Util\Server\ArchiveManager
|
* @return \psm\Util\Server\ArchiveManager
|
||||||
*/
|
*/
|
||||||
public function setRetentionPeriod($period) {
|
public function setRetentionPeriod($period) {
|
||||||
if(is_object($period) && $period instanceof \DateInterval) {
|
if(is_object($period) && $period instanceof \DateInterval) {
|
||||||
$this->retention_period = $period;
|
$this->retention_period = $period;
|
||||||
} elseif(intval($period) == 0) {
|
} elseif(intval($period) == 0) {
|
||||||
// cleanup disabled
|
// cleanup disabled
|
||||||
$this->retention_period = false;
|
$this->retention_period = false;
|
||||||
} else {
|
} else {
|
||||||
$this->retention_period = new \DateInterval('P' . intval($period) . 'D');
|
$this->retention_period = new \DateInterval('P' . intval($period) . 'D');
|
||||||
}
|
}
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1,47 +1,47 @@
|
||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* PHP Server Monitor
|
* PHP Server Monitor
|
||||||
* Monitor your servers and websites.
|
* Monitor your servers and websites.
|
||||||
*
|
*
|
||||||
* This file is part of PHP Server Monitor.
|
* This file is part of PHP Server Monitor.
|
||||||
* PHP Server Monitor is free software: you can redistribute it and/or modify
|
* PHP Server Monitor is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* PHP Server Monitor is distributed in the hope that it will be useful,
|
* PHP Server Monitor is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with PHP Server Monitor. If not, see <http://www.gnu.org/licenses/>.
|
* along with PHP Server Monitor. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*
|
*
|
||||||
* @package phpservermon
|
* @package phpservermon
|
||||||
* @author Pepijn Over <pep@neanderthal-technology.com>
|
* @author Pepijn Over <pep@neanderthal-technology.com>
|
||||||
* @copyright Copyright (c) 2008-2014 Pepijn Over <pep@neanderthal-technology.com>
|
* @copyright Copyright (c) 2008-2014 Pepijn Over <pep@neanderthal-technology.com>
|
||||||
* @license http://www.gnu.org/licenses/gpl.txt GNU GPL v3
|
* @license http://www.gnu.org/licenses/gpl.txt GNU GPL v3
|
||||||
* @version Release: @package_version@
|
* @version Release: @package_version@
|
||||||
* @link http://www.phpservermonitor.org/
|
* @link http://www.phpservermonitor.org/
|
||||||
* @since phpservermon 3.1
|
* @since phpservermon 3.1
|
||||||
**/
|
**/
|
||||||
|
|
||||||
namespace psm\Util\Server\Archiver;
|
namespace psm\Util\Server\Archiver;
|
||||||
|
|
||||||
interface ArchiverInterface {
|
interface ArchiverInterface {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Archive for one or all servers.
|
* Archive for one or all servers.
|
||||||
* @param int $server_id
|
* @param int $server_id
|
||||||
* @return boolean
|
* @return boolean
|
||||||
*/
|
*/
|
||||||
public function archive($server_id = null);
|
public function archive($server_id = null);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Cleanup data older than the retention period given.
|
* Cleanup data older than the retention period given.
|
||||||
* @param \DateTime $retention_date
|
* @param \DateTime $retention_date
|
||||||
* @param int $server_id
|
* @param int $server_id
|
||||||
* @return boolean
|
* @return boolean
|
||||||
*/
|
*/
|
||||||
public function cleanup(\DateTime $retention_date, $server_id = null);
|
public function cleanup(\DateTime $retention_date, $server_id = null);
|
||||||
}
|
}
|
|
@ -1,70 +1,70 @@
|
||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* PHP Server Monitor
|
* PHP Server Monitor
|
||||||
* Monitor your servers and websites.
|
* Monitor your servers and websites.
|
||||||
*
|
*
|
||||||
* This file is part of PHP Server Monitor.
|
* This file is part of PHP Server Monitor.
|
||||||
* PHP Server Monitor is free software: you can redistribute it and/or modify
|
* PHP Server Monitor is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* PHP Server Monitor is distributed in the hope that it will be useful,
|
* PHP Server Monitor is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with PHP Server Monitor. If not, see <http://www.gnu.org/licenses/>.
|
* along with PHP Server Monitor. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*
|
*
|
||||||
* @package phpservermon
|
* @package phpservermon
|
||||||
* @author Pepijn Over <pep@neanderthal-technology.com>
|
* @author Pepijn Over <pep@neanderthal-technology.com>
|
||||||
* @copyright Copyright (c) 2008-2014 Pepijn Over <pep@neanderthal-technology.com>
|
* @copyright Copyright (c) 2008-2014 Pepijn Over <pep@neanderthal-technology.com>
|
||||||
* @license http://www.gnu.org/licenses/gpl.txt GNU GPL v3
|
* @license http://www.gnu.org/licenses/gpl.txt GNU GPL v3
|
||||||
* @version Release: @package_version@
|
* @version Release: @package_version@
|
||||||
* @link http://www.phpservermonitor.org/
|
* @link http://www.phpservermonitor.org/
|
||||||
* @since phpservermon 3.1
|
* @since phpservermon 3.1
|
||||||
**/
|
**/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Cleanup log table
|
* Cleanup log table
|
||||||
*/
|
*/
|
||||||
namespace psm\Util\Server\Archiver;
|
namespace psm\Util\Server\Archiver;
|
||||||
use psm\Service\Database;
|
use psm\Service\Database;
|
||||||
|
|
||||||
class LogsArchiver implements ArchiverInterface {
|
class LogsArchiver implements ArchiverInterface {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Database service
|
* Database service
|
||||||
* @var \psm\Service\Database $db
|
* @var \psm\Service\Database $db
|
||||||
*/
|
*/
|
||||||
protected $db;
|
protected $db;
|
||||||
|
|
||||||
function __construct(Database $db) {
|
function __construct(Database $db) {
|
||||||
$this->db = $db;
|
$this->db = $db;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Currently there is not really a log archive.
|
* Currently there is not really a log archive.
|
||||||
*
|
*
|
||||||
* It stays in the log table until cleaned up.
|
* It stays in the log table until cleaned up.
|
||||||
* @param int $server_id
|
* @param int $server_id
|
||||||
*/
|
*/
|
||||||
public function archive($server_id = null) {
|
public function archive($server_id = null) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function cleanup(\DateTime $retention_date, $server_id = null) {
|
public function cleanup(\DateTime $retention_date, $server_id = null) {
|
||||||
$sql_where_server = ($server_id !== null)
|
$sql_where_server = ($server_id !== null)
|
||||||
// this is obviously not the cleanest way to implement this when using paramter binding.. sorry.
|
// this is obviously not the cleanest way to implement this when using paramter binding.. sorry.
|
||||||
? ' `server_id` = ' . intval($server_id) . ' AND '
|
? ' `server_id` = ' . intval($server_id) . ' AND '
|
||||||
: '';
|
: '';
|
||||||
|
|
||||||
$this->db->execute(
|
$this->db->execute(
|
||||||
"DELETE FROM `".PSM_DB_PREFIX."log` WHERE {$sql_where_server} `datetime` < :latest_date",
|
"DELETE FROM `".PSM_DB_PREFIX."log` WHERE {$sql_where_server} `datetime` < :latest_date",
|
||||||
array('latest_date' => $retention_date->format('Y-m-d 00:00:00')),
|
array('latest_date' => $retention_date->format('Y-m-d 00:00:00')),
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1,80 +1,80 @@
|
||||||
{% block header %}
|
{% block header %}
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<title>{{ title }}</title>
|
<title>{{ title }}</title>
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1, minimum-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1, minimum-scale=1">
|
||||||
<meta name="description" content="">
|
<meta name="description" content="">
|
||||||
<meta name="author" content="">
|
<meta name="author" content="">
|
||||||
<link rel="icon" type="image/x-icon" href="favicon.ico" />
|
<link rel="icon" type="image/x-icon" href="favicon.ico" />
|
||||||
<link rel="icon" type="image/png" href="favicon.png" />
|
<link rel="icon" type="image/png" href="favicon.png" />
|
||||||
<link rel="apple-touch-icon" href="favicon.png" />
|
<link rel="apple-touch-icon" href="favicon.png" />
|
||||||
{% if auto_refresh %}
|
{% if auto_refresh %}
|
||||||
<meta http-equiv="refresh" content="{{ auto_refresh_seconds }}" />
|
<meta http-equiv="refresh" content="{{ auto_refresh_seconds }}" />
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<!-- Le styles -->
|
<!-- Le styles -->
|
||||||
<link href="static/plugin/twitter-bootstrap/css/bootstrap.min.css" rel="stylesheet">
|
<link href="static/plugin/twitter-bootstrap/css/bootstrap.min.css" rel="stylesheet">
|
||||||
<link href="static/plugin/twitter-bootstrap/css/bootstrap-responsive.min.css" rel="stylesheet">
|
<link href="static/plugin/twitter-bootstrap/css/bootstrap-responsive.min.css" rel="stylesheet">
|
||||||
<link href="static/plugin/bootstrap-multiselect/bootstrap-multiselect.min.css" rel="stylesheet">
|
<link href="static/plugin/bootstrap-multiselect/bootstrap-multiselect.min.css" rel="stylesheet">
|
||||||
<link href="static/css/style.css" rel="stylesheet">
|
<link href="static/css/style.css" rel="stylesheet">
|
||||||
<!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->
|
<!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->
|
||||||
<!--[if lt IE 9]>
|
<!--[if lt IE 9]>
|
||||||
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
|
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
|
||||||
<![endif]-->
|
<![endif]-->
|
||||||
<script type="text/javascript" src="static/plugin/jquery-1.7.1.min.js"></script>
|
<script type="text/javascript" src="static/plugin/jquery-1.7.1.min.js"></script>
|
||||||
<script type="text/javascript" src="static/plugin/twitter-bootstrap/js/bootstrap.min.js"></script>
|
<script type="text/javascript" src="static/plugin/twitter-bootstrap/js/bootstrap.min.js"></script>
|
||||||
<script type="text/javascript" src="static/plugin/bootstrap-multiselect/bootstrap-multiselect.min.js"></script>
|
<script type="text/javascript" src="static/plugin/bootstrap-multiselect/bootstrap-multiselect.min.js"></script>
|
||||||
<script type="text/javascript" src="static/js/scripts.js"></script>
|
<script type="text/javascript" src="static/js/scripts.js"></script>
|
||||||
</head>
|
</head>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
<body data-spy="scroll" data-target=".subnav" data-offset="50" class="{{ body_class }}">
|
<body data-spy="scroll" data-target=".subnav" data-offset="50" class="{{ body_class }}">
|
||||||
<!-- navbar -->
|
<!-- navbar -->
|
||||||
<div class="navbar navbar-fixed-top">
|
<div class="navbar navbar-fixed-top">
|
||||||
<div class="navbar-inner">
|
<div class="navbar-inner">
|
||||||
<div class="container-fluid">
|
<div class="container-fluid">
|
||||||
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
|
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
|
||||||
<span class="icon-bar"></span>
|
<span class="icon-bar"></span>
|
||||||
<span class="icon-bar"></span>
|
<span class="icon-bar"></span>
|
||||||
<span class="icon-bar"></span>
|
<span class="icon-bar"></span>
|
||||||
</a>
|
</a>
|
||||||
<a class="brand" href="index.php">{{ title }}</a>
|
<a class="brand" href="index.php">{{ title }}</a>
|
||||||
{{ html_menu|raw }}
|
{{ html_menu|raw }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- /navbar -->
|
<!-- /navbar -->
|
||||||
|
|
||||||
{{ html_modal|raw }}
|
{{ html_modal|raw }}
|
||||||
<!-- container -->
|
<!-- container -->
|
||||||
<div id="main-container">
|
<div id="main-container">
|
||||||
<div class="page-header">
|
<div class="page-header">
|
||||||
<div class="header-label"><h1>{{ subtitle }}</h1></div>
|
<div class="header-label"><h1>{{ subtitle }}</h1></div>
|
||||||
<div class="header-accessories">{{ header_accessories|raw }}</div>
|
<div class="header-accessories">{{ header_accessories|raw }}</div>
|
||||||
</div>
|
</div>
|
||||||
<div id="main-content">
|
<div id="main-content">
|
||||||
{{ html_sidebar|raw }}
|
{{ html_sidebar|raw }}
|
||||||
<div id="page-container">
|
<div id="page-container">
|
||||||
<div id="flashmessage" class="hide">
|
<div id="flashmessage" class="hide">
|
||||||
{% for msg in messages %}
|
{% for msg in messages %}
|
||||||
<div class="alert alert-{{ msg.shortcode }}">
|
<div class="alert alert-{{ msg.shortcode }}">
|
||||||
<p class="pull-left span1"><i class="icon-{{ msg.icon }}"></i></p>
|
<p class="pull-left span1"><i class="icon-{{ msg.icon }}"></i></p>
|
||||||
<p>{{ msg.message }}</p>
|
<p>{{ msg.message }}</p>
|
||||||
</div>
|
</div>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</div>
|
</div>
|
||||||
{{ html_content|raw }}
|
{{ html_content|raw }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% if add_footer %}
|
{% if add_footer %}
|
||||||
{% block footer %}
|
{% block footer %}
|
||||||
<footer class="footer">
|
<footer class="footer">
|
||||||
<p class="pull-right"><a href="#">{{ label_back_to_top }}</a></p>
|
<p class="pull-right"><a href="#">{{ label_back_to_top }}</a></p>
|
||||||
<p class="powered"><small>Powered by <a href="http://www.phpservermonitor.org/" target="_blank">PHP Server Monitor {{ version }}</a>.<br/>{{ update_available }}</small></p>
|
<p class="powered"><small>Powered by <a href="http://www.phpservermonitor.org/" target="_blank">PHP Server Monitor {{ version }}</a>.<br/>{{ update_available }}</small></p>
|
||||||
</footer>
|
</footer>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
<!-- /container -->
|
<!-- /container -->
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -1,22 +1,22 @@
|
||||||
<div class="nav-collapse">
|
<div class="nav-collapse">
|
||||||
<ul class="nav">
|
<ul class="nav">
|
||||||
{% for item in menu %}
|
{% for item in menu %}
|
||||||
<li class="{{ item.active }}"><a href="{{ item.url|raw }}">{{ item.label }}</a></li>
|
<li class="{{ item.active }}"><a href="{{ item.url|raw }}">{{ item.label }}</a></li>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
<li id="nav_option_help">
|
<li id="nav_option_help">
|
||||||
<a href="http://www.phpservermonitor.org/support" target="_blank">{{ label_help }}</a>
|
<a href="http://www.phpservermonitor.org/support" target="_blank">{{ label_help }}</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul class="nav pull-right">
|
<ul class="nav pull-right">
|
||||||
<li class="dropdown visible-desktop">
|
<li class="dropdown visible-desktop">
|
||||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">{{ label_usermenu }} <b class="caret"></b></a>
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown">{{ label_usermenu }} <b class="caret"></b></a>
|
||||||
<ul class="dropdown-menu">
|
<ul class="dropdown-menu">
|
||||||
<li><a href="{{ url_profile|raw }}"><i class="icon-cog"></i> {{ label_profile }}</a></li>
|
<li><a href="{{ url_profile|raw }}"><i class="icon-cog"></i> {{ label_profile }}</a></li>
|
||||||
<li><a href="{{ url_logout|raw }}"><i class="icon-off"></i> {{ label_logout }}</a></li>
|
<li><a href="{{ url_logout|raw }}"><i class="icon-off"></i> {{ label_logout }}</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li class="hidden-desktop divider"></li>
|
<li class="hidden-desktop divider"></li>
|
||||||
<li class="hidden-desktop"><a href="{{ url_profile|raw }}">{{ label_profile }}</a></li>
|
<li class="hidden-desktop"><a href="{{ url_profile|raw }}">{{ label_profile }}</a></li>
|
||||||
<li class="hidden-desktop"><a href="{{ url_logout|raw }}">{{ label_logout }}</a></li>
|
<li class="hidden-desktop"><a href="{{ url_logout|raw }}">{{ label_logout }}</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
|
@ -1,2 +1,2 @@
|
||||||
<h2>{{ label_title }}</h2>
|
<h2>{{ label_title }}</h2>
|
||||||
<p>{{ label_description }}</p>
|
<p>{{ label_description }}</p>
|
|
@ -1,61 +1,61 @@
|
||||||
{% extends "module/install/main.tpl.html" %}
|
{% extends "module/install/main.tpl.html" %}
|
||||||
{% use "module/install/results.tpl.html" %}
|
{% use "module/install/results.tpl.html" %}
|
||||||
|
|
||||||
{% block install %}
|
{% block install %}
|
||||||
<div class="row-fluid">
|
<div class="row-fluid">
|
||||||
<div class="span12">{{ block('results') }}</div>
|
<div class="span12">{{ block('results') }}</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row-fluid">
|
<div class="row-fluid">
|
||||||
<div class="span6">
|
<div class="span6">
|
||||||
<form id="psm_config" class="form-horizontal" action="install.php?action=config" method="post">
|
<form id="psm_config" class="form-horizontal" action="install.php?action=config" method="post">
|
||||||
<p>Please enter your database info:</p>
|
<p>Please enter your database info:</p>
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<label class="control-label" for="host">Database host</label>
|
<label class="control-label" for="host">Database host</label>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<input type="text" id="host" name="host" value="{{ host }}" />
|
<input type="text" id="host" name="host" value="{{ host }}" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<label class="control-label" for="name">Database name</label>
|
<label class="control-label" for="name">Database name</label>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<input type="text" id="name" name="name" value="{{ name }}" placeholder="db name" />
|
<input type="text" id="name" name="name" value="{{ name }}" placeholder="db name" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<label class="control-label" for="user">Database user</label>
|
<label class="control-label" for="user">Database user</label>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<input type="text" id="user" name="user" value="{{ user }}" placeholder="db user" />
|
<input type="text" id="user" name="user" value="{{ user }}" placeholder="db user" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<label class="control-label" for="pass">Database password</label>
|
<label class="control-label" for="pass">Database password</label>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<input type="password" id="pass" name="pass" value="{{ pass }}" placeholder="db password" />
|
<input type="password" id="pass" name="pass" value="{{ pass }}" placeholder="db password" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<label class="control-label" for="prefix">Table prefix</label>
|
<label class="control-label" for="prefix">Table prefix</label>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<input type="text" id="prefix" name="prefix" value="{{ prefix }}" />
|
<input type="text" id="prefix" name="prefix" value="{{ prefix }}" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<button type="submit" class="btn">Save configuration</button>
|
<button type="submit" class="btn">Save configuration</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
{% if include_config_new_copy %}
|
{% if include_config_new_copy %}
|
||||||
<div class="span6">
|
<div class="span6">
|
||||||
<h3>Your config file:</h3>
|
<h3>Your config file:</h3>
|
||||||
<div class="alert alert-error">Unable to save your configuration.</div>
|
<div class="alert alert-error">Unable to save your configuration.</div>
|
||||||
<p>Your database information is valid, however we are unable to create the configuration file automatically.
|
<p>Your database information is valid, however we are unable to create the configuration file automatically.
|
||||||
Please create a new file in the project directory called "config.php" and copy the information below.</p>
|
Please create a new file in the project directory called "config.php" and copy the information below.</p>
|
||||||
<p>After you have copied the configuration, press the button to continue.</p>
|
<p>After you have copied the configuration, press the button to continue.</p>
|
||||||
<p class="pull-left"><textarea rows="10">{{ php_config }}</textarea></p>
|
<p class="pull-left"><textarea rows="10">{{ php_config }}</textarea></p>
|
||||||
<p class="offset2"><input type="submit" class="btn btn-primary" value="I have saved the configuration" onclick="location.reload(true);" /></p>
|
<p class="offset2"><input type="submit" class="btn btn-primary" value="I have saved the configuration" onclick="location.reload(true);" /></p>
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
|
@ -1,44 +1,44 @@
|
||||||
{% extends "module/install/main.tpl.html" %}
|
{% extends "module/install/main.tpl.html" %}
|
||||||
{% use "module/install/results.tpl.html" %}
|
{% use "module/install/results.tpl.html" %}
|
||||||
|
|
||||||
{% block install %}
|
{% block install %}
|
||||||
<p>Sweet, your database connection is up and running!</p>
|
<p>Sweet, your database connection is up and running!</p>
|
||||||
<p>Next, please set up a new account to access your monitor:</p>
|
<p>Next, please set up a new account to access your monitor:</p>
|
||||||
{{ block('results') }}
|
{{ block('results') }}
|
||||||
<p> </p>
|
<p> </p>
|
||||||
<div class="row-fluid">
|
<div class="row-fluid">
|
||||||
<div class="span6">
|
<div class="span6">
|
||||||
<form id="psm_config" class="form-horizontal" action="install.php?action=install" method="post">
|
<form id="psm_config" class="form-horizontal" action="install.php?action=install" method="post">
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<label class="control-label" for="username">Username</label>
|
<label class="control-label" for="username">Username</label>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<input type="text" id="username" name="username" value="{{ username }}">
|
<input type="text" id="username" name="username" value="{{ username }}">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<label class="control-label" for="password">Password</label>
|
<label class="control-label" for="password">Password</label>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<input type="password" id="password" name="password" value="">
|
<input type="password" id="password" name="password" value="">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<label class="control-label" for="password_repeat">Password repeat</label>
|
<label class="control-label" for="password_repeat">Password repeat</label>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<input type="password" id="password_repeat" name="password_repeat" value="">
|
<input type="password" id="password_repeat" name="password_repeat" value="">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<label class="control-label" for="email">Email</label>
|
<label class="control-label" for="email">Email</label>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<input type="text" id="email" name="email" value="{{ email }}" />
|
<input type="text" id="email" name="email" value="{{ email }}" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<button type="submit" class="btn btn-primary btn-large">Install</button>
|
<button type="submit" class="btn btn-primary btn-large">Install</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
|
@ -1,9 +1,9 @@
|
||||||
{% extends "module/install/main.tpl.html" %}
|
{% extends "module/install/main.tpl.html" %}
|
||||||
|
|
||||||
{% block install %}
|
{% block install %}
|
||||||
<p>We have discovered a previous version.</p>
|
<p>We have discovered a previous version.</p>
|
||||||
<p>In the next step we will upgrade your database to the latest version.</p>
|
<p>In the next step we will upgrade your database to the latest version.</p>
|
||||||
{{ block('results') }}
|
{{ block('results') }}
|
||||||
<p> </p>
|
<p> </p>
|
||||||
<p><a class="btn btn-primary btn-large" href="install.php?action=install">Upgrade to {{ version }}</a></p>
|
<p><a class="btn btn-primary btn-large" href="install.php?action=install">Upgrade to {{ version }}</a></p>
|
||||||
{% endblock %}
|
{% endblock %}
|
|
@ -1,15 +1,15 @@
|
||||||
{% extends "module/install/main.tpl.html" %}
|
{% extends "module/install/main.tpl.html" %}
|
||||||
{% use "module/install/results.tpl.html" %}
|
{% use "module/install/results.tpl.html" %}
|
||||||
|
|
||||||
{% block install %}
|
{% block install %}
|
||||||
<p>Welcome to the installation of PHP Server Monitor. This page will guide you through the steps to install or upgrade your monitor.</p>
|
<p>Welcome to the installation of PHP Server Monitor. This page will guide you through the steps to install or upgrade your monitor.</p>
|
||||||
<p>Before we start, we need to verify your system meets the requirements.
|
<p>Before we start, we need to verify your system meets the requirements.
|
||||||
If you see any errors in the list below, you may still continue, but PHP Server Monitor may not work correctly.
|
If you see any errors in the list below, you may still continue, but PHP Server Monitor may not work correctly.
|
||||||
It is recommended you fix any errors before continuing.
|
It is recommended you fix any errors before continuing.
|
||||||
</p>
|
</p>
|
||||||
{{ block('results') }}
|
{{ block('results') }}
|
||||||
<p> </p>
|
<p> </p>
|
||||||
<p>
|
<p>
|
||||||
<a class="btn btn-primary btn-large" href="install.php?action=config">Let's go</a>
|
<a class="btn btn-primary btn-large" href="install.php?action=config">Let's go</a>
|
||||||
</p>
|
</p>
|
||||||
{% endblock %}
|
{% endblock %}
|
|
@ -1,8 +1,8 @@
|
||||||
<div class="hero-unit">
|
<div class="hero-unit">
|
||||||
<div class="install_header">
|
<div class="install_header">
|
||||||
<p class="pull-left"><a href="http://www.phpservermonitor.org/"><img class="pull-left" src="static/phpservermon.png" alt="" /></a></p>
|
<p class="pull-left"><a href="http://www.phpservermonitor.org/"><img class="pull-left" src="static/phpservermon.png" alt="" /></a></p>
|
||||||
<h2> PHP Server Monitor</h2>
|
<h2> PHP Server Monitor</h2>
|
||||||
<p class="clearfix"></p>
|
<p class="clearfix"></p>
|
||||||
</div>
|
</div>
|
||||||
{% block install %} {% endblock %}
|
{% block install %} {% endblock %}
|
||||||
</div>
|
</div>
|
|
@ -1,12 +1,12 @@
|
||||||
{% block results %}
|
{% block results %}
|
||||||
{% if messages %}
|
{% if messages %}
|
||||||
{% for msg in messages %}
|
{% for msg in messages %}
|
||||||
<div>
|
<div>
|
||||||
<p class="pull-left"><span class="label label-{{ msg.shortcode }}">{{ msg.shortcode }}</span></p>
|
<p class="pull-left"><span class="label label-{{ msg.shortcode }}">{{ msg.shortcode }}</span></p>
|
||||||
{% autoescape false %}
|
{% autoescape false %}
|
||||||
<p class="offset1">{{ msg.message }}</p>
|
<p class="offset1">{{ msg.message }}</p>
|
||||||
{% endautoescape %}
|
{% endautoescape %}
|
||||||
</div>
|
</div>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endblock %}
|
{% endblock %}
|
|
@ -1,20 +1,20 @@
|
||||||
{% extends "module/install/main.tpl.html" %}
|
{% extends "module/install/main.tpl.html" %}
|
||||||
{% use "module/install/results.tpl.html" %}
|
{% use "module/install/results.tpl.html" %}
|
||||||
|
|
||||||
{% block install %}
|
{% block install %}
|
||||||
<div class="row-fluid">
|
<div class="row-fluid">
|
||||||
<div class="span12">{{ block('results') }}</div>
|
<div class="span12">{{ block('results') }}</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row-fluid">
|
<div class="row-fluid">
|
||||||
<div class="span12">
|
<div class="span12">
|
||||||
<p> </p>
|
<p> </p>
|
||||||
<p>The installation is complete. Please check above if errors have occurred.<br>
|
<p>The installation is complete. Please check above if errors have occurred.<br>
|
||||||
If no errors have occurred, you are good to go.<br><br></p>
|
If no errors have occurred, you are good to go.<br><br></p>
|
||||||
<p>
|
<p>
|
||||||
<a class="btn btn-primary btn-large" href="index.php">Go to your monitor</a>
|
<a class="btn btn-primary btn-large" href="index.php">Go to your monitor</a>
|
||||||
<a class="btn btn-large" target="_blank" href="http://www.phpservermonitor.org/">PHP Server Monitor</a>
|
<a class="btn btn-large" target="_blank" href="http://www.phpservermonitor.org/">PHP Server Monitor</a>
|
||||||
<a class="btn btn-large" target="_blank" href="http://docs.phpservermonitor.org/">Documentation</a>
|
<a class="btn btn-large" target="_blank" href="http://docs.phpservermonitor.org/">Documentation</a>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
|
@ -1,60 +1,60 @@
|
||||||
<div class="tabbable">
|
<div class="tabbable">
|
||||||
<ul class="nav nav-tabs">
|
<ul class="nav nav-tabs">
|
||||||
<li class="active"><a href="#log_status_content" data-toggle="tab">{{ label_status }}</a></li>
|
<li class="active"><a href="#log_status_content" data-toggle="tab">{{ label_status }}</a></li>
|
||||||
<li><a href="#log_email_content" data-toggle="tab">{{ label_email }}</a></li>
|
<li><a href="#log_email_content" data-toggle="tab">{{ label_email }}</a></li>
|
||||||
<li><a href="#log_sms_content" data-toggle="tab">{{ label_sms }}</a></li>
|
<li><a href="#log_sms_content" data-toggle="tab">{{ label_sms }}</a></li>
|
||||||
<li><a href="#log_pushover_content" data-toggle="tab">{{ label_pushover }}</a></li>
|
<li><a href="#log_pushover_content" data-toggle="tab">{{ label_pushover }}</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<div class="tab-content well">
|
<div class="tab-content well">
|
||||||
{% for tab in tabs %}
|
{% for tab in tabs %}
|
||||||
<div class="tab-pane {{ tab.tab_active }}" id="log_{{ tab.id }}_content">
|
<div class="tab-pane {{ tab.tab_active }}" id="log_{{ tab.id }}_content">
|
||||||
<table class="table table-bordered table-striped">
|
<table class="table table-bordered table-striped">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th class="hidden-phone">{{ label_server }}</th>
|
<th class="hidden-phone">{{ label_server }}</th>
|
||||||
<th class="hidden-phone">{{ label_message }}</th>
|
<th class="hidden-phone">{{ label_message }}</th>
|
||||||
<th class="hidden-phone">{{ label_date }}</th>
|
<th class="hidden-phone">{{ label_date }}</th>
|
||||||
{% if tab.has_users %} <th class="hidden-phone">{{ label_users }}</th> {% endif %}
|
{% if tab.has_users %} <th class="hidden-phone">{{ label_users }}</th> {% endif %}
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
{% for entry in tab.entries %}
|
{% for entry in tab.entries %}
|
||||||
<tr class="{{ entry.class }}">
|
<tr class="{{ entry.class }}">
|
||||||
<td>
|
<td>
|
||||||
<div class="table-body">
|
<div class="table-body">
|
||||||
<div class="table-cell">
|
<div class="table-cell">
|
||||||
<div class="visible-phone pull-right">
|
<div class="visible-phone pull-right">
|
||||||
{{ entry.datetime_format }}
|
{{ entry.datetime_format }}
|
||||||
</div>
|
</div>
|
||||||
<i class="{{ entry.type_icon }}" title="{{ entry.type_title }}"></i> <span class="title">{{ entry.server }}</span> {{ entry.ip }}
|
<i class="{{ entry.type_icon }}" title="{{ entry.type_title }}"></i> <span class="title">{{ entry.server }}</span> {{ entry.ip }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="visible-phone">
|
<div class="visible-phone">
|
||||||
<div class="table-separator"/></div>
|
<div class="table-separator"/></div>
|
||||||
<div class="table-body">
|
<div class="table-body">
|
||||||
<div class="table-cell-details">{{ entry.message|raw }}</div>
|
<div class="table-cell-details">{{ entry.message|raw }}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% if tab.has_users %}<div class="visible-phone">
|
{% if tab.has_users %}<div class="visible-phone">
|
||||||
<div class="table-separator"/></div>
|
<div class="table-separator"/></div>
|
||||||
<div class="table-body">
|
<div class="table-body">
|
||||||
<div class="table-cell-details">{{ label_users }}: {{ entry.user_list|raw }}</div>
|
<div class="table-cell-details">{{ label_users }}: {{ entry.user_list|raw }}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>{% endif %}
|
</div>{% endif %}
|
||||||
</td>
|
</td>
|
||||||
<td class="hidden-phone">{{ entry.message|raw }}</td>
|
<td class="hidden-phone">{{ entry.message|raw }}</td>
|
||||||
<td class="hidden-phone tight">{{ entry.datetime_format }}</td>
|
<td class="hidden-phone tight">{{ entry.datetime_format }}</td>
|
||||||
{% if tab.has_users %}<td class="hidden-phone tight">{{ entry.users|raw }}</td>{% endif %}
|
{% if tab.has_users %}<td class="hidden-phone tight">{{ entry.users|raw }}</td>{% endif %}
|
||||||
</tr>
|
</tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% if tab.no_logs %}
|
{% if tab.no_logs %}
|
||||||
<tr class="{{ class }}">
|
<tr class="{{ class }}">
|
||||||
<td colspan="4" class="cell-center">{{ label_no_logs }}</td>
|
<td colspan="4" class="cell-center">{{ label_no_logs }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
|
@ -1,66 +1,66 @@
|
||||||
<table class="table table-bordered table-striped">
|
<table class="table table-bordered table-striped">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th class="hidden-phone"> </th>
|
<th class="hidden-phone"> </th>
|
||||||
<th class="hidden-phone">{{ label_label }}</th>
|
<th class="hidden-phone">{{ label_label }}</th>
|
||||||
<th class="hidden-phone">{{ label_domain }}</th>
|
<th class="hidden-phone">{{ label_domain }}</th>
|
||||||
<th class="visible-desktop">{{ label_port }}</th>
|
<th class="visible-desktop">{{ label_port }}</th>
|
||||||
<th class="visible-desktop">{{ label_type }}</th>
|
<th class="visible-desktop">{{ label_type }}</th>
|
||||||
<th class="hidden-phone">{{ label_rtime }}</th>
|
<th class="hidden-phone">{{ label_rtime }}</th>
|
||||||
<th class="hidden-phone">{{ label_last_online }}</th>
|
<th class="hidden-phone">{{ label_last_online }}</th>
|
||||||
<th class="hidden-phone">{{ label_monitoring }}</th>
|
<th class="hidden-phone">{{ label_monitoring }}</th>
|
||||||
<th class="hidden-phone">{{ label_action }}</th>
|
<th class="hidden-phone">{{ label_action }}</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
{% for server in servers %}
|
{% for server in servers %}
|
||||||
<tr>
|
<tr>
|
||||||
<td class="hidden-phone"><div class="table-cell-title"><span class="label label-status-{{ server.status }}"><a href="{{ server.url_view|raw }}" title="{{ server.error }}">{{ server.status }}</a></span></div></td>
|
<td class="hidden-phone"><div class="table-cell-title"><span class="label label-status-{{ server.status }}"><a href="{{ server.url_view|raw }}" title="{{ server.error }}">{{ server.status }}</a></span></div></td>
|
||||||
<td class="hidden-phone"><div class="table-cell-title"><a href="{{ server.url_view|raw }}">{{ server.label }}</a></div></td>
|
<td class="hidden-phone"><div class="table-cell-title"><a href="{{ server.url_view|raw }}">{{ server.label }}</a></div></td>
|
||||||
<td class="nowrap visible-tablet"><div class="table-cell-title"><i class="{{ server.type_icon }}" title="{{ server.type }}"></i> {{ server.ip_short|raw }}</div></td>
|
<td class="nowrap visible-tablet"><div class="table-cell-title"><i class="{{ server.type_icon }}" title="{{ server.type }}"></i> {{ server.ip_short|raw }}</div></td>
|
||||||
<td class="nowrap visible-desktop"><div class="table-cell-title">{{ server.ip|raw }}</div></td>
|
<td class="nowrap visible-desktop"><div class="table-cell-title">{{ server.ip|raw }}</div></td>
|
||||||
<td class="nowrap visible-desktop"><div class="table-cell-title">{{ server.port }}</div></td>
|
<td class="nowrap visible-desktop"><div class="table-cell-title">{{ server.port }}</div></td>
|
||||||
<td class="nowrap visible-desktop"><div class="table-cell-title">{{ server.type }}</div></td>
|
<td class="nowrap visible-desktop"><div class="table-cell-title">{{ server.type }}</div></td>
|
||||||
<td class="nowrap hidden-phone"><div class="table-cell-title">{{ server.rtime }} s</div></td>
|
<td class="nowrap hidden-phone"><div class="table-cell-title">{{ server.rtime }} s</div></td>
|
||||||
<td class="nowrap hidden-phone"><div class="table-cell-title">{{ server.last_online }}</div></td>
|
<td class="nowrap hidden-phone"><div class="table-cell-title">{{ server.last_online }}</div></td>
|
||||||
<td class="tight hidden-phone"><div class="table-cell-title"><i class="{{ server.active_icon }}" title="{{ server.active_title }}"></i> <i class="{{ server.email_icon }}" title="{{ label_email }}"></i> <i class="{{ server.sms_icon }}" title="{{ label_sms }}"></i> <i class="{{ server.pushover_icon }}" title="Pushover"></i></div></td>
|
<td class="tight hidden-phone"><div class="table-cell-title"><i class="{{ server.active_icon }}" title="{{ server.active_title }}"></i> <i class="{{ server.email_icon }}" title="{{ label_email }}"></i> <i class="{{ server.sms_icon }}" title="{{ label_sms }}"></i> <i class="{{ server.pushover_icon }}" title="Pushover"></i></div></td>
|
||||||
<td class="tight hidden-phone">
|
<td class="tight hidden-phone">
|
||||||
<div class="table-cell-title">
|
<div class="table-cell-title">
|
||||||
<a class="btn btn-small" href="{{ server.url_view|raw }}"><i class="icon-chart"></i></a>
|
<a class="btn btn-small" href="{{ server.url_view|raw }}"><i class="icon-chart"></i></a>
|
||||||
{% if user_level == 10 %}
|
{% if user_level == 10 %}
|
||||||
<a class="btn btn-small" href="{{ server.url_edit|raw }}" title="{{ label_edit }}"><i class="icon-pencil"></i></a>
|
<a class="btn btn-small" href="{{ server.url_edit|raw }}" title="{{ label_edit }}"><i class="icon-pencil"></i></a>
|
||||||
<a class="btn btn-small btn-danger show-modal" href="{{ server.url_delete|raw }}" title="{{ label_delete }}" data-modal-id="delete" data-modal-param="{{ server.label }}"><i class="icon-remove icon-white"></i></a>
|
<a class="btn btn-small btn-danger show-modal" href="{{ server.url_delete|raw }}" title="{{ label_delete }}" data-modal-id="delete" data-modal-param="{{ server.label }}"><i class="icon-remove icon-white"></i></a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td class="visible-phone">
|
<td class="visible-phone">
|
||||||
<div class="table-body">
|
<div class="table-body">
|
||||||
<div class="table-cell-title">
|
<div class="table-cell-title">
|
||||||
<span class="label label-status-{{ server.status }}"><a href="{{ server.url_view|raw }}" title="{{ server.error }}">{{ server.status }}</a></span>
|
<span class="label label-status-{{ server.status }}"><a href="{{ server.url_view|raw }}" title="{{ server.error }}">{{ server.status }}</a></span>
|
||||||
<a class="title" href="{{ server.url_view|raw }}">{{ server.label }}</a>
|
<a class="title" href="{{ server.url_view|raw }}">{{ server.label }}</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="table-cell tight">
|
<div class="table-cell tight">
|
||||||
<a class="btn btn-small" href="{{ server.url_view|raw }}"><i class="icon-chart"></i></a>
|
<a class="btn btn-small" href="{{ server.url_view|raw }}"><i class="icon-chart"></i></a>
|
||||||
{% if user_level == 10 %}
|
{% if user_level == 10 %}
|
||||||
<a class="btn btn-small" href="{{ server.url_edit|raw }}" title="{{ label_edit }}"><i class="icon-pencil"></i></a>
|
<a class="btn btn-small" href="{{ server.url_edit|raw }}" title="{{ label_edit }}"><i class="icon-pencil"></i></a>
|
||||||
<a class="btn btn-small btn-danger show-modal" href="{{ server.url_delete|raw }}" title="{{ label_delete }}" data-modal-id="delete" data-modal-param="{{ server.label }}"><i class="icon-remove icon-white"></i></a>
|
<a class="btn btn-small btn-danger show-modal" href="{{ server.url_delete|raw }}" title="{{ label_delete }}" data-modal-id="delete" data-modal-param="{{ server.label }}"><i class="icon-remove icon-white"></i></a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="table-body">
|
<div class="table-body">
|
||||||
<div class="table-row">
|
<div class="table-row">
|
||||||
<div class="table-cell"><i class="{{ server.type_icon }}" title="{{ server.type }}"></i> {{ server.ip_short|raw }}</div>
|
<div class="table-cell"><i class="{{ server.type_icon }}" title="{{ server.type }}"></i> {{ server.ip_short|raw }}</div>
|
||||||
<div class="table-cell tight">
|
<div class="table-cell tight">
|
||||||
<i class="{{ server.active_icon }}" title="{{ server.active_title }}"></i> <i class="{{ server.email_icon }}" title="{{ label_email }}"></i> <i class="{{ server.sms_icon }}" title="{{ label_sms }}"></i> <i class="{{ server.pushover_icon }}" title="Pushover"></i>
|
<i class="{{ server.active_icon }}" title="{{ server.active_title }}"></i> <i class="{{ server.email_icon }}" title="{{ label_email }}"></i> <i class="{{ server.sms_icon }}" title="{{ label_sms }}"></i> <i class="{{ server.pushover_icon }}" title="Pushover"></i>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="table-body">
|
<div class="table-body">
|
||||||
<div class="table-row"><div class="table-cell-details tight">{{ label_rtime }}: </div><div class="table-cell-details">{{ server.rtime }} s</div></div>
|
<div class="table-row"><div class="table-cell-details tight">{{ label_rtime }}: </div><div class="table-cell-details">{{ server.rtime }} s</div></div>
|
||||||
<div class="table-row"><div class="table-cell-details tight">{{ label_last_online }}: </div><div class="table-cell-details">{{ server.last_online }}</div></div>
|
<div class="table-row"><div class="table-cell-details tight">{{ label_last_online }}: </div><div class="table-cell-details">{{ server.last_online }}</div></div>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
|
@ -1,106 +1,106 @@
|
||||||
<form class="form-horizontal well" action="{{ url_save|raw }}" method="post">
|
<form class="form-horizontal well" action="{{ url_save|raw }}" method="post">
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<legend>{{ titlemode }}</legend>
|
<legend>{{ titlemode }}</legend>
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<label class="control-label" for="label">{{ label_label }}</label>
|
<label class="control-label" for="label">{{ label_label }}</label>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<input type="text" id="label" name="label" value="{{ edit_value_label }}" maxlength="255" />
|
<input type="text" id="label" name="label" value="{{ edit_value_label }}" maxlength="255" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<label class="control-label" for="ip">{{ label_domain }}</label>
|
<label class="control-label" for="ip">{{ label_domain }}</label>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<input type="text" id="ip" name="ip" value="{{ edit_value_ip }}" maxlength="100" />
|
<input type="text" id="ip" name="ip" value="{{ edit_value_ip }}" maxlength="100" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<label class="control-label" for="type">{{ label_type }}</label>
|
<label class="control-label" for="type">{{ label_type }}</label>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<select id="type" name="type">
|
<select id="type" name="type">
|
||||||
<option value="service" {{ edit_type_selected_service|raw }}>{{ label_service }}</option>
|
<option value="service" {{ edit_type_selected_service|raw }}>{{ label_service }}</option>
|
||||||
<option value="website" {{ edit_type_selected_website|raw }}>{{ label_website }}</option>
|
<option value="website" {{ edit_type_selected_website|raw }}>{{ label_website }}</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<label class="control-label" for="port">{{ label_port }}</label>
|
<label class="control-label" for="port">{{ label_port }}</label>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<input class="input-mini" type="text" id="port" name="port" value="{{ edit_value_port }}" maxlength="5" />
|
<input class="input-mini" type="text" id="port" name="port" value="{{ edit_value_port }}" maxlength="5" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<label class="control-label" for="pattern">{{ label_pattern }}</label>
|
<label class="control-label" for="pattern">{{ label_pattern }}</label>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<input type="text" id="pattern" name="pattern" value="{{ edit_value_pattern }}" maxlength="255" data-toggle="tooltip" title="{{ label_pattern_description }}" />
|
<input type="text" id="pattern" name="pattern" value="{{ edit_value_pattern }}" maxlength="255" data-toggle="tooltip" title="{{ label_pattern_description }}" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<label class="control-label" for="warning_threshold">{{ label_warning_threshold }}</label>
|
<label class="control-label" for="warning_threshold">{{ label_warning_threshold }}</label>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<input class="input-mini" type="text" id="warning_threshold" name="warning_threshold" value="{{ edit_value_warning_threshold }}" maxlength="5" data-toggle="tooltip" title="{{ label_warning_threshold_description }}" />
|
<input class="input-mini" type="text" id="warning_threshold" name="warning_threshold" value="{{ edit_value_warning_threshold }}" maxlength="5" data-toggle="tooltip" title="{{ label_warning_threshold_description }}" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<label class="control-label" for="timeout">{{ label_timeout }}</label>
|
<label class="control-label" for="timeout">{{ label_timeout }}</label>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<input class="input-mini" type="text" id="timeout" name="timeout" value="{{ edit_value_timeout }}" placeholder="{{ default_value_timeout }}" maxlength="10" data-toggle="tooltip" title="{{ label_timeout_description }}" /> s
|
<input class="input-mini" type="text" id="timeout" name="timeout" value="{{ edit_value_timeout }}" placeholder="{{ default_value_timeout }}" maxlength="10" data-toggle="tooltip" title="{{ label_timeout_description }}" /> s
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<label class="control-label" for="active">{{ label_monitoring }}</label>
|
<label class="control-label" for="active">{{ label_monitoring }}</label>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<select id="active" name="active">
|
<select id="active" name="active">
|
||||||
<option value="yes" {{ edit_active_selected_yes|raw }}>{{ label_yes }}</option>
|
<option value="yes" {{ edit_active_selected_yes|raw }}>{{ label_yes }}</option>
|
||||||
<option value="no" {{ edit_active_selected_no|raw }}>{{ label_no }}</option>
|
<option value="no" {{ edit_active_selected_no|raw }}>{{ label_no }}</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="control-group {{ control_class_email }}">
|
<div class="control-group {{ control_class_email }}">
|
||||||
<label class="control-label" for="email">{{ label_send_email }}
|
<label class="control-label" for="email">{{ label_send_email }}
|
||||||
{% if warning_email %} <p class="help-inline"><i class="icon-warning-sign" data-toggle="tooltip" title="{{ label_warning_email }}"></i></p> {% endif %}
|
{% if warning_email %} <p class="help-inline"><i class="icon-warning-sign" data-toggle="tooltip" title="{{ label_warning_email }}"></i></p> {% endif %}
|
||||||
</label>
|
</label>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<select id="email" name="email">
|
<select id="email" name="email">
|
||||||
<option value="yes" {{ edit_email_selected_yes|raw }}>{{ label_yes }}</option>
|
<option value="yes" {{ edit_email_selected_yes|raw }}>{{ label_yes }}</option>
|
||||||
<option value="no" {{ edit_email_selected_no|raw }}>{{ label_no }}</option>
|
<option value="no" {{ edit_email_selected_no|raw }}>{{ label_no }}</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="control-group {{ control_class_sms }}">
|
<div class="control-group {{ control_class_sms }}">
|
||||||
<label class="control-label" for="sms">{{ label_send_sms }}
|
<label class="control-label" for="sms">{{ label_send_sms }}
|
||||||
{% if warning_sms %} <p class="help-inline"><i class="icon-warning-sign" data-toggle="tooltip" title="{{ label_warning_sms }}"></i></p> {% endif %}
|
{% if warning_sms %} <p class="help-inline"><i class="icon-warning-sign" data-toggle="tooltip" title="{{ label_warning_sms }}"></i></p> {% endif %}
|
||||||
</label>
|
</label>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<select id="sms" name="sms">
|
<select id="sms" name="sms">
|
||||||
<option value="yes" {{ edit_sms_selected_yes|raw }}>{{ label_yes }}</option>
|
<option value="yes" {{ edit_sms_selected_yes|raw }}>{{ label_yes }}</option>
|
||||||
<option value="no" {{ edit_sms_selected_no|raw }}>{{ label_no }}</option>
|
<option value="no" {{ edit_sms_selected_no|raw }}>{{ label_no }}</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="control-group {{ control_class_pushover }}">
|
<div class="control-group {{ control_class_pushover }}">
|
||||||
<label class="control-label" for="pushover">{{ label_pushover }}
|
<label class="control-label" for="pushover">{{ label_pushover }}
|
||||||
{% if warning_pushover %} <p class="help-inline"><i class="icon-warning-sign" data-toggle="tooltip" title="{{ label_warning_pushover }}"></i></p> {% endif %}
|
{% if warning_pushover %} <p class="help-inline"><i class="icon-warning-sign" data-toggle="tooltip" title="{{ label_warning_pushover }}"></i></p> {% endif %}
|
||||||
</label>
|
</label>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<select id="pushover" name="pushover">
|
<select id="pushover" name="pushover">
|
||||||
<option value="yes" {{ edit_pushover_selected_yes|raw }}>{{ label_yes }}</option>
|
<option value="yes" {{ edit_pushover_selected_yes|raw }}>{{ label_yes }}</option>
|
||||||
<option value="no" {{ edit_pushover_selected_no|raw }}>{{ label_no }}</option>
|
<option value="no" {{ edit_pushover_selected_no|raw }}>{{ label_no }}</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<label class="control-label" for="user_id">{{ label_users }}</label>
|
<label class="control-label" for="user_id">{{ label_users }}</label>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<select class="multiselect" multiple="multiple" id="user_id" name="user_id[]">
|
<select class="multiselect" multiple="multiple" id="user_id" name="user_id[]">
|
||||||
{% for user in users %}
|
{% for user in users %}
|
||||||
<option value="{{ user.user_id }}" {{ user.edit_selected|raw }}> {{ user.name }}</option>
|
<option value="{{ user.user_id }}" {{ user.edit_selected|raw }}> {{ user.name }}</option>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-actions">
|
<div class="form-actions">
|
||||||
<button class="btn btn-success" type="submit">{{ label_save }}</button>
|
<button class="btn btn-success" type="submit">{{ label_save }}</button>
|
||||||
<a class="btn" href="{{ url_go_back|raw }}" >{{ label_go_back }}</a>
|
<a class="btn" href="{{ url_go_back|raw }}" >{{ label_go_back }}</a>
|
||||||
</div>
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</form>
|
</form>
|
|
@ -1,4 +1,4 @@
|
||||||
<div class="btn-group" data-toggle="buttons-radio">
|
<div class="btn-group" data-toggle="buttons-radio">
|
||||||
<button class="btn {{ block_layout_active }}" data-toggle="tab" data-target="#flow-layout" onclick="psm_saveLayout(0)"><i class="icon-th-large"></i></button>
|
<button class="btn {{ block_layout_active }}" data-toggle="tab" data-target="#flow-layout" onclick="psm_saveLayout(0)"><i class="icon-th-large"></i></button>
|
||||||
<button class="btn {{ list_layout_active }}" data-toggle="tab" data-target="#list-layout" onclick="psm_saveLayout(1)"><i class="icon-th-list"></i></button>
|
<button class="btn {{ list_layout_active }}" data-toggle="tab" data-target="#list-layout" onclick="psm_saveLayout(1)"><i class="icon-th-list"></i></button>
|
||||||
</div>
|
</div>
|
|
@ -1,8 +1,8 @@
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<form class="form-signin" method="post">
|
<form class="form-signin" method="post">
|
||||||
<h3 class="form-signin-heading">{{ title_forgot }}</h3>
|
<h3 class="form-signin-heading">{{ title_forgot }}</h3>
|
||||||
<input type="text" name="user_name" class="input-block-level" placeholder="{{ label_username }}" value="{{ value_user_name }}" required>
|
<input type="text" name="user_name" class="input-block-level" placeholder="{{ label_username }}" value="{{ value_user_name }}" required>
|
||||||
<button class="btn btn-primary" type="submit">{{ label_submit }}</button>
|
<button class="btn btn-primary" type="submit">{{ label_submit }}</button>
|
||||||
<a class="btn" href="?">{{ label_go_back }}</a>
|
<a class="btn" href="?">{{ label_go_back }}</a>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
|
@ -1,13 +1,13 @@
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<form class="form-signin" method="post">
|
<form class="form-signin" method="post">
|
||||||
<h3 class="form-signin-heading">{{ title_sign_in }}</h3>
|
<h3 class="form-signin-heading">{{ title_sign_in }}</h3>
|
||||||
<input type="text" name="user_name" class="input-block-level" placeholder="{{ label_username }}" value="{{ value_user_name }}" required>
|
<input type="text" name="user_name" class="input-block-level" placeholder="{{ label_username }}" value="{{ value_user_name }}" required>
|
||||||
<input type="password" name="user_password" class="input-block-level" placeholder="{{ label_password }}" required>
|
<input type="password" name="user_password" class="input-block-level" placeholder="{{ label_password }}" required>
|
||||||
<input type="hidden" name="action" value="login">
|
<input type="hidden" name="action" value="login">
|
||||||
<label class="checkbox">
|
<label class="checkbox">
|
||||||
<input type="checkbox" name="user_rememberme" value="1" {{ value_rememberme }}> {{ label_remember_me }}
|
<input type="checkbox" name="user_rememberme" value="1" {{ value_rememberme }}> {{ label_remember_me }}
|
||||||
</label>
|
</label>
|
||||||
<button class="btn btn-primary" type="submit">{{ label_login }}</button>
|
<button class="btn btn-primary" type="submit">{{ label_login }}</button>
|
||||||
<a class="btn" href="?action=forgot">{{ label_password_forgot }}</a>
|
<a class="btn" href="?action=forgot">{{ label_password_forgot }}</a>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
|
@ -1,10 +1,10 @@
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<form class="form-signin" method="post">
|
<form class="form-signin" method="post">
|
||||||
<h3 class="form-signin-heading">{{ title_reset }}</h3>
|
<h3 class="form-signin-heading">{{ title_reset }}</h3>
|
||||||
<input type="text" name="user_name" class="input-block-level" placeholder="{{ label_username }}" value="{{ value_user_name }}" required disabled="disabled">
|
<input type="text" name="user_name" class="input-block-level" placeholder="{{ label_username }}" value="{{ value_user_name }}" required disabled="disabled">
|
||||||
<input type="password" name="user_password_new" class="input-block-level" placeholder="{{ label_password }}" required autocomplete="off">
|
<input type="password" name="user_password_new" class="input-block-level" placeholder="{{ label_password }}" required autocomplete="off">
|
||||||
<input type="password" name="user_password_repeat" class="input-block-level" placeholder="{{ label_password_repeat }}" required autocomplete="off">
|
<input type="password" name="user_password_repeat" class="input-block-level" placeholder="{{ label_password_repeat }}" required autocomplete="off">
|
||||||
<button class="btn btn-primary" type="submit">{{ label_reset }}</button>
|
<button class="btn btn-primary" type="submit">{{ label_reset }}</button>
|
||||||
<a class="btn" href="?">{{ label_go_back }}</a>
|
<a class="btn" href="?">{{ label_go_back }}</a>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
|
@ -1,71 +1,71 @@
|
||||||
<form class="form-horizontal well" action="{{ form_action|raw }}" method="post">
|
<form class="form-horizontal well" action="{{ form_action|raw }}" method="post">
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<div class="row-fluid">
|
<div class="row-fluid">
|
||||||
<div class="span6">
|
<div class="span6">
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<label class="control-label" for="user_name">{{ label_user_name }}</label>
|
<label class="control-label" for="user_name">{{ label_user_name }}</label>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<input type="text" id="user_name" name="user_name" value="{{ user_name }}" maxlength="64" required autofocus=>
|
<input type="text" id="user_name" name="user_name" value="{{ user_name }}" maxlength="64" required autofocus=>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<label class="control-label" for="name">{{ label_name }}</label>
|
<label class="control-label" for="name">{{ label_name }}</label>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<input type="text" id="name" name="name" value="{{ name }}" maxlength="255" required>
|
<input type="text" id="name" name="name" value="{{ name }}" maxlength="255" required>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<label class="control-label" for="level">{{ label_level }}</label>
|
<label class="control-label" for="level">{{ label_level }}</label>
|
||||||
<div class="controls"><input type="text" value="{{ level }}" disabled="disabled" /></div>
|
<div class="controls"><input type="text" value="{{ level }}" disabled="disabled" /></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<label class="control-label" for="password">{{ label_password }}</label>
|
<label class="control-label" for="password">{{ label_password }}</label>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<input type="password" id="password" name="password" maxlength="255" placeholder="{{ placeholder_password }}" />
|
<input type="password" id="password" name="password" maxlength="255" placeholder="{{ placeholder_password }}" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<label class="control-label" for="password_repeat">{{ label_password_repeat }}</label>
|
<label class="control-label" for="password_repeat">{{ label_password_repeat }}</label>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<input type="password" id="password_repeat" name="password_repeat" maxlength="255" placeholder="{{ placeholder_password }}" />
|
<input type="password" id="password_repeat" name="password_repeat" maxlength="255" placeholder="{{ placeholder_password }}" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<label class="control-label" for="email">{{ label_email }}</label>
|
<label class="control-label" for="email">{{ label_email }}</label>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<input type="text" id="email" name="email" value="{{ email }}" maxlength="255" required>
|
<input type="text" id="email" name="email" value="{{ email }}" maxlength="255" required>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<label class="control-label" for="email">{{ label_mobile }}</label>
|
<label class="control-label" for="email">{{ label_mobile }}</label>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<input type="text" id="mobile" name="mobile" value="{{ mobile }}" maxlength="15" />
|
<input type="text" id="mobile" name="mobile" value="{{ mobile }}" maxlength="15" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="span6">
|
<div class="span6">
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<label class="control-label">{{ label_pushover }}</label>
|
<label class="control-label">{{ label_pushover }}</label>
|
||||||
<div class="controls">{{ label_pushover_description|raw }} </div>
|
<div class="controls">{{ label_pushover_description|raw }} </div>
|
||||||
</div>
|
</div>
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<label class="control-label" for="mobile">{{ label_pushover_key }}</label>
|
<label class="control-label" for="mobile">{{ label_pushover_key }}</label>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<input type="text" id="pushover_key" name="pushover_key" value="{{ pushover_key }}" maxlength="255" />
|
<input type="text" id="pushover_key" name="pushover_key" value="{{ pushover_key }}" maxlength="255" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<label class="control-label" for="mobile">{{ label_pushover_device }}</label>
|
<label class="control-label" for="mobile">{{ label_pushover_device }}</label>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<input type="text" id="pushover_device" name="pushover_device" value="{{ pushover_device }}" maxlength="255" data-toggle="tooltip" title="{{ label_pushover_device_description }}" />
|
<input type="text" id="pushover_device" name="pushover_device" value="{{ pushover_device }}" maxlength="255" data-toggle="tooltip" title="{{ label_pushover_device_description }}" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row-fluid">
|
<div class="row-fluid">
|
||||||
<div class="form-actions">
|
<div class="form-actions">
|
||||||
<button class="btn btn-success" type="submit">{{ label_save }}</button>
|
<button class="btn btn-success" type="submit">{{ label_save }}</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</form>
|
</form>
|
|
@ -1,66 +1,66 @@
|
||||||
<table class="table table-bordered table-striped">
|
<table class="table table-bordered table-striped">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th class="hidden-phone">{{ label_user }}</th>
|
<th class="hidden-phone">{{ label_user }}</th>
|
||||||
<th class="visible-desktop">{{ label_name }}</th>
|
<th class="visible-desktop">{{ label_name }}</th>
|
||||||
<th class="visible-desktop">{{ label_level }}</th>
|
<th class="visible-desktop">{{ label_level }}</th>
|
||||||
<th class="hidden-phone">{{ label_email }}</th>
|
<th class="hidden-phone">{{ label_email }}</th>
|
||||||
<th class="hidden-phone">{{ label_mobile }}</th>
|
<th class="hidden-phone">{{ label_mobile }}</th>
|
||||||
<th class="hidden-phone">{{ label_servers }}</th>
|
<th class="hidden-phone">{{ label_servers }}</th>
|
||||||
<th class="hidden-phone tight">{{ label_action }}</th>
|
<th class="hidden-phone tight">{{ label_action }}</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
{% for user in users %}
|
{% for user in users %}
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<div class="table-body">
|
<div class="table-body">
|
||||||
<div class="table-cell-title">
|
<div class="table-cell-title">
|
||||||
<span class="nowrap">
|
<span class="nowrap">
|
||||||
<span class="hidden-desktop">
|
<span class="hidden-desktop">
|
||||||
{% if user.level == '10' %}
|
{% if user.level == '10' %}
|
||||||
<i class="icon-admin" title="{{ user.level_text }}"></i>
|
<i class="icon-admin" title="{{ user.level_text }}"></i>
|
||||||
{% elseif user.level == '20' %}
|
{% elseif user.level == '20' %}
|
||||||
<i class="icon-user" title="{{ user.level_text }}"></i>
|
<i class="icon-user" title="{{ user.level_text }}"></i>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</span>
|
</span>
|
||||||
<span class="title">{{ user.user_name }}</span>
|
<span class="title">{{ user.user_name }}</span>
|
||||||
</span>
|
</span>
|
||||||
<span class="hidden-desktop">({{ user.name }})</span>
|
<span class="hidden-desktop">({{ user.name }})</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="table-cell tight">
|
<div class="table-cell tight">
|
||||||
<div class="visible-phone">
|
<div class="visible-phone">
|
||||||
<a class="btn btn-small" href="{{ user.url_edit|raw }}" title="{{ user.label_edit }}">
|
<a class="btn btn-small" href="{{ user.url_edit|raw }}" title="{{ user.label_edit }}">
|
||||||
<i class="icon-pencil"></i>
|
<i class="icon-pencil"></i>
|
||||||
</a>
|
</a>
|
||||||
<a class="btn btn-small btn-danger show-modal" href="{{ user.url_delete|raw }}" title="{{ label_delete }}" data-modal-id="delete" data-modal-param="{{ user.user_name }}">
|
<a class="btn btn-small btn-danger show-modal" href="{{ user.url_delete|raw }}" title="{{ label_delete }}" data-modal-id="delete" data-modal-param="{{ user.user_name }}">
|
||||||
<i class="icon-remove icon-white"></i>
|
<i class="icon-remove icon-white"></i>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="visible-phone">
|
<div class="visible-phone">
|
||||||
<div class="table-body">
|
<div class="table-body">
|
||||||
<div class="table-row"><div class="table-cell-details tight">{{ label_email }}: </div><div class="table-cell-details">{{ user.email }}</div></div>
|
<div class="table-row"><div class="table-cell-details tight">{{ label_email }}: </div><div class="table-cell-details">{{ user.email }}</div></div>
|
||||||
<div class="table-row"><div class="table-cell-details tight">{{ label_mobile }}: </div><div class="table-cell-details">{{ user.mobile }}</div></div>
|
<div class="table-row"><div class="table-cell-details tight">{{ label_mobile }}: </div><div class="table-cell-details">{{ user.mobile }}</div></div>
|
||||||
<div class="table-row"><div class="table-cell-details tight">{{ label_servers }}: </div><div class="table-cell-details">{% for server in user.emp_servers %} {{ server.label }}<br/> {% endfor %}</div></div>
|
<div class="table-row"><div class="table-cell-details tight">{{ label_servers }}: </div><div class="table-cell-details">{% for server in user.emp_servers %} {{ server.label }}<br/> {% endfor %}</div></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td class="visible-desktop nowrap"><div class="table-cell-title">{{ user.name }}</div></td>
|
<td class="visible-desktop nowrap"><div class="table-cell-title">{{ user.name }}</div></td>
|
||||||
<td class="visible-desktop tight"><div class="table-cell-title">{{ user.level_text }}</div></td>
|
<td class="visible-desktop tight"><div class="table-cell-title">{{ user.level_text }}</div></td>
|
||||||
<td class="hidden-phone tight"><div class="table-cell-title">{{ user.email }}</div></td>
|
<td class="hidden-phone tight"><div class="table-cell-title">{{ user.email }}</div></td>
|
||||||
<td class="hidden-phone tight"><div class="table-cell-title">{{ user.mobile }}</div></td>
|
<td class="hidden-phone tight"><div class="table-cell-title">{{ user.mobile }}</div></td>
|
||||||
<td class="hidden-phone"><div class="table-cell-title">{% for server in user.emp_servers %} {{ server.label }}<br/> {% endfor %}</div></td>
|
<td class="hidden-phone"><div class="table-cell-title">{% for server in user.emp_servers %} {{ server.label }}<br/> {% endfor %}</div></td>
|
||||||
<td class="hidden-phone tight">
|
<td class="hidden-phone tight">
|
||||||
<a class="btn btn-small" href="{{ user.url_edit|raw }}" title="{{ label_edit }}">
|
<a class="btn btn-small" href="{{ user.url_edit|raw }}" title="{{ label_edit }}">
|
||||||
<i class="icon-pencil"></i>
|
<i class="icon-pencil"></i>
|
||||||
</a>
|
</a>
|
||||||
<a class="btn btn-small btn-danger show-modal" href="{{ user.url_delete|raw }}" title="{{ label_delete }}" data-modal-id="delete" data-modal-param="{{ user.user_name }}">
|
<a class="btn btn-small btn-danger show-modal" href="{{ user.url_delete|raw }}" title="{{ label_delete }}" data-modal-id="delete" data-modal-param="{{ user.user_name }}">
|
||||||
<i class="icon-remove icon-white"></i>
|
<i class="icon-remove icon-white"></i>
|
||||||
</a>
|
</a>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
|
@ -1,82 +1,82 @@
|
||||||
<form class="form-horizontal well" action="{{ url_save|raw }}" method="post">
|
<form class="form-horizontal well" action="{{ url_save|raw }}" method="post">
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<legend>{{ titlemode }}</legend>
|
<legend>{{ titlemode }}</legend>
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<label class="control-label" for="user_name">{{ label_user_name }}</label>
|
<label class="control-label" for="user_name">{{ label_user_name }}</label>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<input type="text" id="user_name" name="user_name" value="{{ edit_value_user_name }}" maxlength="64" required>
|
<input type="text" id="user_name" name="user_name" value="{{ edit_value_user_name }}" maxlength="64" required>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<label class="control-label" for="name">{{ label_name }}</label>
|
<label class="control-label" for="name">{{ label_name }}</label>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<input type="text" id="name" name="name" value="{{ edit_value_name }}" maxlength="255" required>
|
<input type="text" id="name" name="name" value="{{ edit_value_name }}" maxlength="255" required>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<label class="control-label" for="level">{{ label_level }}</label>
|
<label class="control-label" for="level">{{ label_level }}</label>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<select id="level" name="level">
|
<select id="level" name="level">
|
||||||
{% for level in levels %}
|
{% for level in levels %}
|
||||||
<option value="{{ level.value }}" {% if level.value == user_level %} selected="selected" {% endif %}>{{ level.label }}</option>
|
<option value="{{ level.value }}" {% if level.value == user_level %} selected="selected" {% endif %}>{{ level.label }}</option>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</select>
|
</select>
|
||||||
<p class="help-block">{{ label_level_description|raw }}</p>
|
<p class="help-block">{{ label_level_description|raw }}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<label class="control-label" for="password">{{ label_password }}</label>
|
<label class="control-label" for="password">{{ label_password }}</label>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<input type="password" id="password" name="password" maxlength="255" placeholder="{{ placeholder_password }}" />
|
<input type="password" id="password" name="password" maxlength="255" placeholder="{{ placeholder_password }}" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<label class="control-label" for="password_repeat">{{ label_password_repeat }}</label>
|
<label class="control-label" for="password_repeat">{{ label_password_repeat }}</label>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<input type="password" id="password_repeat" name="password_repeat" maxlength="255" placeholder="{{ placeholder_password }}" />
|
<input type="password" id="password_repeat" name="password_repeat" maxlength="255" placeholder="{{ placeholder_password }}" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<label class="control-label" for="email">{{ label_email }}</label>
|
<label class="control-label" for="email">{{ label_email }}</label>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<input type="text" id="email" name="email" value="{{ edit_value_email }}" maxlength="255" required>
|
<input type="text" id="email" name="email" value="{{ edit_value_email }}" maxlength="255" required>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<label class="control-label" for="mobile">{{ label_mobile }}</label>
|
<label class="control-label" for="mobile">{{ label_mobile }}</label>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<input type="text" id="mobile" name="mobile" value="{{ edit_value_mobile }}" maxlength="15" />
|
<input type="text" id="mobile" name="mobile" value="{{ edit_value_mobile }}" maxlength="15" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<label class="control-label">{{ label_pushover }}</label>
|
<label class="control-label">{{ label_pushover }}</label>
|
||||||
<div class="controls">{{ label_pushover_description|raw }} </div>
|
<div class="controls">{{ label_pushover_description|raw }} </div>
|
||||||
</div>
|
</div>
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<label class="control-label" for="mobile">{{ label_pushover_key }}</label>
|
<label class="control-label" for="mobile">{{ label_pushover_key }}</label>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<input type="text" id="pushover_key" name="pushover_key" value="{{ edit_value_pushover_key }}" maxlength="255" />
|
<input type="text" id="pushover_key" name="pushover_key" value="{{ edit_value_pushover_key }}" maxlength="255" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<label class="control-label" for="mobile">{{ label_pushover_device }}</label>
|
<label class="control-label" for="mobile">{{ label_pushover_device }}</label>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<input type="text" id="pushover_device" name="pushover_device" value="{{ edit_value_pushover_device }}" maxlength="255" data-toggle="tooltip" title="{{ label_pushover_device_description }}" />
|
<input type="text" id="pushover_device" name="pushover_device" value="{{ edit_value_pushover_device }}" maxlength="255" data-toggle="tooltip" title="{{ label_pushover_device_description }}" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<label class="control-label" for="server_id">{{ label_servers }}</label>
|
<label class="control-label" for="server_id">{{ label_servers }}</label>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<select class="multiselect" multiple="multiple" id="server_id" name="server_id[]">
|
<select class="multiselect" multiple="multiple" id="server_id" name="server_id[]">
|
||||||
{% for server in servers %}
|
{% for server in servers %}
|
||||||
<option value="{{ server.server_id }}" {{ server.edit_selected }}> {{ server.label }}</option>
|
<option value="{{ server.server_id }}" {{ server.edit_selected }}> {{ server.label }}</option>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-actions">
|
<div class="form-actions">
|
||||||
<button class="btn btn-success" type="submit">{{ label_save }}</button>
|
<button class="btn btn-success" type="submit">{{ label_save }}</button>
|
||||||
<button class="btn" onclick="history.back();return false;" >{{ label_go_back }}</button>
|
<button class="btn" onclick="history.back();return false;" >{{ label_go_back }}</button>
|
||||||
</div>
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</form>
|
</form>
|
|
@ -1,14 +1,14 @@
|
||||||
<div id="{{ modal_id }}Modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="{{ modal_id }}ModalLabel" aria-hidden="true">
|
<div id="{{ modal_id }}Modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="{{ modal_id }}ModalLabel" aria-hidden="true">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<h3 id="{{ modal_id }}ModalLabel">{{ modal_title }}</h3>
|
<h3 id="{{ modal_id }}ModalLabel">{{ modal_title }}</h3>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<p>{{ modal_body|raw }}</p>
|
<p>{{ modal_body|raw }}</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-footer">
|
<div class="modal-footer">
|
||||||
{% if has_cancel %}
|
{% if has_cancel %}
|
||||||
<button class="btn btn-default" data-dismiss="modal" aria-hidden="true">{{ label_cancel }}</button>
|
<button class="btn btn-default" data-dismiss="modal" aria-hidden="true">{{ label_cancel }}</button>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<button class="btn btn-{{ modal_button_type }} modalOKButton" >{{ modal_button_label }}</button>
|
<button class="btn btn-{{ modal_button_type }} modalOKButton" >{{ modal_button_label }}</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,26 +1,26 @@
|
||||||
<div id="sidebar-container">
|
<div id="sidebar-container">
|
||||||
<div class="sidebar-nav">
|
<div class="sidebar-nav">
|
||||||
<ul class="nav nav-list">
|
<ul class="nav nav-list">
|
||||||
<li class="nav-header">{{ subtitle }}</li>
|
<li class="nav-header">{{ subtitle }}</li>
|
||||||
{% for item in items %}
|
{% for item in items %}
|
||||||
<li class="{{ item.class_active }}">
|
<li class="{{ item.class_active }}">
|
||||||
{% if item.type == 'link' %}
|
{% if item.type == 'link' %}
|
||||||
<a href="{{ item.url|raw }}"><i class="icon-{{ item.icon }}"></i> {{ item.label }}</a>
|
<a href="{{ item.url|raw }}"><i class="icon-{{ item.icon }}"></i> {{ item.label }}</a>
|
||||||
{% elseif item.type == 'button' %}
|
{% elseif item.type == 'button' %}
|
||||||
<button class="btn btn-{{ item.btn_class }}" onclick="{{ item.onclick|raw }}"><i class="icon-{{ item.icon }}"></i> {{ item.label }}</button>
|
<button class="btn btn-{{ item.btn_class }}" onclick="{{ item.onclick|raw }}"><i class="icon-{{ item.icon }}"></i> {{ item.label }}</button>
|
||||||
{% elseif item.type == 'dropdown' %}
|
{% elseif item.type == 'dropdown' %}
|
||||||
<div class="btn-group">
|
<div class="btn-group">
|
||||||
<button class="btn btn-{{ item.btn_class }} dropdown-toggle" data-toggle="dropdown"><i class="icon-{{ item.icon }}"></i> {{ item.label }} <span class="caret"></span></button>
|
<button class="btn btn-{{ item.btn_class }} dropdown-toggle" data-toggle="dropdown"><i class="icon-{{ item.icon }}"></i> {{ item.label }} <span class="caret"></span></button>
|
||||||
<ul class="dropdown-menu">
|
<ul class="dropdown-menu">
|
||||||
{% for option in item.options %}
|
{% for option in item.options %}
|
||||||
<li class="{{ option.class_active }}"><a href="{{ option.url|raw }}">{{ option.label }}</a></li>
|
<li class="{{ option.class_active }}"><a href="{{ option.url|raw }}">{{ option.label }}</a></li>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</li>
|
</li>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</ul>
|
</ul>
|
||||||
<div class="clearfix"></div>
|
<div class="clearfix"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue