mirror of
https://github.com/pandorafms/pandorafms.git
synced 2025-07-27 15:54:29 +02:00
Merge remote-tracking branch 'origin/develop' into ent-8447-conteo-erroneo-de-usuarios-en-index
This commit is contained in:
commit
565cb588ac
1
.gitignore
vendored
1
.gitignore
vendored
@ -9,5 +9,6 @@ MYMETA.yml
|
||||
**/PandoraFMS-Enterprise/pm_to_blib
|
||||
**/pandora_console/attachment/cache
|
||||
**/pandora_console/attachment/agents
|
||||
**/pandora_console/attachment/merge_backups
|
||||
pandora_console/.DS_Store
|
||||
.DS_Store
|
@ -1,7 +1,25 @@
|
||||
variables:
|
||||
GIT_STRATEGY: clone
|
||||
REBRANDING: pandora
|
||||
|
||||
test:
|
||||
script:
|
||||
- docker pull pandorafms/pandorafms-base:centos6
|
||||
- docker run --rm -h pandorafms -t -v "$CI_PROJECT_DIR:/tmp/pandorafms" pandorafms/pandorafms-base:centos6 /tmp/pandorafms/tests/test.sh
|
||||
- if [ ! -e $CI_PROJECT_DIR/pandora_server/bin/${REBRANDING}_server ]; then cp $CI_PROJECT_DIR/pandora_server/bin/pandora_server $CI_PROJECT_DIR/pandora_server/bin/${REBRANDING}_server ; fi
|
||||
- if [ ! -e $CI_PROJECT_DIR/pandora_server/util/${REBRANDING}_ha.pl ]; then cp $CI_PROJECT_DIR/pandora_server/util/pandora_ha.pl $CI_PROJECT_DIR/pandora_server/util/${REBRANDING}_ha.pl ; fi
|
||||
- if [ ! -e $CI_PROJECT_DIR/pandora_agents/unix/${REBRANDING}_agent ]; then cp $CI_PROJECT_DIR/pandora_agents/unix/pandora_agent $CI_PROJECT_DIR/pandora_agents/unix/${REBRANDING}_agent ; fi
|
||||
- sed -i "s/pandora/$REBRANDING/g" $CI_PROJECT_DIR/pandora_agents/unix/${REBRANDING}_agent
|
||||
- if [ ! -e $CI_PROJECT_DIR/pandora_agents/unix/${REBRANDING}_agent_exec ]; then cp $CI_PROJECT_DIR/pandora_agents/unix/pandora_agent_exec $CI_PROJECT_DIR/pandora_agents/unix/${REBRANDING}_agent_exec ; fi
|
||||
- if [ ! -e $CI_PROJECT_DIR/pandora_agents/unix/${REBRANDING}_revent ]; then cp $CI_PROJECT_DIR/pandora_agents/unix/pandora_revent $CI_PROJECT_DIR/pandora_agents/unix/${REBRANDING}_revent ; fi
|
||||
- if [ ! -e $CI_PROJECT_DIR/pandora_agents/unix/${REBRANDING}_agent_logrotate ]; then cp $CI_PROJECT_DIR/pandora_agents/unix/pandora_agent_logrotate $CI_PROJECT_DIR/pandora_agents/unix/${REBRANDING}_agent_logrotate ; fi
|
||||
- sed -i "s/_PRODUCT_/$REBRANDING/g" $CI_PROJECT_DIR/pandora_server/Makefile.PL
|
||||
- sed -i "s/TENTACLE_USER=\"pandora\"/TENTACLE_USER=\"$REBRANDING\"/g" $CI_PROJECT_DIR/pandora_server/util/tentacle_serverd
|
||||
- docker pull pandorafms/pandorafms-base:rocky8.5
|
||||
- docker run --rm -e REBRANDING="$REBRANDING" -h pandorafms -t -v "$CI_PROJECT_DIR:/tmp/pandorafms" pandorafms/pandorafms-base:rocky8.5 /tmp/pandorafms/tests/test.sh
|
||||
|
||||
test_php_legacy:
|
||||
stage: test
|
||||
before_script:
|
||||
- df -h | grep instaladores | awk '{print $NF}' |xargs umount >/dev/null 2>&1 || true
|
||||
script:
|
||||
- docker pull pandorafms/pandorafms-base:centos7
|
||||
- docker run --rm -h pandorafms -t -v "$CI_PROJECT_DIR:/tmp/pandorafms" pandorafms/pandorafms-base:centos7 /tmp/pandorafms/tests/test_legacy.sh
|
||||
|
@ -2,7 +2,6 @@
|
||||
|
||||

|
||||
|
||||
|
||||
With more than 50,000 customer installations across the five continents, Pandora FMS is an out-of-the-box monitoring solution: profitable and scalable, covering most infrastructure deployment options.
|
||||
|
||||
Pandora FMS gives you the agility to find and solve problems quickly, scaling them so they can be derived from any source, on-premise, multi cloud or both of them mixed. Now you have that capability across your entire IT stack and analytics to find any problem, even the ones that are hard to find.
|
||||
|
@ -1,11 +1,12 @@
|
||||
FROM pandorafms/pandorafms-base
|
||||
FROM pandorafms/pandorafms-base:centos7
|
||||
|
||||
# Build variables.
|
||||
ARG BRANCH=develop
|
||||
ARG DB_PASS=pandora
|
||||
|
||||
# Clone the Pandora FMS repo.
|
||||
RUN git clone --depth 1 -b "$BRANCH" https://github.com/pandorafms/pandorafms.git /tmp/pandorafms
|
||||
RUN git clone --depth 1 -b "$BRANCH" https://github.com/pandorafms/pandorafms.git /tmp/pandorafms || \
|
||||
git clone --depth 1 -b develop https://github.com/pandorafms/pandorafms.git /tmp/pandorafms
|
||||
|
||||
# Install the Pandora FMS Server.
|
||||
RUN cd /tmp/pandorafms/pandora_server && \
|
||||
@ -21,21 +22,27 @@ RUN cd /tmp/pandorafms/pandora_agents/unix && \
|
||||
RUN sed -i "s/#ServerName.*/ServerName localhost:80/" /etc/httpd/conf/httpd.conf
|
||||
|
||||
# Install the Pandora FMS Console.
|
||||
RUN service mysqld start && \
|
||||
/usr/bin/mysqladmin -u root password "$DB_PASS" && \
|
||||
service httpd start && \
|
||||
cp -r /tmp/pandorafms/pandora_console /var/www/html && \
|
||||
chown -R apache.apache /var/www/html/pandora_console/ && \
|
||||
python /tmp/pandorafms/tests/install_console.py
|
||||
RUN rm -rf /var/lib/mysql && mkdir -p /var/lib/mysql && \
|
||||
mkdir -p /var/log/mysql/ && chown mysql. /var/log/mysql && \
|
||||
chown mysql. -R /var/lib/mysql && \
|
||||
sudo -u mysql mysqld --initialize --explicit_defaults_for_timestamp && \
|
||||
sudo -u mysql mysqld --daemonize & \
|
||||
sleep 50 && \
|
||||
mysql_default_pass=$(cat /var/log/mysqld.log | grep "temporary password" | awk '{print $NF}') && \
|
||||
mysqladmin -u root -p"$mysql_default_pass" --user=root password 'pandora' && \
|
||||
httpd -k start && \
|
||||
cp -r /tmp/pandorafms/pandora_console /var/www/html && \
|
||||
chown -R apache.apache /var/www/html/pandora_console/ && \
|
||||
python /tmp/pandorafms/tests/install_console.py
|
||||
|
||||
# Redirect HTTP requests to / to the Pandora FMS Console.
|
||||
RUN echo '<meta http-equiv="refresh" content="0;url=/pandora_console">' > /var/www/html/index.html
|
||||
|
||||
# Create the entrypoint script.
|
||||
RUN echo -e '#/bin/bash\n \
|
||||
service mysqld start &&\n \
|
||||
service httpd start &&\n \
|
||||
service crond start &&\n \
|
||||
sudo -u mysql mysqld --daemonize &&\n \
|
||||
httpd -k start &&\n \
|
||||
/usr/sbin/crond &&\n \
|
||||
/etc/init.d/pandora_agent_daemon start && \
|
||||
/etc/init.d/pandora_server start && \
|
||||
tail -f /var/log/pandora/pandora_server.log' \
|
||||
|
@ -1,5 +1,5 @@
|
||||
package: pandorafms-agent-unix
|
||||
Version: 7.0NG.760-220217
|
||||
Version: 7.0NG.760-220310
|
||||
Architecture: all
|
||||
Priority: optional
|
||||
Section: admin
|
||||
|
@ -14,7 +14,7 @@
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
pandora_version="7.0NG.760-220217"
|
||||
pandora_version="7.0NG.760-220310"
|
||||
|
||||
echo "Test if you has the tools for to make the packages."
|
||||
whereis dpkg-deb | cut -d":" -f2 | grep dpkg-deb > /dev/null
|
||||
|
@ -39,7 +39,7 @@ BEGIN {
|
||||
|
||||
use File::Copy;
|
||||
use Scalar::Util qw(looks_like_number);
|
||||
use lib '/usr/lib/perl5';
|
||||
BEGIN { push @INC, '/usr/lib/perl5'; }
|
||||
|
||||
################################################################################
|
||||
# Erase blank spaces before and after the string
|
||||
@ -312,7 +312,7 @@ BEGIN {
|
||||
$YAML = 1;
|
||||
}
|
||||
|
||||
use lib '/usr/lib/perl5';
|
||||
BEGIN { push @INC, '/usr/lib/perl5'; }
|
||||
|
||||
our @ISA = ("Exporter");
|
||||
our %EXPORT_TAGS = ( 'all' => [ qw( ) ] );
|
||||
@ -1003,7 +1003,7 @@ use IO::Socket;
|
||||
use Sys::Syslog;
|
||||
use Time::Local;
|
||||
|
||||
use lib '/usr/lib/perl5';
|
||||
BEGIN { push @INC, '/usr/lib/perl5'; }
|
||||
|
||||
# Agent XML data
|
||||
my $Xml;
|
||||
@ -1015,7 +1015,7 @@ my $Sem = undef;
|
||||
my $ThreadSem = undef;
|
||||
|
||||
use constant AGENT_VERSION => '7.0NG.760';
|
||||
use constant AGENT_BUILD => '220217';
|
||||
use constant AGENT_BUILD => '220310';
|
||||
|
||||
# Agent log default file size maximum and instances
|
||||
use constant DEFAULT_MAX_LOG_SIZE => 600000;
|
||||
|
@ -3,7 +3,7 @@
|
||||
#
|
||||
%define name pandorafms_agent_unix
|
||||
%define version 7.0NG.760
|
||||
%define release 220217
|
||||
%define release 220310
|
||||
|
||||
Summary: Pandora FMS Linux agent, PERL version
|
||||
Name: %{name}
|
||||
|
@ -3,7 +3,7 @@
|
||||
#
|
||||
%define name pandorafms_agent_unix
|
||||
%define version 7.0NG.760
|
||||
%define release 220217
|
||||
%define release 220310
|
||||
|
||||
Summary: Pandora FMS Linux agent, PERL version
|
||||
Name: %{name}
|
||||
|
@ -42,6 +42,8 @@ pidof_pandora () {
|
||||
elif [ "$OS_NAME" = "SunOS" ]
|
||||
then
|
||||
ZONENAME_CMD="/bin/zonename"
|
||||
# Has to be run from sources. The binary version inserts blanks between
|
||||
# $DAEMON and $PANDORA_PATH.
|
||||
TRUNCATED_DAEMON=`echo "$DAEMON $PANDORA_PATH" | cut -c1-20`
|
||||
if [ -x $ZONENAME_CMD ]
|
||||
then
|
||||
@ -59,7 +61,7 @@ pidof_pandora () {
|
||||
then
|
||||
# Virtuozzo/OpenVZ
|
||||
local _pid _ctid _pids
|
||||
_pids=`ps -Af | grep "$DAEMON $PANDORA_PATH" | grep -v grep | awk '{ print $2 }'`
|
||||
_pids=`ps -Af | grep "$DAEMON" | grep "$PANDORA_PATH" | grep -v grep | awk '{ print $2 }'`
|
||||
[ "$_pids" ] && for _pid in $_pids
|
||||
do
|
||||
_ctid=`/usr/sbin/vzpid $_pid | awk '$1 == '$_pid' { print $2 }'`
|
||||
@ -71,9 +73,9 @@ pidof_pandora () {
|
||||
done
|
||||
elif [ "$OS_NAME" = "AIX" ]; then
|
||||
# AIX
|
||||
PANDORA_PID=`ps -ef | grep "$DAEMON $PANDORA_PATH" | grep -v grep | awk '{ print $2 }'`
|
||||
PANDORA_PID=`ps -ef | grep "$DAEMON" | grep "$PANDORA_PATH" | grep -v grep | awk '{ print $2 }'`
|
||||
else
|
||||
PANDORA_PID=`ps -Afw | grep "$DAEMON $PANDORA_PATH" | grep -v grep | awk '{ print $2 }'`
|
||||
PANDORA_PID=`ps -Afw | grep "$DAEMON" | grep "$PANDORA_PATH" | grep -v grep | awk '{ print $2 }'`
|
||||
fi
|
||||
|
||||
echo $PANDORA_PID
|
||||
|
@ -10,7 +10,7 @@
|
||||
# **********************************************************************
|
||||
|
||||
PI_VERSION="7.0NG.760"
|
||||
PI_BUILD="220217"
|
||||
PI_BUILD="220310"
|
||||
OS_NAME=`uname -s`
|
||||
|
||||
FORCE=0
|
||||
|
@ -14,7 +14,7 @@ use strict;
|
||||
use LWP::Simple;
|
||||
use LWP::UserAgent;
|
||||
use MIME::Base64;
|
||||
use lib '/usr/lib/perl5';
|
||||
BEGIN { push @INC, '/usr/lib/perl5'; }
|
||||
use PandoraFMS::Tools;
|
||||
|
||||
# Init
|
||||
|
@ -186,7 +186,7 @@ UpgradeApplicationID
|
||||
{}
|
||||
|
||||
Version
|
||||
{220217}
|
||||
{220310}
|
||||
|
||||
ViewReadme
|
||||
{Yes}
|
||||
|
@ -11,7 +11,7 @@ use strict;
|
||||
use warnings;
|
||||
|
||||
use File::Basename;
|
||||
use lib '/usr/lib/perl5';
|
||||
BEGIN { push @INC, '/usr/lib/perl5'; }
|
||||
use PandoraFMS::PluginTools;
|
||||
use PandoraFMS::Omnishell;
|
||||
|
||||
|
@ -30,7 +30,7 @@ using namespace Pandora;
|
||||
using namespace Pandora_Strutils;
|
||||
|
||||
#define PATH_SIZE _MAX_PATH+1
|
||||
#define PANDORA_VERSION ("7.0NG.760 Build 220217")
|
||||
#define PANDORA_VERSION ("7.0NG.760 Build 220310")
|
||||
|
||||
string pandora_path;
|
||||
string pandora_dir;
|
||||
|
@ -11,7 +11,7 @@ BEGIN
|
||||
VALUE "LegalCopyright", "Artica ST"
|
||||
VALUE "OriginalFilename", "PandoraAgent.exe"
|
||||
VALUE "ProductName", "Pandora FMS Windows Agent"
|
||||
VALUE "ProductVersion", "(7.0NG.760(Build 220217))"
|
||||
VALUE "ProductVersion", "(7.0NG.760(Build 220310))"
|
||||
VALUE "FileVersion", "1.0.0.0"
|
||||
END
|
||||
END
|
||||
|
@ -1,5 +1,5 @@
|
||||
package: pandorafms-console
|
||||
Version: 7.0NG.760-220217
|
||||
Version: 7.0NG.760-220310
|
||||
Architecture: all
|
||||
Priority: optional
|
||||
Section: admin
|
||||
|
@ -14,7 +14,7 @@
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
pandora_version="7.0NG.760-220217"
|
||||
pandora_version="7.0NG.760-220310"
|
||||
|
||||
package_pear=0
|
||||
package_pandora=1
|
||||
|
@ -7,8 +7,13 @@
|
||||
"email": "info@artica.es"
|
||||
}
|
||||
],
|
||||
"config": {
|
||||
"platform": {
|
||||
"php": "7.2.0"
|
||||
}
|
||||
},
|
||||
"require": {
|
||||
"mpdf/mpdf": "^7.1",
|
||||
"mpdf/mpdf": "^8.0.15",
|
||||
"swiftmailer/swiftmailer": "^6.0"
|
||||
},
|
||||
"autoload": {
|
||||
|
715
pandora_console/composer.lock
generated
715
pandora_console/composer.lock
generated
@ -4,34 +4,35 @@
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "18364e5cd8c79657279985942190b4a7",
|
||||
"content-hash": "1ca1e8936d9ffb13f23a5b5cefbf02ad",
|
||||
"packages": [
|
||||
{
|
||||
"name": "doctrine/lexer",
|
||||
"version": "v1.0.1",
|
||||
"version": "1.2.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/doctrine/lexer.git",
|
||||
"reference": "83893c552fd2045dd78aef794c31e694c37c0b8c"
|
||||
"reference": "9c50f840f257bbb941e6f4a0e94ccf5db5c3f76c"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/doctrine/lexer/zipball/83893c552fd2045dd78aef794c31e694c37c0b8c",
|
||||
"reference": "83893c552fd2045dd78aef794c31e694c37c0b8c",
|
||||
"url": "https://api.github.com/repos/doctrine/lexer/zipball/9c50f840f257bbb941e6f4a0e94ccf5db5c3f76c",
|
||||
"reference": "9c50f840f257bbb941e6f4a0e94ccf5db5c3f76c",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.2"
|
||||
"php": "^7.1 || ^8.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/coding-standard": "^9.0",
|
||||
"phpstan/phpstan": "1.3",
|
||||
"phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
|
||||
"vimeo/psalm": "^4.11"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.0.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-0": {
|
||||
"Doctrine\\Common\\Lexer\\": "lib/"
|
||||
"psr-4": {
|
||||
"Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
@ -39,49 +40,71 @@
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Roman Borschel",
|
||||
"email": "roman@code-factory.org"
|
||||
},
|
||||
{
|
||||
"name": "Guilherme Blanco",
|
||||
"email": "guilhermeblanco@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Roman Borschel",
|
||||
"email": "roman@code-factory.org"
|
||||
},
|
||||
{
|
||||
"name": "Johannes Schmitt",
|
||||
"email": "schmittjoh@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "Base library for a lexer that can be used in Top-Down, Recursive Descent Parsers.",
|
||||
"homepage": "http://www.doctrine-project.org",
|
||||
"description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.",
|
||||
"homepage": "https://www.doctrine-project.org/projects/lexer.html",
|
||||
"keywords": [
|
||||
"annotations",
|
||||
"docblock",
|
||||
"lexer",
|
||||
"parser"
|
||||
"parser",
|
||||
"php"
|
||||
],
|
||||
"time": "2014-09-09T13:34:57+00:00"
|
||||
"support": {
|
||||
"issues": "https://github.com/doctrine/lexer/issues",
|
||||
"source": "https://github.com/doctrine/lexer/tree/1.2.2"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://www.doctrine-project.org/sponsorship.html",
|
||||
"type": "custom"
|
||||
},
|
||||
{
|
||||
"url": "https://www.patreon.com/phpdoctrine",
|
||||
"type": "patreon"
|
||||
},
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/doctrine%2Flexer",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2022-01-12T08:27:12+00:00"
|
||||
},
|
||||
{
|
||||
"name": "egulias/email-validator",
|
||||
"version": "2.1.6",
|
||||
"version": "3.1.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/egulias/EmailValidator.git",
|
||||
"reference": "0578b32b30b22de3e8664f797cf846fc9246f786"
|
||||
"reference": "ee0db30118f661fb166bcffbf5d82032df484697"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/egulias/EmailValidator/zipball/0578b32b30b22de3e8664f797cf846fc9246f786",
|
||||
"reference": "0578b32b30b22de3e8664f797cf846fc9246f786",
|
||||
"url": "https://api.github.com/repos/egulias/EmailValidator/zipball/ee0db30118f661fb166bcffbf5d82032df484697",
|
||||
"reference": "ee0db30118f661fb166bcffbf5d82032df484697",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"doctrine/lexer": "^1.0.1",
|
||||
"php": ">= 5.5"
|
||||
"doctrine/lexer": "^1.2",
|
||||
"php": ">=7.2",
|
||||
"symfony/polyfill-intl-idn": "^1.15"
|
||||
},
|
||||
"require-dev": {
|
||||
"dominicsayers/isemail": "dev-master",
|
||||
"phpunit/phpunit": "^4.8.35||^5.7||^6.0",
|
||||
"satooshi/php-coveralls": "^1.0.1"
|
||||
"php-coveralls/php-coveralls": "^2.2",
|
||||
"phpunit/phpunit": "^8.5.8|^9.3.3",
|
||||
"vimeo/psalm": "^4"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation"
|
||||
@ -89,12 +112,12 @@
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "2.0.x-dev"
|
||||
"dev-master": "3.0.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Egulias\\EmailValidator\\": "EmailValidator"
|
||||
"Egulias\\EmailValidator\\": "src"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
@ -115,36 +138,47 @@
|
||||
"validation",
|
||||
"validator"
|
||||
],
|
||||
"time": "2018-09-25T20:47:26+00:00"
|
||||
"support": {
|
||||
"issues": "https://github.com/egulias/EmailValidator/issues",
|
||||
"source": "https://github.com/egulias/EmailValidator/tree/3.1.2"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://github.com/egulias",
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2021-10-11T09:18:27+00:00"
|
||||
},
|
||||
{
|
||||
"name": "mpdf/mpdf",
|
||||
"version": "v7.1.5",
|
||||
"version": "v8.0.15",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/mpdf/mpdf.git",
|
||||
"reference": "2ed29c3a59fa23e77052e9d7fa7e31c707fb7502"
|
||||
"reference": "d8a5294a6cc2e814c4157aecc8d7ac25014b18ed"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/mpdf/mpdf/zipball/2ed29c3a59fa23e77052e9d7fa7e31c707fb7502",
|
||||
"reference": "2ed29c3a59fa23e77052e9d7fa7e31c707fb7502",
|
||||
"url": "https://api.github.com/repos/mpdf/mpdf/zipball/d8a5294a6cc2e814c4157aecc8d7ac25014b18ed",
|
||||
"reference": "d8a5294a6cc2e814c4157aecc8d7ac25014b18ed",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-gd": "*",
|
||||
"ext-mbstring": "*",
|
||||
"myclabs/deep-copy": "^1.7",
|
||||
"paragonie/random_compat": "^1.4|^2.0|9.99.99",
|
||||
"php": "^5.6 || ~7.0.0 || ~7.1.0 || ~7.2.0",
|
||||
"psr/log": "^1.0",
|
||||
"setasign/fpdi": "1.6.*"
|
||||
"paragonie/random_compat": "^1.4|^2.0|^9.99.99",
|
||||
"php": "^5.6 || ^7.0 || ~8.0.0 || ~8.1.0",
|
||||
"psr/log": "^1.0 || ^2.0",
|
||||
"setasign/fpdi": "^2.1"
|
||||
},
|
||||
"require-dev": {
|
||||
"mockery/mockery": "^0.9.5",
|
||||
"phpunit/phpunit": "^5.0",
|
||||
"squizlabs/php_codesniffer": "^2.7.0",
|
||||
"tracy/tracy": "^2.4"
|
||||
"mockery/mockery": "^1.3.0",
|
||||
"mpdf/qrcode": "^1.1.0",
|
||||
"squizlabs/php_codesniffer": "^3.5.0",
|
||||
"tracy/tracy": "^2.4",
|
||||
"yoast/phpunit-polyfills": "^1.0"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-bcmath": "Needed for generation of some types of barcodes",
|
||||
@ -152,11 +186,6 @@
|
||||
"ext-zlib": "Needed for compression of embedded resources, such as fonts"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-development": "7.0-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Mpdf\\": "src/"
|
||||
@ -176,36 +205,47 @@
|
||||
"role": "Developer (retired)"
|
||||
}
|
||||
],
|
||||
"description": "A PHP class to generate PDF files from HTML with Unicode/UTF-8 and CJK support",
|
||||
"description": "PHP library generating PDF files from UTF-8 encoded HTML",
|
||||
"homepage": "https://mpdf.github.io",
|
||||
"keywords": [
|
||||
"pdf",
|
||||
"php",
|
||||
"utf-8"
|
||||
],
|
||||
"time": "2018-09-19T09:58:39+00:00"
|
||||
"support": {
|
||||
"docs": "http://mpdf.github.io",
|
||||
"issues": "https://github.com/mpdf/mpdf/issues",
|
||||
"source": "https://github.com/mpdf/mpdf"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://www.paypal.me/mpdf",
|
||||
"type": "custom"
|
||||
}
|
||||
],
|
||||
"time": "2021-11-10T08:15:22+00:00"
|
||||
},
|
||||
{
|
||||
"name": "myclabs/deep-copy",
|
||||
"version": "1.7.0",
|
||||
"version": "1.10.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/myclabs/DeepCopy.git",
|
||||
"reference": "3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e"
|
||||
"reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e",
|
||||
"reference": "3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e",
|
||||
"url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/776f831124e9c62e1a2c601ecc52e776d8bb7220",
|
||||
"reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^5.6 || ^7.0"
|
||||
"php": "^7.1 || ^8.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/collections": "^1.0",
|
||||
"doctrine/common": "^2.6",
|
||||
"phpunit/phpunit": "^4.1"
|
||||
"phpunit/phpunit": "^7.1"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
@ -228,24 +268,34 @@
|
||||
"object",
|
||||
"object graph"
|
||||
],
|
||||
"time": "2017-10-19T19:58:43+00:00"
|
||||
"support": {
|
||||
"issues": "https://github.com/myclabs/DeepCopy/issues",
|
||||
"source": "https://github.com/myclabs/DeepCopy/tree/1.10.2"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2020-11-13T09:40:50+00:00"
|
||||
},
|
||||
{
|
||||
"name": "paragonie/random_compat",
|
||||
"version": "v9.99.99",
|
||||
"version": "v9.99.100",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/paragonie/random_compat.git",
|
||||
"reference": "84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95"
|
||||
"reference": "996434e5492cb4c3edcb9168db6fbb1359ef965a"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/paragonie/random_compat/zipball/84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95",
|
||||
"reference": "84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95",
|
||||
"url": "https://api.github.com/repos/paragonie/random_compat/zipball/996434e5492cb4c3edcb9168db6fbb1359ef965a",
|
||||
"reference": "996434e5492cb4c3edcb9168db6fbb1359ef965a",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7"
|
||||
"php": ">= 7"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "4.*|5.*",
|
||||
@ -273,20 +323,25 @@
|
||||
"pseudorandom",
|
||||
"random"
|
||||
],
|
||||
"time": "2018-07-02T15:55:56+00:00"
|
||||
"support": {
|
||||
"email": "info@paragonie.com",
|
||||
"issues": "https://github.com/paragonie/random_compat/issues",
|
||||
"source": "https://github.com/paragonie/random_compat"
|
||||
},
|
||||
"time": "2020-10-15T08:29:30+00:00"
|
||||
},
|
||||
{
|
||||
"name": "psr/log",
|
||||
"version": "1.0.2",
|
||||
"version": "1.1.4",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/php-fig/log.git",
|
||||
"reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d"
|
||||
"reference": "d49695b909c3b7628b6289db5479a1c204601f11"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/php-fig/log/zipball/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d",
|
||||
"reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d",
|
||||
"url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11",
|
||||
"reference": "d49695b909c3b7628b6289db5479a1c204601f11",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -295,7 +350,7 @@
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.0.x-dev"
|
||||
"dev-master": "1.1.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
@ -310,7 +365,7 @@
|
||||
"authors": [
|
||||
{
|
||||
"name": "PHP-FIG",
|
||||
"homepage": "http://www.php-fig.org/"
|
||||
"homepage": "https://www.php-fig.org/"
|
||||
}
|
||||
],
|
||||
"description": "Common interface for logging libraries",
|
||||
@ -320,36 +375,47 @@
|
||||
"psr",
|
||||
"psr-3"
|
||||
],
|
||||
"time": "2016-10-10T12:19:37+00:00"
|
||||
"support": {
|
||||
"source": "https://github.com/php-fig/log/tree/1.1.4"
|
||||
},
|
||||
"time": "2021-05-03T11:20:27+00:00"
|
||||
},
|
||||
{
|
||||
"name": "setasign/fpdi",
|
||||
"version": "1.6.2",
|
||||
"version": "v2.3.6",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/Setasign/FPDI.git",
|
||||
"reference": "a6ad58897a6d97cc2d2cd2adaeda343b25a368ea"
|
||||
"reference": "6231e315f73e4f62d72b73f3d6d78ff0eed93c31"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/Setasign/FPDI/zipball/a6ad58897a6d97cc2d2cd2adaeda343b25a368ea",
|
||||
"reference": "a6ad58897a6d97cc2d2cd2adaeda343b25a368ea",
|
||||
"url": "https://api.github.com/repos/Setasign/FPDI/zipball/6231e315f73e4f62d72b73f3d6d78ff0eed93c31",
|
||||
"reference": "6231e315f73e4f62d72b73f3d6d78ff0eed93c31",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-zlib": "*",
|
||||
"php": "^5.6 || ^7.0 || ^8.0"
|
||||
},
|
||||
"conflict": {
|
||||
"setasign/tfpdf": "<1.31"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "~5.7",
|
||||
"setasign/fpdf": "~1.8",
|
||||
"setasign/tfpdf": "1.31",
|
||||
"squizlabs/php_codesniffer": "^3.5",
|
||||
"tecnickcom/tcpdf": "~6.2"
|
||||
},
|
||||
"suggest": {
|
||||
"setasign/fpdf": "FPDI will extend this class but as it is also possible to use \"tecnickcom/tcpdf\" as an alternative there's no fixed dependency configured.",
|
||||
"setasign/fpdi-fpdf": "Use this package to automatically evaluate dependencies to FPDF.",
|
||||
"setasign/fpdi-tcpdf": "Use this package to automatically evaluate dependencies to TCPDF."
|
||||
"setasign/fpdf": "FPDI will extend this class but as it is also possible to use TCPDF or tFPDF as an alternative. There's no fixed dependency configured."
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"classmap": [
|
||||
"filters/",
|
||||
"fpdi.php",
|
||||
"fpdf_tpl.php",
|
||||
"fpdi_pdf_parser.php",
|
||||
"pdf_context.php"
|
||||
]
|
||||
"psr-4": {
|
||||
"setasign\\Fpdi\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
@ -360,6 +426,11 @@
|
||||
"name": "Jan Slabon",
|
||||
"email": "jan.slabon@setasign.com",
|
||||
"homepage": "https://www.setasign.com"
|
||||
},
|
||||
{
|
||||
"name": "Maximilian Kresse",
|
||||
"email": "maximilian.kresse@setasign.com",
|
||||
"homepage": "https://www.setasign.com"
|
||||
}
|
||||
],
|
||||
"description": "FPDI is a collection of PHP classes facilitating developers to read pages from existing PDF documents and use them as templates in FPDF. Because it is also possible to use FPDI with TCPDF, there are no fixed dependencies defined. Please see suggestions for packages which evaluates the dependencies automatically.",
|
||||
@ -369,38 +440,50 @@
|
||||
"fpdi",
|
||||
"pdf"
|
||||
],
|
||||
"time": "2017-05-11T14:25:49+00:00"
|
||||
"support": {
|
||||
"issues": "https://github.com/Setasign/FPDI/issues",
|
||||
"source": "https://github.com/Setasign/FPDI/tree/v2.3.6"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/setasign/fpdi",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2021-02-11T11:37:01+00:00"
|
||||
},
|
||||
{
|
||||
"name": "swiftmailer/swiftmailer",
|
||||
"version": "v6.1.3",
|
||||
"version": "v6.3.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/swiftmailer/swiftmailer.git",
|
||||
"reference": "8ddcb66ac10c392d3beb54829eef8ac1438595f4"
|
||||
"reference": "8a5d5072dca8f48460fce2f4131fcc495eec654c"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/8ddcb66ac10c392d3beb54829eef8ac1438595f4",
|
||||
"reference": "8ddcb66ac10c392d3beb54829eef8ac1438595f4",
|
||||
"url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/8a5d5072dca8f48460fce2f4131fcc495eec654c",
|
||||
"reference": "8a5d5072dca8f48460fce2f4131fcc495eec654c",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"egulias/email-validator": "~2.0",
|
||||
"php": ">=7.0.0"
|
||||
"egulias/email-validator": "^2.0|^3.1",
|
||||
"php": ">=7.0.0",
|
||||
"symfony/polyfill-iconv": "^1.0",
|
||||
"symfony/polyfill-intl-idn": "^1.10",
|
||||
"symfony/polyfill-mbstring": "^1.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"mockery/mockery": "~0.9.1",
|
||||
"symfony/phpunit-bridge": "~3.3@dev"
|
||||
"mockery/mockery": "^1.0",
|
||||
"symfony/phpunit-bridge": "^4.4|^5.4"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-intl": "Needed to support internationalized email addresses",
|
||||
"true/punycode": "Needed to support internationalized email addresses, if ext-intl is not installed"
|
||||
"ext-intl": "Needed to support internationalized email addresses"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "6.1-dev"
|
||||
"dev-master": "6.2-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
@ -428,7 +511,435 @@
|
||||
"mail",
|
||||
"mailer"
|
||||
],
|
||||
"time": "2018-09-11T07:12:52+00:00"
|
||||
"support": {
|
||||
"issues": "https://github.com/swiftmailer/swiftmailer/issues",
|
||||
"source": "https://github.com/swiftmailer/swiftmailer/tree/v6.3.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://github.com/fabpot",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/swiftmailer/swiftmailer",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"abandoned": "symfony/mailer",
|
||||
"time": "2021-10-18T15:26:12+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-iconv",
|
||||
"version": "v1.24.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-iconv.git",
|
||||
"reference": "f1aed619e28cb077fc83fac8c4c0383578356e40"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/f1aed619e28cb077fc83fac8c4c0383578356e40",
|
||||
"reference": "f1aed619e28cb077fc83fac8c4c0383578356e40",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1"
|
||||
},
|
||||
"provide": {
|
||||
"ext-iconv": "*"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-iconv": "For best performance"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.23-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
"url": "https://github.com/symfony/polyfill"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Polyfill\\Iconv\\": ""
|
||||
},
|
||||
"files": [
|
||||
"bootstrap.php"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Nicolas Grekas",
|
||||
"email": "p@tchwork.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony polyfill for the Iconv extension",
|
||||
"homepage": "https://symfony.com",
|
||||
"keywords": [
|
||||
"compatibility",
|
||||
"iconv",
|
||||
"polyfill",
|
||||
"portable",
|
||||
"shim"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/polyfill-iconv/tree/v1.24.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://symfony.com/sponsor",
|
||||
"type": "custom"
|
||||
},
|
||||
{
|
||||
"url": "https://github.com/fabpot",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2022-01-04T09:04:05+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-intl-idn",
|
||||
"version": "v1.24.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-intl-idn.git",
|
||||
"reference": "749045c69efb97c70d25d7463abba812e91f3a44"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/749045c69efb97c70d25d7463abba812e91f3a44",
|
||||
"reference": "749045c69efb97c70d25d7463abba812e91f3a44",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1",
|
||||
"symfony/polyfill-intl-normalizer": "^1.10",
|
||||
"symfony/polyfill-php72": "^1.10"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-intl": "For best performance"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.23-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
"url": "https://github.com/symfony/polyfill"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Polyfill\\Intl\\Idn\\": ""
|
||||
},
|
||||
"files": [
|
||||
"bootstrap.php"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Laurent Bassin",
|
||||
"email": "laurent@bassin.info"
|
||||
},
|
||||
{
|
||||
"name": "Trevor Rowbotham",
|
||||
"email": "trevor.rowbotham@pm.me"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions",
|
||||
"homepage": "https://symfony.com",
|
||||
"keywords": [
|
||||
"compatibility",
|
||||
"idn",
|
||||
"intl",
|
||||
"polyfill",
|
||||
"portable",
|
||||
"shim"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.24.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://symfony.com/sponsor",
|
||||
"type": "custom"
|
||||
},
|
||||
{
|
||||
"url": "https://github.com/fabpot",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2021-09-14T14:02:44+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-intl-normalizer",
|
||||
"version": "v1.24.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-intl-normalizer.git",
|
||||
"reference": "8590a5f561694770bdcd3f9b5c69dde6945028e8"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8590a5f561694770bdcd3f9b5c69dde6945028e8",
|
||||
"reference": "8590a5f561694770bdcd3f9b5c69dde6945028e8",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-intl": "For best performance"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.23-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
"url": "https://github.com/symfony/polyfill"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Polyfill\\Intl\\Normalizer\\": ""
|
||||
},
|
||||
"files": [
|
||||
"bootstrap.php"
|
||||
],
|
||||
"classmap": [
|
||||
"Resources/stubs"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Nicolas Grekas",
|
||||
"email": "p@tchwork.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony polyfill for intl's Normalizer class and related functions",
|
||||
"homepage": "https://symfony.com",
|
||||
"keywords": [
|
||||
"compatibility",
|
||||
"intl",
|
||||
"normalizer",
|
||||
"polyfill",
|
||||
"portable",
|
||||
"shim"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.24.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://symfony.com/sponsor",
|
||||
"type": "custom"
|
||||
},
|
||||
{
|
||||
"url": "https://github.com/fabpot",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2021-02-19T12:13:01+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-mbstring",
|
||||
"version": "v1.24.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-mbstring.git",
|
||||
"reference": "0abb51d2f102e00a4eefcf46ba7fec406d245825"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/0abb51d2f102e00a4eefcf46ba7fec406d245825",
|
||||
"reference": "0abb51d2f102e00a4eefcf46ba7fec406d245825",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1"
|
||||
},
|
||||
"provide": {
|
||||
"ext-mbstring": "*"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-mbstring": "For best performance"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.23-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
"url": "https://github.com/symfony/polyfill"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Polyfill\\Mbstring\\": ""
|
||||
},
|
||||
"files": [
|
||||
"bootstrap.php"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Nicolas Grekas",
|
||||
"email": "p@tchwork.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony polyfill for the Mbstring extension",
|
||||
"homepage": "https://symfony.com",
|
||||
"keywords": [
|
||||
"compatibility",
|
||||
"mbstring",
|
||||
"polyfill",
|
||||
"portable",
|
||||
"shim"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/polyfill-mbstring/tree/v1.24.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://symfony.com/sponsor",
|
||||
"type": "custom"
|
||||
},
|
||||
{
|
||||
"url": "https://github.com/fabpot",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2021-11-30T18:21:41+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-php72",
|
||||
"version": "v1.24.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-php72.git",
|
||||
"reference": "9a142215a36a3888e30d0a9eeea9766764e96976"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/9a142215a36a3888e30d0a9eeea9766764e96976",
|
||||
"reference": "9a142215a36a3888e30d0a9eeea9766764e96976",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.23-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
"url": "https://github.com/symfony/polyfill"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Polyfill\\Php72\\": ""
|
||||
},
|
||||
"files": [
|
||||
"bootstrap.php"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Nicolas Grekas",
|
||||
"email": "p@tchwork.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions",
|
||||
"homepage": "https://symfony.com",
|
||||
"keywords": [
|
||||
"compatibility",
|
||||
"polyfill",
|
||||
"portable",
|
||||
"shim"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/polyfill-php72/tree/v1.24.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://symfony.com/sponsor",
|
||||
"type": "custom"
|
||||
},
|
||||
{
|
||||
"url": "https://github.com/fabpot",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2021-05-27T09:17:38+00:00"
|
||||
}
|
||||
],
|
||||
"packages-dev": [],
|
||||
@ -438,5 +949,9 @@
|
||||
"prefer-stable": false,
|
||||
"prefer-lowest": false,
|
||||
"platform": [],
|
||||
"platform-dev": []
|
||||
"platform-dev": [],
|
||||
"platform-overrides": {
|
||||
"php": "7.2.0"
|
||||
},
|
||||
"plugin-api-version": "2.2.0"
|
||||
}
|
||||
|
File diff suppressed because one or more lines are too long
@ -0,0 +1,515 @@
|
||||
[
|
||||
[{ "1613": 0, "1616": 1, "1621": 2 }],
|
||||
[
|
||||
{
|
||||
"1557": 0,
|
||||
"1611": 1,
|
||||
"1612": 2,
|
||||
"1614": 3,
|
||||
"1615": 4,
|
||||
"1617": 5,
|
||||
"1618": 6,
|
||||
"1619": 7,
|
||||
"1620": 8,
|
||||
"1623": 9,
|
||||
"1626": 10,
|
||||
"1648": 11,
|
||||
"57990": 12,
|
||||
"57991": 13,
|
||||
"57992": 14,
|
||||
"57993": 15,
|
||||
"57994": 16,
|
||||
"57995": 17,
|
||||
"57996": 18,
|
||||
"57997": 19
|
||||
}
|
||||
],
|
||||
[{ "3768": 0, "3769": 1 }],
|
||||
[{ "3784": 0, "3785": 1, "3786": 2, "3787": 3, "3788": 4, "3789": 5 }],
|
||||
[
|
||||
{
|
||||
"790": 0,
|
||||
"791": 1,
|
||||
"792": 2,
|
||||
"793": 3,
|
||||
"796": 4,
|
||||
"797": 5,
|
||||
"798": 6,
|
||||
"799": 7,
|
||||
"800": 8,
|
||||
"803": 9,
|
||||
"804": 10,
|
||||
"805": 11,
|
||||
"806": 12,
|
||||
"809": 13,
|
||||
"810": 14,
|
||||
"811": 15,
|
||||
"812": 16,
|
||||
"813": 17,
|
||||
"814": 18,
|
||||
"815": 19,
|
||||
"816": 20,
|
||||
"817": 21,
|
||||
"825": 22,
|
||||
"826": 23,
|
||||
"827": 24,
|
||||
"828": 25,
|
||||
"839": 26,
|
||||
"840": 27,
|
||||
"841": 28,
|
||||
"845": 29,
|
||||
"846": 30,
|
||||
"851": 31,
|
||||
"858": 32
|
||||
},
|
||||
{
|
||||
"768": 0,
|
||||
"769": 1,
|
||||
"770": 2,
|
||||
"771": 3,
|
||||
"772": 4,
|
||||
"773": 5,
|
||||
"774": 6,
|
||||
"775": 7,
|
||||
"776": 8,
|
||||
"777": 9,
|
||||
"778": 10,
|
||||
"779": 11,
|
||||
"780": 12,
|
||||
"781": 13,
|
||||
"782": 14,
|
||||
"783": 15,
|
||||
"784": 16,
|
||||
"785": 17,
|
||||
"829": 18,
|
||||
"831": 19,
|
||||
"832": 20,
|
||||
"833": 21,
|
||||
"834": 22,
|
||||
"836": 23,
|
||||
"838": 24,
|
||||
"842": 25,
|
||||
"843": 26,
|
||||
"844": 27,
|
||||
"849": 28,
|
||||
"850": 29,
|
||||
"855": 30,
|
||||
"7620": 31,
|
||||
"7621": 32,
|
||||
"7622": 33,
|
||||
"7623": 34,
|
||||
"7624": 35,
|
||||
"7625": 36,
|
||||
"8400": 37,
|
||||
"8401": 38,
|
||||
"8406": 39,
|
||||
"8407": 40,
|
||||
"8411": 41,
|
||||
"8412": 42,
|
||||
"8417": 43,
|
||||
"57895": 44,
|
||||
"57896": 45,
|
||||
"57897": 46,
|
||||
"57898": 47,
|
||||
"57899": 48,
|
||||
"57900": 49,
|
||||
"57901": 50,
|
||||
"57902": 51,
|
||||
"57903": 52,
|
||||
"57904": 53,
|
||||
"57905": 54,
|
||||
"58088": 55
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"1456": 0,
|
||||
"1457": 1,
|
||||
"1458": 2,
|
||||
"1459": 3,
|
||||
"1460": 4,
|
||||
"1461": 5,
|
||||
"1462": 6,
|
||||
"1463": 7,
|
||||
"1464": 8,
|
||||
"1467": 9,
|
||||
"1469": 10,
|
||||
"1479": 11,
|
||||
"1613": 12,
|
||||
"1616": 13,
|
||||
"1621": 14
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"1456": 0,
|
||||
"1457": 1,
|
||||
"1458": 2,
|
||||
"1459": 3,
|
||||
"1460": 4,
|
||||
"1461": 5,
|
||||
"1462": 6,
|
||||
"1463": 7,
|
||||
"1464": 8,
|
||||
"1467": 9,
|
||||
"1469": 10,
|
||||
"1479": 11,
|
||||
"1613": 12,
|
||||
"1616": 13,
|
||||
"1621": 14,
|
||||
"2034": 15
|
||||
}
|
||||
],
|
||||
[{ "1468": 0 }],
|
||||
[
|
||||
{
|
||||
"1471": 0,
|
||||
"1557": 1,
|
||||
"1611": 2,
|
||||
"1612": 3,
|
||||
"1614": 4,
|
||||
"1615": 5,
|
||||
"1617": 6,
|
||||
"1618": 7,
|
||||
"1619": 8,
|
||||
"1620": 9,
|
||||
"1623": 10,
|
||||
"1626": 11,
|
||||
"1648": 12,
|
||||
"64286": 13,
|
||||
"57990": 14,
|
||||
"57991": 15,
|
||||
"57992": 16,
|
||||
"57993": 17,
|
||||
"57994": 18,
|
||||
"57995": 19,
|
||||
"57996": 20,
|
||||
"57997": 21
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"1471": 0,
|
||||
"1557": 1,
|
||||
"1611": 2,
|
||||
"1612": 3,
|
||||
"1614": 4,
|
||||
"1615": 5,
|
||||
"1617": 6,
|
||||
"1618": 7,
|
||||
"1619": 8,
|
||||
"1620": 9,
|
||||
"1623": 10,
|
||||
"1626": 11,
|
||||
"1648": 12,
|
||||
"2027": 13,
|
||||
"2028": 14,
|
||||
"2029": 15,
|
||||
"2030": 16,
|
||||
"2031": 17,
|
||||
"2032": 18,
|
||||
"2033": 19,
|
||||
"2035": 20,
|
||||
"64286": 21,
|
||||
"57990": 22,
|
||||
"57991": 23,
|
||||
"57992": 24,
|
||||
"57993": 25,
|
||||
"57994": 26,
|
||||
"57995": 27,
|
||||
"57996": 28,
|
||||
"57997": 29
|
||||
}
|
||||
],
|
||||
[{ "3768": 0, "3769": 1, "3772": 2 }],
|
||||
[
|
||||
{
|
||||
"3761": 0,
|
||||
"3764": 1,
|
||||
"3765": 2,
|
||||
"3766": 3,
|
||||
"3767": 4,
|
||||
"3771": 5,
|
||||
"3784": 6,
|
||||
"3785": 7,
|
||||
"3786": 8,
|
||||
"3787": 9,
|
||||
"3788": 10,
|
||||
"3789": 11
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"790": 0,
|
||||
"791": 1,
|
||||
"792": 2,
|
||||
"793": 3,
|
||||
"796": 4,
|
||||
"797": 5,
|
||||
"798": 6,
|
||||
"799": 7,
|
||||
"800": 8,
|
||||
"803": 9,
|
||||
"804": 10,
|
||||
"805": 11,
|
||||
"806": 12,
|
||||
"809": 13,
|
||||
"810": 14,
|
||||
"811": 15,
|
||||
"812": 16,
|
||||
"813": 17,
|
||||
"814": 18,
|
||||
"815": 19,
|
||||
"816": 20,
|
||||
"817": 21,
|
||||
"818": 22,
|
||||
"819": 23,
|
||||
"825": 24,
|
||||
"826": 25,
|
||||
"827": 26,
|
||||
"828": 27,
|
||||
"839": 28,
|
||||
"840": 29,
|
||||
"841": 30,
|
||||
"845": 31,
|
||||
"846": 32,
|
||||
"851": 33,
|
||||
"858": 34
|
||||
}
|
||||
],
|
||||
[
|
||||
{ "65057": 0, "65059": 1 },
|
||||
{ "768": 0, "769": 1 },
|
||||
{ "807": 0 },
|
||||
{
|
||||
"790": 0,
|
||||
"791": 1,
|
||||
"792": 2,
|
||||
"793": 3,
|
||||
"796": 4,
|
||||
"797": 5,
|
||||
"798": 6,
|
||||
"799": 7,
|
||||
"800": 8,
|
||||
"803": 9,
|
||||
"804": 10,
|
||||
"805": 11,
|
||||
"806": 12,
|
||||
"809": 13,
|
||||
"810": 14,
|
||||
"811": 15,
|
||||
"812": 16,
|
||||
"813": 17,
|
||||
"814": 18,
|
||||
"815": 19,
|
||||
"816": 20,
|
||||
"817": 21,
|
||||
"818": 22,
|
||||
"819": 23,
|
||||
"825": 24,
|
||||
"826": 25,
|
||||
"827": 26,
|
||||
"828": 27,
|
||||
"839": 28,
|
||||
"840": 29,
|
||||
"841": 30,
|
||||
"845": 31,
|
||||
"846": 32,
|
||||
"851": 33,
|
||||
"858": 34
|
||||
},
|
||||
{
|
||||
"768": 0,
|
||||
"769": 1,
|
||||
"770": 2,
|
||||
"771": 3,
|
||||
"772": 4,
|
||||
"773": 5,
|
||||
"774": 6,
|
||||
"775": 7,
|
||||
"776": 8,
|
||||
"777": 9,
|
||||
"778": 10,
|
||||
"779": 11,
|
||||
"780": 12,
|
||||
"781": 13,
|
||||
"782": 14,
|
||||
"783": 15,
|
||||
"784": 16,
|
||||
"785": 17,
|
||||
"786": 18,
|
||||
"787": 19,
|
||||
"788": 20,
|
||||
"829": 21,
|
||||
"830": 22,
|
||||
"831": 23,
|
||||
"832": 24,
|
||||
"833": 25,
|
||||
"834": 26,
|
||||
"836": 27,
|
||||
"838": 28,
|
||||
"842": 29,
|
||||
"843": 30,
|
||||
"844": 31,
|
||||
"849": 32,
|
||||
"850": 33,
|
||||
"855": 34,
|
||||
"1155": 35,
|
||||
"1156": 36,
|
||||
"1157": 37,
|
||||
"1158": 38,
|
||||
"1159": 39,
|
||||
"7620": 40,
|
||||
"7621": 41,
|
||||
"7622": 42,
|
||||
"7623": 43,
|
||||
"7624": 44,
|
||||
"7625": 45,
|
||||
"8400": 46,
|
||||
"8401": 47,
|
||||
"8406": 48,
|
||||
"8407": 49,
|
||||
"8411": 50,
|
||||
"8412": 51,
|
||||
"8417": 52,
|
||||
"57895": 53,
|
||||
"57896": 54,
|
||||
"57897": 55,
|
||||
"57898": 56,
|
||||
"57899": 57,
|
||||
"57900": 58,
|
||||
"57901": 59,
|
||||
"57902": 60,
|
||||
"57903": 61,
|
||||
"57904": 62,
|
||||
"57905": 63,
|
||||
"58088": 64
|
||||
},
|
||||
{ "808": 0 }
|
||||
],
|
||||
[
|
||||
{
|
||||
"45": 0,
|
||||
"65": 1,
|
||||
"66": 2,
|
||||
"67": 3,
|
||||
"68": 4,
|
||||
"70": 5,
|
||||
"71": 6,
|
||||
"72": 7,
|
||||
"74": 8,
|
||||
"75": 9,
|
||||
"76": 10,
|
||||
"79": 11,
|
||||
"80": 12,
|
||||
"81": 13,
|
||||
"82": 14,
|
||||
"83": 15,
|
||||
"84": 16,
|
||||
"85": 17,
|
||||
"86": 18,
|
||||
"87": 19,
|
||||
"88": 20,
|
||||
"89": 21,
|
||||
"90": 22,
|
||||
"101": 23,
|
||||
"102": 24,
|
||||
"107": 25,
|
||||
"110": 26,
|
||||
"111": 27,
|
||||
"114": 28,
|
||||
"118": 29,
|
||||
"119": 30,
|
||||
"120": 31,
|
||||
"121": 32,
|
||||
"171": 33,
|
||||
"187": 34,
|
||||
"192": 35,
|
||||
"193": 36,
|
||||
"194": 37,
|
||||
"195": 38,
|
||||
"196": 39,
|
||||
"198": 40,
|
||||
"199": 41,
|
||||
"208": 42,
|
||||
"210": 43,
|
||||
"211": 44,
|
||||
"212": 45,
|
||||
"213": 46,
|
||||
"214": 47,
|
||||
"217": 48,
|
||||
"218": 49,
|
||||
"219": 50,
|
||||
"220": 51,
|
||||
"221": 52,
|
||||
"222": 53,
|
||||
"223": 54,
|
||||
"232": 55,
|
||||
"233": 56,
|
||||
"234": 57,
|
||||
"235": 58,
|
||||
"240": 59,
|
||||
"241": 60,
|
||||
"242": 61,
|
||||
"243": 62,
|
||||
"244": 63,
|
||||
"245": 64,
|
||||
"246": 65,
|
||||
"253": 66,
|
||||
"255": 67,
|
||||
"256": 68,
|
||||
"258": 69,
|
||||
"260": 70,
|
||||
"262": 71,
|
||||
"268": 72,
|
||||
"270": 73,
|
||||
"272": 74,
|
||||
"283": 75,
|
||||
"286": 76,
|
||||
"313": 77,
|
||||
"317": 78,
|
||||
"320": 79,
|
||||
"328": 80,
|
||||
"340": 81,
|
||||
"341": 82,
|
||||
"344": 83,
|
||||
"345": 84,
|
||||
"350": 85,
|
||||
"352": 86,
|
||||
"356": 87,
|
||||
"366": 88,
|
||||
"376": 89,
|
||||
"381": 90,
|
||||
"8208": 91,
|
||||
"8220": 92,
|
||||
"8222": 93,
|
||||
"42788": 94,
|
||||
"42816": 95,
|
||||
"42817": 96
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"61185": 0,
|
||||
"61186": 1,
|
||||
"61187": 2,
|
||||
"61188": 3,
|
||||
"61189": 4,
|
||||
"61191": 5,
|
||||
"61192": 6,
|
||||
"61193": 7,
|
||||
"61194": 8,
|
||||
"61195": 9,
|
||||
"61197": 10,
|
||||
"61198": 11,
|
||||
"61199": 12,
|
||||
"61200": 13,
|
||||
"61201": 14,
|
||||
"61203": 15,
|
||||
"61204": 16,
|
||||
"61205": 17,
|
||||
"61206": 18,
|
||||
"61207": 19
|
||||
}
|
||||
]
|
||||
]
|
@ -0,0 +1,126 @@
|
||||
{
|
||||
"rtlSUB": {
|
||||
"00622": { "1": "0FE82" },
|
||||
"00623": { "1": "0FE84" },
|
||||
"00624": { "1": "0FE86" },
|
||||
"00625": { "1": "0FE88" },
|
||||
"00626": { "1": "0FE8A", "3": "0FE8C", "2": "0FE8B" },
|
||||
"00627": { "1": "0FE8E" },
|
||||
"00628": { "1": "0FE90", "3": "0FE92", "2": "0FE91" },
|
||||
"00629": { "1": "0FE94" },
|
||||
"0062A": { "1": "0FE96", "3": "0FE98", "2": "0FE97" },
|
||||
"0062B": { "1": "0FE9A", "3": "0FE9C", "2": "0FE9B" },
|
||||
"0062C": { "1": "0FE9E", "3": "0FEA0", "2": "0FE9F" },
|
||||
"0062D": { "1": "0FEA2", "3": "0FEA4", "2": "0FEA3" },
|
||||
"0062E": { "1": "0FEA6", "3": "0FEA8", "2": "0FEA7" },
|
||||
"0062F": { "1": "0FEAA" },
|
||||
"00630": { "1": "0FEAC" },
|
||||
"00631": { "1": "0FEAE" },
|
||||
"00632": { "1": "0FEB0" },
|
||||
"00633": { "1": "0FEB2", "3": "0FEB4", "2": "0FEB3" },
|
||||
"00634": { "1": "0FEB6", "3": "0FEB8", "2": "0FEB7" },
|
||||
"00635": { "1": "0FEBA", "3": "0FEBC", "2": "0FEBB" },
|
||||
"00636": { "1": "0FEBE", "3": "0FEC0", "2": "0FEBF" },
|
||||
"00637": { "1": "0FEC2", "3": "0FEC4", "2": "0FEC3" },
|
||||
"00638": { "1": "0FEC6", "3": "0FEC8", "2": "0FEC7" },
|
||||
"00639": { "1": "0FECA", "3": "0FECC", "2": "0FECB" },
|
||||
"0063A": { "1": "0FECE", "3": "0FED0", "2": "0FECF" },
|
||||
"00641": { "1": "0FED2", "3": "0FED4", "2": "0FED3" },
|
||||
"00642": { "1": "0FED6", "3": "0FED8", "2": "0FED7" },
|
||||
"00643": { "1": "0FEDA", "3": "0FEDC", "2": "0FEDB" },
|
||||
"00644": { "1": "0FEDE", "3": "0FEE0", "2": "0FEDF" },
|
||||
"00645": { "1": "0FEE2", "3": "0FEE4", "2": "0FEE3" },
|
||||
"00646": { "1": "0FEE6", "3": "0FEE8", "2": "0FEE7" },
|
||||
"00647": { "1": "0FEEA", "3": "0FEEC", "2": "0FEEB" },
|
||||
"00648": { "1": "0FEEE" },
|
||||
"00649": { "1": "0FEF0", "3": "0FBE9", "2": "0FBE8" },
|
||||
"0064A": { "1": "0FEF2", "3": "0FEF4", "2": "0FEF3" },
|
||||
"0066E": { "1": "0E238", "3": "0E23A", "2": "0E239" },
|
||||
"0066F": { "1": "0E23E", "3": "0E240", "2": "0E23F" },
|
||||
"00679": { "1": "0FB67", "3": "0FB69", "2": "0FB68" },
|
||||
"0067A": { "1": "0FB5F", "3": "0FB61", "2": "0FB60" },
|
||||
"0067B": { "1": "0FB53", "3": "0FB55", "2": "0FB54" },
|
||||
"0067C": { "1": "0E244", "3": "0E246", "2": "0E245" },
|
||||
"0067D": { "1": "0E247", "3": "0E249", "2": "0E248" },
|
||||
"0067E": { "1": "0FB57", "3": "0FB59", "2": "0FB58" },
|
||||
"0067F": { "1": "0FB63", "3": "0FB65", "2": "0FB64" },
|
||||
"00680": { "1": "0FB5B", "3": "0FB5D", "2": "0FB5C" },
|
||||
"00681": { "1": "0E24A", "3": "0E24C", "2": "0E24B" },
|
||||
"00682": { "1": "0E24D", "3": "0E24F", "2": "0E24E" },
|
||||
"00683": { "1": "0FB77", "3": "0FB79", "2": "0FB78" },
|
||||
"00684": { "1": "0FB73", "3": "0FB75", "2": "0FB74" },
|
||||
"00685": { "1": "0E250", "3": "0E252", "2": "0E251" },
|
||||
"00686": { "1": "0FB7B", "3": "0FB7D", "2": "0FB7C" },
|
||||
"00687": { "1": "0FB7F", "3": "0FB81", "2": "0FB80" },
|
||||
"00688": { "1": "0FB89" },
|
||||
"00689": { "1": "0E2F5" },
|
||||
"0068A": { "1": "0E2F6" },
|
||||
"0068B": { "1": "0E2F7" },
|
||||
"0068C": { "1": "0FB85" },
|
||||
"0068D": { "1": "0FB83" },
|
||||
"0068E": { "1": "0FB87" },
|
||||
"0068F": { "1": "0E2F8" },
|
||||
"00690": { "1": "0E2F9" },
|
||||
"00691": { "1": "0FB8D" },
|
||||
"00692": { "1": "0E279" },
|
||||
"00693": { "1": "0E2FA" },
|
||||
"00694": { "1": "0E2FB" },
|
||||
"00695": { "1": "0E271" },
|
||||
"00696": { "1": "0E2FC" },
|
||||
"00697": { "1": "0E2FD" },
|
||||
"00698": { "1": "0FB8B" },
|
||||
"00699": { "1": "0E2FE" },
|
||||
"0069A": { "1": "0E2FF", "3": "0E301", "2": "0E300" },
|
||||
"0069B": { "1": "0E302", "3": "0E304", "2": "0E303" },
|
||||
"0069C": { "1": "0E305", "3": "0E307", "2": "0E306" },
|
||||
"0069D": { "1": "0E308", "3": "0E30A", "2": "0E309" },
|
||||
"0069E": { "1": "0E30B", "3": "0E30D", "2": "0E30C" },
|
||||
"0069F": { "1": "0E30E", "3": "0E310", "2": "0E30F" },
|
||||
"006A0": { "1": "0E311", "3": "0E313", "2": "0E312" },
|
||||
"006A1": { "1": "0E23B", "3": "0E23D", "2": "0E23C" },
|
||||
"006A2": { "1": "0E314", "3": "0E316", "2": "0E315" },
|
||||
"006A3": { "1": "0E317", "3": "0E319", "2": "0E318" },
|
||||
"006A4": { "1": "0FB6B", "3": "0FB6D", "2": "0FB6C" },
|
||||
"006A5": { "1": "0E31A", "3": "0E31C", "2": "0E31B" },
|
||||
"006A6": { "1": "0FB6F", "3": "0FB71", "2": "0FB70" },
|
||||
"006A7": { "1": "0E31D", "3": "0E31F", "2": "0E31E" },
|
||||
"006A8": { "1": "0E320", "3": "0E322", "2": "0E321" },
|
||||
"006A9": { "1": "0FB8F", "3": "0FB91", "2": "0FB90" },
|
||||
"006AA": { "1": "0E323", "3": "0E325", "2": "0E324" },
|
||||
"006AB": { "1": "0E326", "3": "0E328", "2": "0E327" },
|
||||
"006AC": { "1": "0E329", "3": "0E32B", "2": "0E32A" },
|
||||
"006AD": { "1": "0FBD4", "3": "0FBD6", "2": "0FBD5" },
|
||||
"006AE": { "1": "0E32C", "3": "0E32E", "2": "0E32D" },
|
||||
"006AF": { "1": "0FB93", "3": "0FB95", "2": "0FB94" },
|
||||
"006B0": { "1": "0E32F", "3": "0E331", "2": "0E330" },
|
||||
"006B1": { "1": "0FB9B", "3": "0FB9D", "2": "0FB9C" },
|
||||
"006B2": { "1": "0E332", "3": "0E334", "2": "0E333" },
|
||||
"006B3": { "1": "0FB97", "3": "0FB99", "2": "0FB98" },
|
||||
"006B4": { "1": "0E335", "3": "0E337", "2": "0E336" },
|
||||
"006B5": { "1": "0E273", "3": "0E275", "2": "0E274" },
|
||||
"006B6": { "1": "0E338", "3": "0E33A", "2": "0E339" },
|
||||
"006B7": { "1": "0E33B", "3": "0E33D", "2": "0E33C" },
|
||||
"006B8": { "1": "0E33E", "3": "0E340", "2": "0E33F" },
|
||||
"006B9": { "1": "0E341", "3": "0E343", "2": "0E342" },
|
||||
"006BA": { "1": "0FB9F", "3": "0E242", "2": "0E241" },
|
||||
"006BB": { "1": "0FBA1", "3": "0FBA3", "2": "0FBA2" },
|
||||
"006BC": { "1": "0E344", "3": "0E346", "2": "0E345" },
|
||||
"006BD": { "1": "0E347", "3": "0E349", "2": "0E348" },
|
||||
"006BE": { "1": "0FBAB", "3": "0FBAD", "2": "0FBAC" },
|
||||
"006BF": { "1": "0E253", "3": "0E255", "2": "0E254" },
|
||||
"006C6": { "1": "0FBDA" },
|
||||
"006C7": { "1": "0FBD8" },
|
||||
"006C8": { "1": "0FBDC" },
|
||||
"006CB": { "1": "0FBDF" },
|
||||
"006CC": { "1": "0FBFD", "3": "0FBFF", "2": "0FBFE" },
|
||||
"006CE": { "1": "0E276", "3": "0E278", "2": "0E277" },
|
||||
"006D0": { "1": "0FBE5", "3": "0FBE7", "2": "0FBE6" },
|
||||
"006D5": { "1": "0E27B" }
|
||||
},
|
||||
"finals": "0FE82 0FE84 0FE86 0FE88 0FE8A 0FE90 0FE96 0FE9A 0FE9E 0FEA6 0FEAC 0FEB0 0FEB2 0FEB6 0FEBA 0FEBE 0FEC6 0FECE 0FEE2 0FEE6 0FEEA 0E238 0E23E 0FB67 0FB5F 0FB53 0E244 0E247 0FB57 0FB63 0FB5B 0E24A 0E24D 0FB77 0FB73 0E250 0FB7B 0FB7F 0FB89 0E2F5 0E2F6 0E2F7 0FB85 0FB83 0FB87 0E2F8 0E2F9 0FB8D 0E279 0E2FA 0E2FB 0E271 0E2FC 0E2FD 0FB8B 0E2FE 0E2FF 0E302 0E305 0E308 0E30B 0E30E 0E311 0E23B 0E314 0E317 0FB6B 0E31A 0FB6F 0E31D 0E320 0FB8F 0E323 0E326 0E329 0FBD4 0E32C 0E32F 0FB9B 0E332 0FB97 0E335 0E273 0E338 0E33B 0E33E 0E341 0FB9F 0FBA1 0E344 0E347 0FBAB 0E253 0FBDA 0FBD8 0FBDC 0FBDF 0FBFD 0E276 0FBE5 0E27B ",
|
||||
"rphf": [],
|
||||
"half": [],
|
||||
"pref": [],
|
||||
"blwf": [],
|
||||
"pstf": []
|
||||
}
|
@ -0,0 +1,126 @@
|
||||
{
|
||||
"rtlSUB": {
|
||||
"00622": { "1": "0FE82" },
|
||||
"00623": { "1": "0FE84" },
|
||||
"00624": { "1": "0FE86" },
|
||||
"00625": { "1": "0FE88" },
|
||||
"00626": { "1": "0FE8A", "3": "0FE8C", "2": "0FE8B" },
|
||||
"00627": { "1": "0FE8E" },
|
||||
"00628": { "1": "0FE90", "3": "0FE92", "2": "0FE91" },
|
||||
"00629": { "1": "0FE94" },
|
||||
"0062A": { "1": "0FE96", "3": "0FE98", "2": "0FE97" },
|
||||
"0062B": { "1": "0FE9A", "3": "0FE9C", "2": "0FE9B" },
|
||||
"0062C": { "1": "0FE9E", "3": "0FEA0", "2": "0FE9F" },
|
||||
"0062D": { "1": "0FEA2", "3": "0FEA4", "2": "0FEA3" },
|
||||
"0062E": { "1": "0FEA6", "3": "0FEA8", "2": "0FEA7" },
|
||||
"0062F": { "1": "0FEAA" },
|
||||
"00630": { "1": "0FEAC" },
|
||||
"00631": { "1": "0FEAE" },
|
||||
"00632": { "1": "0FEB0" },
|
||||
"00633": { "1": "0FEB2", "3": "0FEB4", "2": "0FEB3" },
|
||||
"00634": { "1": "0FEB6", "3": "0FEB8", "2": "0FEB7" },
|
||||
"00635": { "1": "0FEBA", "3": "0FEBC", "2": "0FEBB" },
|
||||
"00636": { "1": "0FEBE", "3": "0FEC0", "2": "0FEBF" },
|
||||
"00637": { "1": "0FEC2", "3": "0FEC4", "2": "0FEC3" },
|
||||
"00638": { "1": "0FEC6", "3": "0FEC8", "2": "0FEC7" },
|
||||
"00639": { "1": "0FECA", "3": "0FECC", "2": "0FECB" },
|
||||
"0063A": { "1": "0FECE", "3": "0FED0", "2": "0FECF" },
|
||||
"00641": { "1": "0FED2", "3": "0FED4", "2": "0FED3" },
|
||||
"00642": { "1": "0FED6", "3": "0FED8", "2": "0FED7" },
|
||||
"00643": { "1": "0FEDA", "3": "0FEDC", "2": "0FEDB" },
|
||||
"00644": { "1": "0FEDE", "3": "0FEE0", "2": "0FEDF" },
|
||||
"00645": { "1": "0FEE2", "3": "0FEE4", "2": "0FEE3" },
|
||||
"00646": { "1": "0FEE6", "3": "0FEE8", "2": "0FEE7" },
|
||||
"00647": { "1": "0FEEA", "3": "0FEEC", "2": "0FEEB" },
|
||||
"00648": { "1": "0FEEE" },
|
||||
"00649": { "1": "0FEF0", "3": "0FBE9", "2": "0FBE8" },
|
||||
"0064A": { "1": "0FEF2", "3": "0FEF4", "2": "0FEF3" },
|
||||
"0066E": { "1": "0E238", "3": "0E23A", "2": "0E239" },
|
||||
"0066F": { "1": "0E23E", "3": "0E240", "2": "0E23F" },
|
||||
"00679": { "1": "0FB67", "3": "0FB69", "2": "0FB68" },
|
||||
"0067A": { "1": "0FB5F", "3": "0FB61", "2": "0FB60" },
|
||||
"0067B": { "1": "0FB53", "3": "0FB55", "2": "0FB54" },
|
||||
"0067C": { "1": "0E244", "3": "0E246", "2": "0E245" },
|
||||
"0067D": { "1": "0E247", "3": "0E249", "2": "0E248" },
|
||||
"0067E": { "1": "0FB57", "3": "0FB59", "2": "0FB58" },
|
||||
"0067F": { "1": "0FB63", "3": "0FB65", "2": "0FB64" },
|
||||
"00680": { "1": "0FB5B", "3": "0FB5D", "2": "0FB5C" },
|
||||
"00681": { "1": "0E24A", "3": "0E24C", "2": "0E24B" },
|
||||
"00682": { "1": "0E24D", "3": "0E24F", "2": "0E24E" },
|
||||
"00683": { "1": "0FB77", "3": "0FB79", "2": "0FB78" },
|
||||
"00684": { "1": "0FB73", "3": "0FB75", "2": "0FB74" },
|
||||
"00685": { "1": "0E250", "3": "0E252", "2": "0E251" },
|
||||
"00686": { "1": "0FB7B", "3": "0FB7D", "2": "0FB7C" },
|
||||
"00687": { "1": "0FB7F", "3": "0FB81", "2": "0FB80" },
|
||||
"00688": { "1": "0FB89" },
|
||||
"00689": { "1": "0E2F5" },
|
||||
"0068A": { "1": "0E2F6" },
|
||||
"0068B": { "1": "0E2F7" },
|
||||
"0068C": { "1": "0FB85" },
|
||||
"0068D": { "1": "0FB83" },
|
||||
"0068E": { "1": "0FB87" },
|
||||
"0068F": { "1": "0E2F8" },
|
||||
"00690": { "1": "0E2F9" },
|
||||
"00691": { "1": "0FB8D" },
|
||||
"00692": { "1": "0E279" },
|
||||
"00693": { "1": "0E2FA" },
|
||||
"00694": { "1": "0E2FB" },
|
||||
"00695": { "1": "0E271" },
|
||||
"00696": { "1": "0E2FC" },
|
||||
"00697": { "1": "0E2FD" },
|
||||
"00698": { "1": "0FB8B" },
|
||||
"00699": { "1": "0E2FE" },
|
||||
"0069A": { "1": "0E2FF", "3": "0E301", "2": "0E300" },
|
||||
"0069B": { "1": "0E302", "3": "0E304", "2": "0E303" },
|
||||
"0069C": { "1": "0E305", "3": "0E307", "2": "0E306" },
|
||||
"0069D": { "1": "0E308", "3": "0E30A", "2": "0E309" },
|
||||
"0069E": { "1": "0E30B", "3": "0E30D", "2": "0E30C" },
|
||||
"0069F": { "1": "0E30E", "3": "0E310", "2": "0E30F" },
|
||||
"006A0": { "1": "0E311", "3": "0E313", "2": "0E312" },
|
||||
"006A1": { "1": "0E23B", "3": "0E23D", "2": "0E23C" },
|
||||
"006A2": { "1": "0E314", "3": "0E316", "2": "0E315" },
|
||||
"006A3": { "1": "0E317", "3": "0E319", "2": "0E318" },
|
||||
"006A4": { "1": "0FB6B", "3": "0FB6D", "2": "0FB6C" },
|
||||
"006A5": { "1": "0E31A", "3": "0E31C", "2": "0E31B" },
|
||||
"006A6": { "1": "0FB6F", "3": "0FB71", "2": "0FB70" },
|
||||
"006A7": { "1": "0E31D", "3": "0E31F", "2": "0E31E" },
|
||||
"006A8": { "1": "0E320", "3": "0E322", "2": "0E321" },
|
||||
"006A9": { "1": "0FB8F", "3": "0FB91", "2": "0FB90" },
|
||||
"006AA": { "1": "0E323", "3": "0E325", "2": "0E324" },
|
||||
"006AB": { "1": "0E326", "3": "0E328", "2": "0E327" },
|
||||
"006AC": { "1": "0E329", "3": "0E32B", "2": "0E32A" },
|
||||
"006AD": { "1": "0FBD4", "3": "0FBD6", "2": "0FBD5" },
|
||||
"006AE": { "1": "0E32C", "3": "0E32E", "2": "0E32D" },
|
||||
"006AF": { "1": "0FB93", "3": "0FB95", "2": "0FB94" },
|
||||
"006B0": { "1": "0E32F", "3": "0E331", "2": "0E330" },
|
||||
"006B1": { "1": "0FB9B", "3": "0FB9D", "2": "0FB9C" },
|
||||
"006B2": { "1": "0E332", "3": "0E334", "2": "0E333" },
|
||||
"006B3": { "1": "0FB97", "3": "0FB99", "2": "0FB98" },
|
||||
"006B4": { "1": "0E335", "3": "0E337", "2": "0E336" },
|
||||
"006B5": { "1": "0E273", "3": "0E275", "2": "0E274" },
|
||||
"006B6": { "1": "0E338", "3": "0E33A", "2": "0E339" },
|
||||
"006B7": { "1": "0E33B", "3": "0E33D", "2": "0E33C" },
|
||||
"006B8": { "1": "0E33E", "3": "0E340", "2": "0E33F" },
|
||||
"006B9": { "1": "0E341", "3": "0E343", "2": "0E342" },
|
||||
"006BA": { "1": "0FB9F", "3": "0E242", "2": "0E241" },
|
||||
"006BB": { "1": "0FBA1", "3": "0FBA3", "2": "0FBA2" },
|
||||
"006BC": { "1": "0E344", "3": "0E346", "2": "0E345" },
|
||||
"006BD": { "1": "0E347", "3": "0E349", "2": "0E348" },
|
||||
"006BE": { "1": "0FBAB", "3": "0FBAD", "2": "0FBAC" },
|
||||
"006BF": { "1": "0E253", "3": "0E255", "2": "0E254" },
|
||||
"006C6": { "1": "0FBDA" },
|
||||
"006C7": { "1": "0FBD8" },
|
||||
"006C8": { "1": "0FBDC" },
|
||||
"006CB": { "1": "0FBDF" },
|
||||
"006CC": { "1": "0FBFD", "3": "0FBFF", "2": "0FBFE" },
|
||||
"006CE": { "1": "0E276", "3": "0E278", "2": "0E277" },
|
||||
"006D0": { "1": "0FBE5", "3": "0FBE7", "2": "0FBE6" },
|
||||
"006D5": { "1": "0E27B" }
|
||||
},
|
||||
"finals": "0FE82 0FE84 0FE86 0FE88 0FE8A 0FE90 0FE96 0FE9A 0FE9E 0FEA6 0FEAC 0FEB0 0FEB2 0FEB6 0FEBA 0FEBE 0FEC6 0FECE 0FEE2 0FEE6 0FEEA 0E238 0E23E 0FB67 0FB5F 0FB53 0E244 0E247 0FB57 0FB63 0FB5B 0E24A 0E24D 0FB77 0FB73 0E250 0FB7B 0FB7F 0FB89 0E2F5 0E2F6 0E2F7 0FB85 0FB83 0FB87 0E2F8 0E2F9 0FB8D 0E279 0E2FA 0E2FB 0E271 0E2FC 0E2FD 0FB8B 0E2FE 0E2FF 0E302 0E305 0E308 0E30B 0E30E 0E311 0E23B 0E314 0E317 0FB6B 0E31A 0FB6F 0E31D 0E320 0FB8F 0E323 0E326 0E329 0FBD4 0E32C 0E32F 0FB9B 0E332 0FB97 0E335 0E273 0E338 0E33B 0E33E 0E341 0FB9F 0FBA1 0E344 0E347 0FBAB 0E253 0FBDA 0FBD8 0FBDC 0FBDF 0FBFD 0E276 0FBE5 0E27B ",
|
||||
"rphf": [],
|
||||
"half": [],
|
||||
"pref": [],
|
||||
"blwf": [],
|
||||
"pstf": []
|
||||
}
|
@ -0,0 +1,126 @@
|
||||
{
|
||||
"rtlSUB": {
|
||||
"00622": { "1": "0FE82" },
|
||||
"00623": { "1": "0FE84" },
|
||||
"00624": { "1": "0FE86" },
|
||||
"00625": { "1": "0FE88" },
|
||||
"00626": { "1": "0FE8A", "3": "0FE8C", "2": "0FE8B" },
|
||||
"00627": { "1": "0FE8E" },
|
||||
"00628": { "1": "0FE90", "3": "0FE92", "2": "0FE91" },
|
||||
"00629": { "1": "0FE94" },
|
||||
"0062A": { "1": "0FE96", "3": "0FE98", "2": "0FE97" },
|
||||
"0062B": { "1": "0FE9A", "3": "0FE9C", "2": "0FE9B" },
|
||||
"0062C": { "1": "0FE9E", "3": "0FEA0", "2": "0FE9F" },
|
||||
"0062D": { "1": "0FEA2", "3": "0FEA4", "2": "0FEA3" },
|
||||
"0062E": { "1": "0FEA6", "3": "0FEA8", "2": "0FEA7" },
|
||||
"0062F": { "1": "0FEAA" },
|
||||
"00630": { "1": "0FEAC" },
|
||||
"00631": { "1": "0FEAE" },
|
||||
"00632": { "1": "0FEB0" },
|
||||
"00633": { "1": "0FEB2", "3": "0FEB4", "2": "0FEB3" },
|
||||
"00634": { "1": "0FEB6", "3": "0FEB8", "2": "0FEB7" },
|
||||
"00635": { "1": "0FEBA", "3": "0FEBC", "2": "0FEBB" },
|
||||
"00636": { "1": "0FEBE", "3": "0FEC0", "2": "0FEBF" },
|
||||
"00637": { "1": "0FEC2", "3": "0FEC4", "2": "0FEC3" },
|
||||
"00638": { "1": "0FEC6", "3": "0FEC8", "2": "0FEC7" },
|
||||
"00639": { "1": "0FECA", "3": "0FECC", "2": "0FECB" },
|
||||
"0063A": { "1": "0FECE", "3": "0FED0", "2": "0FECF" },
|
||||
"00641": { "1": "0FED2", "3": "0FED4", "2": "0FED3" },
|
||||
"00642": { "1": "0FED6", "3": "0FED8", "2": "0FED7" },
|
||||
"00643": { "1": "0FEDA", "3": "0FEDC", "2": "0FEDB" },
|
||||
"00644": { "1": "0FEDE", "3": "0FEE0", "2": "0FEDF" },
|
||||
"00645": { "1": "0FEE2", "3": "0FEE4", "2": "0FEE3" },
|
||||
"00646": { "1": "0FEE6", "3": "0FEE8", "2": "0FEE7" },
|
||||
"00647": { "1": "0FEEA", "3": "0FEEC", "2": "0FEEB" },
|
||||
"00648": { "1": "0FEEE" },
|
||||
"00649": { "1": "0FEF0", "3": "0FBE9", "2": "0FBE8" },
|
||||
"0064A": { "1": "0FEF2", "3": "0FEF4", "2": "0FEF3" },
|
||||
"0066E": { "1": "0E238", "3": "0E23A", "2": "0E239" },
|
||||
"0066F": { "1": "0E23E", "3": "0E240", "2": "0E23F" },
|
||||
"00679": { "1": "0FB67", "3": "0FB69", "2": "0FB68" },
|
||||
"0067A": { "1": "0FB5F", "3": "0FB61", "2": "0FB60" },
|
||||
"0067B": { "1": "0FB53", "3": "0FB55", "2": "0FB54" },
|
||||
"0067C": { "1": "0E244", "3": "0E246", "2": "0E245" },
|
||||
"0067D": { "1": "0E247", "3": "0E249", "2": "0E248" },
|
||||
"0067E": { "1": "0FB57", "3": "0FB59", "2": "0FB58" },
|
||||
"0067F": { "1": "0FB63", "3": "0FB65", "2": "0FB64" },
|
||||
"00680": { "1": "0FB5B", "3": "0FB5D", "2": "0FB5C" },
|
||||
"00681": { "1": "0E24A", "3": "0E24C", "2": "0E24B" },
|
||||
"00682": { "1": "0E24D", "3": "0E24F", "2": "0E24E" },
|
||||
"00683": { "1": "0FB77", "3": "0FB79", "2": "0FB78" },
|
||||
"00684": { "1": "0FB73", "3": "0FB75", "2": "0FB74" },
|
||||
"00685": { "1": "0E250", "3": "0E252", "2": "0E251" },
|
||||
"00686": { "1": "0FB7B", "3": "0FB7D", "2": "0FB7C" },
|
||||
"00687": { "1": "0FB7F", "3": "0FB81", "2": "0FB80" },
|
||||
"00688": { "1": "0FB89" },
|
||||
"00689": { "1": "0E2F5" },
|
||||
"0068A": { "1": "0E2F6" },
|
||||
"0068B": { "1": "0E2F7" },
|
||||
"0068C": { "1": "0FB85" },
|
||||
"0068D": { "1": "0FB83" },
|
||||
"0068E": { "1": "0FB87" },
|
||||
"0068F": { "1": "0E2F8" },
|
||||
"00690": { "1": "0E2F9" },
|
||||
"00691": { "1": "0FB8D" },
|
||||
"00692": { "1": "0E279" },
|
||||
"00693": { "1": "0E2FA" },
|
||||
"00694": { "1": "0E2FB" },
|
||||
"00695": { "1": "0E271" },
|
||||
"00696": { "1": "0E2FC" },
|
||||
"00697": { "1": "0E2FD" },
|
||||
"00698": { "1": "0FB8B" },
|
||||
"00699": { "1": "0E2FE" },
|
||||
"0069A": { "1": "0E2FF", "3": "0E301", "2": "0E300" },
|
||||
"0069B": { "1": "0E302", "3": "0E304", "2": "0E303" },
|
||||
"0069C": { "1": "0E305", "3": "0E307", "2": "0E306" },
|
||||
"0069D": { "1": "0E308", "3": "0E30A", "2": "0E309" },
|
||||
"0069E": { "1": "0E30B", "3": "0E30D", "2": "0E30C" },
|
||||
"0069F": { "1": "0E30E", "3": "0E310", "2": "0E30F" },
|
||||
"006A0": { "1": "0E311", "3": "0E313", "2": "0E312" },
|
||||
"006A1": { "1": "0E23B", "3": "0E23D", "2": "0E23C" },
|
||||
"006A2": { "1": "0E314", "3": "0E316", "2": "0E315" },
|
||||
"006A3": { "1": "0E317", "3": "0E319", "2": "0E318" },
|
||||
"006A4": { "1": "0FB6B", "3": "0FB6D", "2": "0FB6C" },
|
||||
"006A5": { "1": "0E31A", "3": "0E31C", "2": "0E31B" },
|
||||
"006A6": { "1": "0FB6F", "3": "0FB71", "2": "0FB70" },
|
||||
"006A7": { "1": "0E31D", "3": "0E31F", "2": "0E31E" },
|
||||
"006A8": { "1": "0E320", "3": "0E322", "2": "0E321" },
|
||||
"006A9": { "1": "0FB8F", "3": "0FB91", "2": "0FB90" },
|
||||
"006AA": { "1": "0E323", "3": "0E325", "2": "0E324" },
|
||||
"006AB": { "1": "0E326", "3": "0E328", "2": "0E327" },
|
||||
"006AC": { "1": "0E329", "3": "0E32B", "2": "0E32A" },
|
||||
"006AD": { "1": "0FBD4", "3": "0FBD6", "2": "0FBD5" },
|
||||
"006AE": { "1": "0E32C", "3": "0E32E", "2": "0E32D" },
|
||||
"006AF": { "1": "0FB93", "3": "0FB95", "2": "0FB94" },
|
||||
"006B0": { "1": "0E32F", "3": "0E331", "2": "0E330" },
|
||||
"006B1": { "1": "0FB9B", "3": "0FB9D", "2": "0FB9C" },
|
||||
"006B2": { "1": "0E332", "3": "0E334", "2": "0E333" },
|
||||
"006B3": { "1": "0FB97", "3": "0FB99", "2": "0FB98" },
|
||||
"006B4": { "1": "0E335", "3": "0E337", "2": "0E336" },
|
||||
"006B5": { "1": "0E273", "3": "0E275", "2": "0E274" },
|
||||
"006B6": { "1": "0E338", "3": "0E33A", "2": "0E339" },
|
||||
"006B7": { "1": "0E33B", "3": "0E33D", "2": "0E33C" },
|
||||
"006B8": { "1": "0E33E", "3": "0E340", "2": "0E33F" },
|
||||
"006B9": { "1": "0E341", "3": "0E343", "2": "0E342" },
|
||||
"006BA": { "1": "0FB9F", "3": "0E242", "2": "0E241" },
|
||||
"006BB": { "1": "0FBA1", "3": "0FBA3", "2": "0FBA2" },
|
||||
"006BC": { "1": "0E344", "3": "0E346", "2": "0E345" },
|
||||
"006BD": { "1": "0E347", "3": "0E349", "2": "0E348" },
|
||||
"006BE": { "1": "0FBAB", "3": "0FBAD", "2": "0FBAC" },
|
||||
"006BF": { "1": "0E253", "3": "0E255", "2": "0E254" },
|
||||
"006C6": { "1": "0FBDA" },
|
||||
"006C7": { "1": "0FBD8" },
|
||||
"006C8": { "1": "0FBDC" },
|
||||
"006CB": { "1": "0FBDF" },
|
||||
"006CC": { "1": "0FBFD", "3": "0FBFF", "2": "0FBFE" },
|
||||
"006CE": { "1": "0E276", "3": "0E278", "2": "0E277" },
|
||||
"006D0": { "1": "0FBE5", "3": "0FBE7", "2": "0FBE6" },
|
||||
"006D5": { "1": "0E27B" }
|
||||
},
|
||||
"finals": "0FE82 0FE84 0FE86 0FE88 0FE8A 0FE90 0FE96 0FE9A 0FE9E 0FEA6 0FEAC 0FEB0 0FEB2 0FEB6 0FEBA 0FEBE 0FEC6 0FECE 0FEE2 0FEE6 0FEEA 0E238 0E23E 0FB67 0FB5F 0FB53 0E244 0E247 0FB57 0FB63 0FB5B 0E24A 0E24D 0FB77 0FB73 0E250 0FB7B 0FB7F 0FB89 0E2F5 0E2F6 0E2F7 0FB85 0FB83 0FB87 0E2F8 0E2F9 0FB8D 0E279 0E2FA 0E2FB 0E271 0E2FC 0E2FD 0FB8B 0E2FE 0E2FF 0E302 0E305 0E308 0E30B 0E30E 0E311 0E23B 0E314 0E317 0FB6B 0E31A 0FB6F 0E31D 0E320 0FB8F 0E323 0E326 0E329 0FBD4 0E32C 0E32F 0FB9B 0E332 0FB97 0E335 0E273 0E338 0E33B 0E33E 0E341 0FB9F 0FBA1 0E344 0E347 0FBAB 0E253 0FBDA 0FBD8 0FBDC 0FBDF 0FBFD 0E276 0FBE5 0E27B ",
|
||||
"rphf": [],
|
||||
"half": [],
|
||||
"pref": [],
|
||||
"blwf": [],
|
||||
"pstf": []
|
||||
}
|
@ -0,0 +1,126 @@
|
||||
{
|
||||
"rtlSUB": {
|
||||
"00622": { "1": "0FE82" },
|
||||
"00623": { "1": "0FE84" },
|
||||
"00624": { "1": "0FE86" },
|
||||
"00625": { "1": "0FE88" },
|
||||
"00626": { "1": "0FE8A", "3": "0FE8C", "2": "0FE8B" },
|
||||
"00627": { "1": "0FE8E" },
|
||||
"00628": { "1": "0FE90", "3": "0FE92", "2": "0FE91" },
|
||||
"00629": { "1": "0FE94" },
|
||||
"0062A": { "1": "0FE96", "3": "0FE98", "2": "0FE97" },
|
||||
"0062B": { "1": "0FE9A", "3": "0FE9C", "2": "0FE9B" },
|
||||
"0062C": { "1": "0FE9E", "3": "0FEA0", "2": "0FE9F" },
|
||||
"0062D": { "1": "0FEA2", "3": "0FEA4", "2": "0FEA3" },
|
||||
"0062E": { "1": "0FEA6", "3": "0FEA8", "2": "0FEA7" },
|
||||
"0062F": { "1": "0FEAA" },
|
||||
"00630": { "1": "0FEAC" },
|
||||
"00631": { "1": "0FEAE" },
|
||||
"00632": { "1": "0FEB0" },
|
||||
"00633": { "1": "0FEB2", "3": "0FEB4", "2": "0FEB3" },
|
||||
"00634": { "1": "0FEB6", "3": "0FEB8", "2": "0FEB7" },
|
||||
"00635": { "1": "0FEBA", "3": "0FEBC", "2": "0FEBB" },
|
||||
"00636": { "1": "0FEBE", "3": "0FEC0", "2": "0FEBF" },
|
||||
"00637": { "1": "0FEC2", "3": "0FEC4", "2": "0FEC3" },
|
||||
"00638": { "1": "0FEC6", "3": "0FEC8", "2": "0FEC7" },
|
||||
"00639": { "1": "0FECA", "3": "0FECC", "2": "0FECB" },
|
||||
"0063A": { "1": "0FECE", "3": "0FED0", "2": "0FECF" },
|
||||
"00641": { "1": "0FED2", "3": "0FED4", "2": "0FED3" },
|
||||
"00642": { "1": "0FED6", "3": "0FED8", "2": "0FED7" },
|
||||
"00643": { "1": "0FEDA", "3": "0FEDC", "2": "0FEDB" },
|
||||
"00644": { "1": "0FEDE", "3": "0FEE0", "2": "0FEDF" },
|
||||
"00645": { "1": "0FEE2", "3": "0FEE4", "2": "0FEE3" },
|
||||
"00646": { "1": "0FEE6", "3": "0FEE8", "2": "0FEE7" },
|
||||
"00647": { "1": "0FEEA", "3": "0FEEC", "2": "0FEEB" },
|
||||
"00648": { "1": "0FEEE" },
|
||||
"00649": { "1": "0FEF0", "3": "0FBE9", "2": "0FBE8" },
|
||||
"0064A": { "1": "0FEF2", "3": "0FEF4", "2": "0FEF3" },
|
||||
"0066E": { "1": "0E238", "3": "0E23A", "2": "0E239" },
|
||||
"0066F": { "1": "0E23E", "3": "0E240", "2": "0E23F" },
|
||||
"00679": { "1": "0FB67", "3": "0FB69", "2": "0FB68" },
|
||||
"0067A": { "1": "0FB5F", "3": "0FB61", "2": "0FB60" },
|
||||
"0067B": { "1": "0FB53", "3": "0FB55", "2": "0FB54" },
|
||||
"0067C": { "1": "0E244", "3": "0E246", "2": "0E245" },
|
||||
"0067D": { "1": "0E247", "3": "0E249", "2": "0E248" },
|
||||
"0067E": { "1": "0FB57", "3": "0FB59", "2": "0FB58" },
|
||||
"0067F": { "1": "0FB63", "3": "0FB65", "2": "0FB64" },
|
||||
"00680": { "1": "0FB5B", "3": "0FB5D", "2": "0FB5C" },
|
||||
"00681": { "1": "0E24A", "3": "0E24C", "2": "0E24B" },
|
||||
"00682": { "1": "0E24D", "3": "0E24F", "2": "0E24E" },
|
||||
"00683": { "1": "0FB77", "3": "0FB79", "2": "0FB78" },
|
||||
"00684": { "1": "0FB73", "3": "0FB75", "2": "0FB74" },
|
||||
"00685": { "1": "0E250", "3": "0E252", "2": "0E251" },
|
||||
"00686": { "1": "0FB7B", "3": "0FB7D", "2": "0FB7C" },
|
||||
"00687": { "1": "0FB7F", "3": "0FB81", "2": "0FB80" },
|
||||
"00688": { "1": "0FB89" },
|
||||
"00689": { "1": "0E2F5" },
|
||||
"0068A": { "1": "0E2F6" },
|
||||
"0068B": { "1": "0E2F7" },
|
||||
"0068C": { "1": "0FB85" },
|
||||
"0068D": { "1": "0FB83" },
|
||||
"0068E": { "1": "0FB87" },
|
||||
"0068F": { "1": "0E2F8" },
|
||||
"00690": { "1": "0E2F9" },
|
||||
"00691": { "1": "0FB8D" },
|
||||
"00692": { "1": "0E279" },
|
||||
"00693": { "1": "0E2FA" },
|
||||
"00694": { "1": "0E2FB" },
|
||||
"00695": { "1": "0E271" },
|
||||
"00696": { "1": "0E2FC" },
|
||||
"00697": { "1": "0E2FD" },
|
||||
"00698": { "1": "0FB8B" },
|
||||
"00699": { "1": "0E2FE" },
|
||||
"0069A": { "1": "0E2FF", "3": "0E301", "2": "0E300" },
|
||||
"0069B": { "1": "0E302", "3": "0E304", "2": "0E303" },
|
||||
"0069C": { "1": "0E305", "3": "0E307", "2": "0E306" },
|
||||
"0069D": { "1": "0E308", "3": "0E30A", "2": "0E309" },
|
||||
"0069E": { "1": "0E30B", "3": "0E30D", "2": "0E30C" },
|
||||
"0069F": { "1": "0E30E", "3": "0E310", "2": "0E30F" },
|
||||
"006A0": { "1": "0E311", "3": "0E313", "2": "0E312" },
|
||||
"006A1": { "1": "0E23B", "3": "0E23D", "2": "0E23C" },
|
||||
"006A2": { "1": "0E314", "3": "0E316", "2": "0E315" },
|
||||
"006A3": { "1": "0E317", "3": "0E319", "2": "0E318" },
|
||||
"006A4": { "1": "0FB6B", "3": "0FB6D", "2": "0FB6C" },
|
||||
"006A5": { "1": "0E31A", "3": "0E31C", "2": "0E31B" },
|
||||
"006A6": { "1": "0FB6F", "3": "0FB71", "2": "0FB70" },
|
||||
"006A7": { "1": "0E31D", "3": "0E31F", "2": "0E31E" },
|
||||
"006A8": { "1": "0E320", "3": "0E322", "2": "0E321" },
|
||||
"006A9": { "1": "0FB8F", "3": "0FB91", "2": "0FB90" },
|
||||
"006AA": { "1": "0E323", "3": "0E325", "2": "0E324" },
|
||||
"006AB": { "1": "0E326", "3": "0E328", "2": "0E327" },
|
||||
"006AC": { "1": "0E329", "3": "0E32B", "2": "0E32A" },
|
||||
"006AD": { "1": "0FBD4", "3": "0FBD6", "2": "0FBD5" },
|
||||
"006AE": { "1": "0E32C", "3": "0E32E", "2": "0E32D" },
|
||||
"006AF": { "1": "0FB93", "3": "0FB95", "2": "0FB94" },
|
||||
"006B0": { "1": "0E32F", "3": "0E331", "2": "0E330" },
|
||||
"006B1": { "1": "0FB9B", "3": "0FB9D", "2": "0FB9C" },
|
||||
"006B2": { "1": "0E332", "3": "0E334", "2": "0E333" },
|
||||
"006B3": { "1": "0FB97", "3": "0FB99", "2": "0FB98" },
|
||||
"006B4": { "1": "0E335", "3": "0E337", "2": "0E336" },
|
||||
"006B5": { "1": "0E273", "3": "0E275", "2": "0E274" },
|
||||
"006B6": { "1": "0E338", "3": "0E33A", "2": "0E339" },
|
||||
"006B7": { "1": "0E33B", "3": "0E33D", "2": "0E33C" },
|
||||
"006B8": { "1": "0E33E", "3": "0E340", "2": "0E33F" },
|
||||
"006B9": { "1": "0E341", "3": "0E343", "2": "0E342" },
|
||||
"006BA": { "1": "0FB9F", "3": "0E242", "2": "0E241" },
|
||||
"006BB": { "1": "0FBA1", "3": "0FBA3", "2": "0FBA2" },
|
||||
"006BC": { "1": "0E344", "3": "0E346", "2": "0E345" },
|
||||
"006BD": { "1": "0E347", "3": "0E349", "2": "0E348" },
|
||||
"006BE": { "1": "0FBAB", "3": "0FBAD", "2": "0FBAC" },
|
||||
"006BF": { "1": "0E253", "3": "0E255", "2": "0E254" },
|
||||
"006C6": { "1": "0FBDA" },
|
||||
"006C7": { "1": "0FBD8" },
|
||||
"006C8": { "1": "0FBDC" },
|
||||
"006CB": { "1": "0FBDF" },
|
||||
"006CC": { "1": "0FBFD", "3": "0FBFF", "2": "0FBFE" },
|
||||
"006CE": { "1": "0E276", "3": "0E278", "2": "0E277" },
|
||||
"006D0": { "1": "0FBE5", "3": "0FBE7", "2": "0FBE6" },
|
||||
"006D5": { "1": "0E27B" }
|
||||
},
|
||||
"finals": "0FE82 0FE84 0FE86 0FE88 0FE8A 0FE90 0FE96 0FE9A 0FE9E 0FEA6 0FEAC 0FEB0 0FEB2 0FEB6 0FEBA 0FEBE 0FEC6 0FECE 0FEE2 0FEE6 0FEEA 0E238 0E23E 0FB67 0FB5F 0FB53 0E244 0E247 0FB57 0FB63 0FB5B 0E24A 0E24D 0FB77 0FB73 0E250 0FB7B 0FB7F 0FB89 0E2F5 0E2F6 0E2F7 0FB85 0FB83 0FB87 0E2F8 0E2F9 0FB8D 0E279 0E2FA 0E2FB 0E271 0E2FC 0E2FD 0FB8B 0E2FE 0E2FF 0E302 0E305 0E308 0E30B 0E30E 0E311 0E23B 0E314 0E317 0FB6B 0E31A 0FB6F 0E31D 0E320 0FB8F 0E323 0E326 0E329 0FBD4 0E32C 0E32F 0FB9B 0E332 0FB97 0E335 0E273 0E338 0E33B 0E33E 0E341 0FB9F 0FBA1 0E344 0E347 0FBAB 0E253 0FBDA 0FBD8 0FBDC 0FBDF 0FBFD 0E276 0FBE5 0E27B ",
|
||||
"rphf": [],
|
||||
"half": [],
|
||||
"pref": [],
|
||||
"blwf": [],
|
||||
"pstf": []
|
||||
}
|
@ -0,0 +1,40 @@
|
||||
{
|
||||
"rtlSUB": {
|
||||
"007CA": { "1": "0E28E", "3": "0E28F", "2": "0E290" },
|
||||
"007CB": { "1": "0E291", "3": "0E292", "2": "0E293" },
|
||||
"007CC": { "1": "0E294", "3": "0E295", "2": "0E296" },
|
||||
"007CD": { "1": "0E297", "3": "0E298", "2": "0E299" },
|
||||
"007CE": { "1": "0E29A", "3": "0E29B", "2": "0E29C" },
|
||||
"007CF": { "1": "0E29D", "3": "0E29E", "2": "0E29F" },
|
||||
"007D0": { "1": "0E2A0", "3": "0E2A1", "2": "0E2A2" },
|
||||
"007D1": { "1": "0E2A3", "3": "0E2A4", "2": "0E2A5" },
|
||||
"007D2": { "1": "0E2A6", "3": "0E2A7", "2": "0E2A8" },
|
||||
"007D3": { "1": "0E2A9", "3": "0E2AA", "2": "0E2AB" },
|
||||
"007D4": { "1": "0E2AC", "3": "0E2AD", "2": "0E2AE" },
|
||||
"007D5": { "1": "0E2AF", "3": "0E2B0", "2": "0E2B1" },
|
||||
"007D6": { "1": "0E2B2", "3": "0E2B3", "2": "0E2B4" },
|
||||
"007D7": { "1": "0E2B5", "3": "0E2B6", "2": "0E2B7" },
|
||||
"007D8": { "1": "0E2B8", "3": "0E2B9", "2": "0E2BA" },
|
||||
"007D9": { "1": "0E2BB", "3": "0E2BC", "2": "0E2BD" },
|
||||
"007DA": { "1": "0E2BE", "3": "0E2BF", "2": "0E2C0" },
|
||||
"007DB": { "1": "0E2C1", "3": "0E2C2", "2": "0E2C3" },
|
||||
"007DC": { "1": "0E2C4", "3": "0E2C5", "2": "0E2C6" },
|
||||
"007DD": { "1": "0E2C7", "3": "0E2C8", "2": "0E2C9" },
|
||||
"007DE": { "1": "0E2CA", "3": "0E2CB", "2": "0E2CC" },
|
||||
"007DF": { "1": "0E2CD", "3": "0E2CE", "2": "0E2CF" },
|
||||
"007E0": { "1": "0E2D0", "3": "0E2D1", "2": "0E2D2" },
|
||||
"007E1": { "1": "0E2D3", "3": "0E2D4", "2": "0E2D5" },
|
||||
"007E2": { "1": "0E2D6", "3": "0E2D7", "2": "0E2D8" },
|
||||
"007E3": { "1": "0E2D9", "3": "0E2DA", "2": "0E2DB" },
|
||||
"007E4": { "1": "0E2DC", "3": "0E2DD", "2": "0E2DE" },
|
||||
"007E5": { "1": "0E2DF", "3": "0E2E0", "2": "0E2E1" },
|
||||
"007E6": { "1": "0E2E2", "3": "0E2E3", "2": "0E2E4" },
|
||||
"007E7": { "1": "0E2E5", "3": "0E2E6", "2": "0E2E7" }
|
||||
},
|
||||
"finals": "0E28E 0E291 0E294 0E297 0E29A 0E29D 0E2A0 0E2A3 0E2A6 0E2A9 0E2AC 0E2AF 0E2B2 0E2B5 0E2B8 0E2BB 0E2BE 0E2C1 0E2C4 0E2C7 0E2CA 0E2CD 0E2D0 0E2D3 0E2D6 0E2D9 0E2DC 0E2DF 0E2E2 0E2E5 ",
|
||||
"rphf": [],
|
||||
"half": [],
|
||||
"pref": [],
|
||||
"blwf": [],
|
||||
"pstf": []
|
||||
}
|
Binary file not shown.
@ -0,0 +1,656 @@
|
||||
[
|
||||
[{ "161": 0, "191": 1, "11800": 2 }],
|
||||
[
|
||||
{
|
||||
"1994": 0,
|
||||
"1995": 1,
|
||||
"1996": 2,
|
||||
"1997": 3,
|
||||
"1998": 4,
|
||||
"1999": 5,
|
||||
"2000": 6,
|
||||
"2001": 7,
|
||||
"2002": 8,
|
||||
"2003": 9,
|
||||
"2004": 10,
|
||||
"2005": 11,
|
||||
"2006": 12,
|
||||
"2007": 13,
|
||||
"2008": 14,
|
||||
"2009": 15,
|
||||
"2010": 16,
|
||||
"2011": 17,
|
||||
"2012": 18,
|
||||
"2013": 19,
|
||||
"2014": 20,
|
||||
"2015": 21,
|
||||
"2016": 22,
|
||||
"2017": 23,
|
||||
"2018": 24,
|
||||
"2019": 25,
|
||||
"2020": 26,
|
||||
"2021": 27,
|
||||
"2022": 28,
|
||||
"2023": 29,
|
||||
"2042": 30,
|
||||
"8205": 31,
|
||||
"57998": 32,
|
||||
"57999": 33,
|
||||
"58000": 34,
|
||||
"58001": 35,
|
||||
"58002": 36,
|
||||
"58003": 37,
|
||||
"58004": 38,
|
||||
"58005": 39,
|
||||
"58006": 40,
|
||||
"58007": 41,
|
||||
"58008": 42,
|
||||
"58009": 43,
|
||||
"58010": 44,
|
||||
"58011": 45,
|
||||
"58012": 46,
|
||||
"58013": 47,
|
||||
"58014": 48,
|
||||
"58015": 49,
|
||||
"58016": 50,
|
||||
"58017": 51,
|
||||
"58018": 52,
|
||||
"58019": 53,
|
||||
"58020": 54,
|
||||
"58021": 55,
|
||||
"58022": 56,
|
||||
"58023": 57,
|
||||
"58024": 58,
|
||||
"58025": 59,
|
||||
"58026": 60,
|
||||
"58027": 61,
|
||||
"58028": 62,
|
||||
"58029": 63,
|
||||
"58030": 64,
|
||||
"58031": 65,
|
||||
"58032": 66,
|
||||
"58033": 67,
|
||||
"58034": 68,
|
||||
"58035": 69,
|
||||
"58036": 70,
|
||||
"58037": 71,
|
||||
"58038": 72,
|
||||
"58039": 73,
|
||||
"58040": 74,
|
||||
"58041": 75,
|
||||
"58042": 76,
|
||||
"58043": 77,
|
||||
"58044": 78,
|
||||
"58045": 79,
|
||||
"58046": 80,
|
||||
"58047": 81,
|
||||
"58048": 82,
|
||||
"58049": 83,
|
||||
"58050": 84,
|
||||
"58051": 85,
|
||||
"58052": 86,
|
||||
"58053": 87,
|
||||
"58054": 88,
|
||||
"58055": 89,
|
||||
"58056": 90,
|
||||
"58057": 91,
|
||||
"58058": 92,
|
||||
"58059": 93,
|
||||
"58060": 94,
|
||||
"58061": 95,
|
||||
"58062": 96,
|
||||
"58063": 97,
|
||||
"58064": 98,
|
||||
"58065": 99,
|
||||
"58066": 100,
|
||||
"58067": 101,
|
||||
"58068": 102,
|
||||
"58069": 103,
|
||||
"58070": 104,
|
||||
"58071": 105,
|
||||
"58072": 106,
|
||||
"58073": 107,
|
||||
"58074": 108,
|
||||
"58075": 109,
|
||||
"58076": 110,
|
||||
"58077": 111,
|
||||
"58078": 112,
|
||||
"58079": 113,
|
||||
"58080": 114,
|
||||
"58081": 115,
|
||||
"58082": 116,
|
||||
"58083": 117,
|
||||
"58084": 118,
|
||||
"58085": 119,
|
||||
"58086": 120,
|
||||
"58087": 121
|
||||
}
|
||||
],
|
||||
[{ "1506": 0 }],
|
||||
[
|
||||
{
|
||||
"105": 0,
|
||||
"106": 1,
|
||||
"303": 2,
|
||||
"585": 3,
|
||||
"616": 4,
|
||||
"669": 5,
|
||||
"768": 6,
|
||||
"769": 7,
|
||||
"770": 8,
|
||||
"771": 9,
|
||||
"772": 10,
|
||||
"773": 11,
|
||||
"774": 12,
|
||||
"775": 13,
|
||||
"776": 14,
|
||||
"777": 15,
|
||||
"778": 16,
|
||||
"779": 17,
|
||||
"780": 18,
|
||||
"781": 19,
|
||||
"782": 20,
|
||||
"783": 21,
|
||||
"784": 22,
|
||||
"785": 23,
|
||||
"786": 24,
|
||||
"787": 25,
|
||||
"788": 26,
|
||||
"829": 27,
|
||||
"830": 28,
|
||||
"831": 29,
|
||||
"832": 30,
|
||||
"833": 31,
|
||||
"834": 32,
|
||||
"835": 33,
|
||||
"836": 34,
|
||||
"838": 35,
|
||||
"842": 36,
|
||||
"843": 37,
|
||||
"844": 38,
|
||||
"849": 39,
|
||||
"850": 40,
|
||||
"855": 41,
|
||||
"1011": 42,
|
||||
"1110": 43,
|
||||
"1112": 44,
|
||||
"1155": 45,
|
||||
"1156": 46,
|
||||
"1157": 47,
|
||||
"1158": 48,
|
||||
"7725": 49,
|
||||
"7883": 50,
|
||||
"8400": 51,
|
||||
"8401": 52,
|
||||
"8406": 53,
|
||||
"8407": 54,
|
||||
"8520": 55,
|
||||
"8521": 56
|
||||
}
|
||||
],
|
||||
[
|
||||
{ "741": 0, "742": 1, "743": 2, "744": 3, "745": 4 },
|
||||
{ "741": 0, "742": 1, "743": 2, "744": 3, "745": 4 },
|
||||
{ "741": 0, "742": 1, "743": 2, "744": 3, "745": 4 },
|
||||
{ "741": 0, "742": 1, "743": 2, "744": 3, "745": 4 },
|
||||
{ "741": 0, "742": 1, "743": 2, "744": 3, "745": 4 },
|
||||
{ "741": 0 },
|
||||
{ "742": 0 },
|
||||
{ "743": 0 },
|
||||
{ "744": 0 },
|
||||
{ "745": 0 }
|
||||
],
|
||||
[{ "1497": 0, "1522": 1 }],
|
||||
[{ "1073": 0 }],
|
||||
[{ "330": 0 }],
|
||||
[
|
||||
{
|
||||
"1994": 0,
|
||||
"1995": 1,
|
||||
"1996": 2,
|
||||
"1997": 3,
|
||||
"1998": 4,
|
||||
"1999": 5,
|
||||
"2000": 6,
|
||||
"2001": 7,
|
||||
"2002": 8,
|
||||
"2003": 9,
|
||||
"2004": 10,
|
||||
"2005": 11,
|
||||
"2006": 12,
|
||||
"2007": 13,
|
||||
"2008": 14,
|
||||
"2009": 15,
|
||||
"2010": 16,
|
||||
"2011": 17,
|
||||
"2012": 18,
|
||||
"2013": 19,
|
||||
"2014": 20,
|
||||
"2015": 21,
|
||||
"2016": 22,
|
||||
"2017": 23,
|
||||
"2018": 24,
|
||||
"2019": 25,
|
||||
"2020": 26,
|
||||
"2021": 27,
|
||||
"2022": 28,
|
||||
"2023": 29
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"1570": 0,
|
||||
"1571": 1,
|
||||
"1572": 2,
|
||||
"1573": 3,
|
||||
"1574": 4,
|
||||
"1575": 5,
|
||||
"1576": 6,
|
||||
"1577": 7,
|
||||
"1578": 8,
|
||||
"1579": 9,
|
||||
"1580": 10,
|
||||
"1581": 11,
|
||||
"1582": 12,
|
||||
"1583": 13,
|
||||
"1584": 14,
|
||||
"1585": 15,
|
||||
"1586": 16,
|
||||
"1587": 17,
|
||||
"1588": 18,
|
||||
"1589": 19,
|
||||
"1590": 20,
|
||||
"1591": 21,
|
||||
"1592": 22,
|
||||
"1593": 23,
|
||||
"1594": 24,
|
||||
"1601": 25,
|
||||
"1602": 26,
|
||||
"1603": 27,
|
||||
"1604": 28,
|
||||
"1605": 29,
|
||||
"1606": 30,
|
||||
"1607": 31,
|
||||
"1608": 32,
|
||||
"1609": 33,
|
||||
"1610": 34,
|
||||
"1646": 35,
|
||||
"1647": 36,
|
||||
"1657": 37,
|
||||
"1658": 38,
|
||||
"1659": 39,
|
||||
"1660": 40,
|
||||
"1661": 41,
|
||||
"1662": 42,
|
||||
"1663": 43,
|
||||
"1664": 44,
|
||||
"1665": 45,
|
||||
"1666": 46,
|
||||
"1667": 47,
|
||||
"1668": 48,
|
||||
"1669": 49,
|
||||
"1670": 50,
|
||||
"1671": 51,
|
||||
"1672": 52,
|
||||
"1673": 53,
|
||||
"1674": 54,
|
||||
"1675": 55,
|
||||
"1676": 56,
|
||||
"1677": 57,
|
||||
"1678": 58,
|
||||
"1679": 59,
|
||||
"1680": 60,
|
||||
"1681": 61,
|
||||
"1682": 62,
|
||||
"1683": 63,
|
||||
"1684": 64,
|
||||
"1685": 65,
|
||||
"1686": 66,
|
||||
"1687": 67,
|
||||
"1688": 68,
|
||||
"1689": 69,
|
||||
"1690": 70,
|
||||
"1691": 71,
|
||||
"1692": 72,
|
||||
"1693": 73,
|
||||
"1694": 74,
|
||||
"1695": 75,
|
||||
"1696": 76,
|
||||
"1697": 77,
|
||||
"1698": 78,
|
||||
"1699": 79,
|
||||
"1700": 80,
|
||||
"1701": 81,
|
||||
"1702": 82,
|
||||
"1703": 83,
|
||||
"1704": 84,
|
||||
"1705": 85,
|
||||
"1706": 86,
|
||||
"1707": 87,
|
||||
"1708": 88,
|
||||
"1709": 89,
|
||||
"1710": 90,
|
||||
"1711": 91,
|
||||
"1712": 92,
|
||||
"1713": 93,
|
||||
"1714": 94,
|
||||
"1715": 95,
|
||||
"1716": 96,
|
||||
"1717": 97,
|
||||
"1718": 98,
|
||||
"1719": 99,
|
||||
"1720": 100,
|
||||
"1721": 101,
|
||||
"1722": 102,
|
||||
"1723": 103,
|
||||
"1724": 104,
|
||||
"1725": 105,
|
||||
"1726": 106,
|
||||
"1727": 107,
|
||||
"1734": 108,
|
||||
"1735": 109,
|
||||
"1736": 110,
|
||||
"1739": 111,
|
||||
"1740": 112,
|
||||
"1742": 113,
|
||||
"1744": 114,
|
||||
"1749": 115
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"1994": 0,
|
||||
"1995": 1,
|
||||
"1996": 2,
|
||||
"1997": 3,
|
||||
"1998": 4,
|
||||
"1999": 5,
|
||||
"2000": 6,
|
||||
"2001": 7,
|
||||
"2002": 8,
|
||||
"2003": 9,
|
||||
"2004": 10,
|
||||
"2005": 11,
|
||||
"2006": 12,
|
||||
"2007": 13,
|
||||
"2008": 14,
|
||||
"2009": 15,
|
||||
"2010": 16,
|
||||
"2011": 17,
|
||||
"2012": 18,
|
||||
"2013": 19,
|
||||
"2014": 20,
|
||||
"2015": 21,
|
||||
"2016": 22,
|
||||
"2017": 23,
|
||||
"2018": 24,
|
||||
"2019": 25,
|
||||
"2020": 26,
|
||||
"2021": 27,
|
||||
"2022": 28,
|
||||
"2023": 29
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"1574": 0,
|
||||
"1576": 1,
|
||||
"1578": 2,
|
||||
"1579": 3,
|
||||
"1580": 4,
|
||||
"1581": 5,
|
||||
"1582": 6,
|
||||
"1587": 7,
|
||||
"1588": 8,
|
||||
"1589": 9,
|
||||
"1590": 10,
|
||||
"1591": 11,
|
||||
"1592": 12,
|
||||
"1593": 13,
|
||||
"1594": 14,
|
||||
"1601": 15,
|
||||
"1602": 16,
|
||||
"1603": 17,
|
||||
"1604": 18,
|
||||
"1605": 19,
|
||||
"1606": 20,
|
||||
"1607": 21,
|
||||
"1609": 22,
|
||||
"1610": 23,
|
||||
"1646": 24,
|
||||
"1647": 25,
|
||||
"1657": 26,
|
||||
"1658": 27,
|
||||
"1659": 28,
|
||||
"1660": 29,
|
||||
"1661": 30,
|
||||
"1662": 31,
|
||||
"1663": 32,
|
||||
"1664": 33,
|
||||
"1665": 34,
|
||||
"1666": 35,
|
||||
"1667": 36,
|
||||
"1668": 37,
|
||||
"1669": 38,
|
||||
"1670": 39,
|
||||
"1671": 40,
|
||||
"1690": 41,
|
||||
"1691": 42,
|
||||
"1692": 43,
|
||||
"1693": 44,
|
||||
"1694": 45,
|
||||
"1695": 46,
|
||||
"1696": 47,
|
||||
"1697": 48,
|
||||
"1698": 49,
|
||||
"1699": 50,
|
||||
"1700": 51,
|
||||
"1701": 52,
|
||||
"1702": 53,
|
||||
"1703": 54,
|
||||
"1704": 55,
|
||||
"1705": 56,
|
||||
"1706": 57,
|
||||
"1707": 58,
|
||||
"1708": 59,
|
||||
"1709": 60,
|
||||
"1710": 61,
|
||||
"1711": 62,
|
||||
"1712": 63,
|
||||
"1713": 64,
|
||||
"1714": 65,
|
||||
"1715": 66,
|
||||
"1716": 67,
|
||||
"1717": 68,
|
||||
"1718": 69,
|
||||
"1719": 70,
|
||||
"1720": 71,
|
||||
"1721": 72,
|
||||
"1722": 73,
|
||||
"1723": 74,
|
||||
"1724": 75,
|
||||
"1725": 76,
|
||||
"1726": 77,
|
||||
"1727": 78,
|
||||
"1740": 79,
|
||||
"1742": 80,
|
||||
"1744": 81
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"1994": 0,
|
||||
"1995": 1,
|
||||
"1996": 2,
|
||||
"1997": 3,
|
||||
"1998": 4,
|
||||
"1999": 5,
|
||||
"2000": 6,
|
||||
"2001": 7,
|
||||
"2002": 8,
|
||||
"2003": 9,
|
||||
"2004": 10,
|
||||
"2005": 11,
|
||||
"2006": 12,
|
||||
"2007": 13,
|
||||
"2008": 14,
|
||||
"2009": 15,
|
||||
"2010": 16,
|
||||
"2011": 17,
|
||||
"2012": 18,
|
||||
"2013": 19,
|
||||
"2014": 20,
|
||||
"2015": 21,
|
||||
"2016": 22,
|
||||
"2017": 23,
|
||||
"2018": 24,
|
||||
"2019": 25,
|
||||
"2020": 26,
|
||||
"2021": 27,
|
||||
"2022": 28,
|
||||
"2023": 29
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"1574": 0,
|
||||
"1576": 1,
|
||||
"1578": 2,
|
||||
"1579": 3,
|
||||
"1580": 4,
|
||||
"1581": 5,
|
||||
"1582": 6,
|
||||
"1587": 7,
|
||||
"1588": 8,
|
||||
"1589": 9,
|
||||
"1590": 10,
|
||||
"1591": 11,
|
||||
"1592": 12,
|
||||
"1593": 13,
|
||||
"1594": 14,
|
||||
"1601": 15,
|
||||
"1602": 16,
|
||||
"1603": 17,
|
||||
"1604": 18,
|
||||
"1605": 19,
|
||||
"1606": 20,
|
||||
"1607": 21,
|
||||
"1609": 22,
|
||||
"1610": 23,
|
||||
"1646": 24,
|
||||
"1647": 25,
|
||||
"1657": 26,
|
||||
"1658": 27,
|
||||
"1659": 28,
|
||||
"1660": 29,
|
||||
"1661": 30,
|
||||
"1662": 31,
|
||||
"1663": 32,
|
||||
"1664": 33,
|
||||
"1665": 34,
|
||||
"1666": 35,
|
||||
"1667": 36,
|
||||
"1668": 37,
|
||||
"1669": 38,
|
||||
"1670": 39,
|
||||
"1671": 40,
|
||||
"1690": 41,
|
||||
"1691": 42,
|
||||
"1692": 43,
|
||||
"1693": 44,
|
||||
"1694": 45,
|
||||
"1695": 46,
|
||||
"1696": 47,
|
||||
"1697": 48,
|
||||
"1698": 49,
|
||||
"1699": 50,
|
||||
"1700": 51,
|
||||
"1701": 52,
|
||||
"1702": 53,
|
||||
"1703": 54,
|
||||
"1704": 55,
|
||||
"1705": 56,
|
||||
"1706": 57,
|
||||
"1707": 58,
|
||||
"1708": 59,
|
||||
"1709": 60,
|
||||
"1710": 61,
|
||||
"1711": 62,
|
||||
"1712": 63,
|
||||
"1713": 64,
|
||||
"1714": 65,
|
||||
"1715": 66,
|
||||
"1716": 67,
|
||||
"1717": 68,
|
||||
"1718": 69,
|
||||
"1719": 70,
|
||||
"1720": 71,
|
||||
"1721": 72,
|
||||
"1722": 73,
|
||||
"1723": 74,
|
||||
"1724": 75,
|
||||
"1725": 76,
|
||||
"1726": 77,
|
||||
"1727": 78,
|
||||
"1740": 79,
|
||||
"1742": 80,
|
||||
"1744": 81
|
||||
}
|
||||
],
|
||||
[{ "1613": 0, "1616": 1, "1617": 2 }],
|
||||
[{ "1611": 0, "1612": 1, "1614": 2, "1615": 3, "1617": 4, "1620": 5 }],
|
||||
[{ "65247": 0, "65248": 1 }],
|
||||
[{ "65247": 0, "65248": 1 }],
|
||||
[{ "102": 0 }],
|
||||
[{ "32": 0, "1575": 1, "1600": 2, "1608": 3, "1610": 4 }],
|
||||
[{ "1488": 0 }],
|
||||
[{ "1381": 0, "1396": 1, "1406": 2 }],
|
||||
[{ "115": 0 }],
|
||||
[{ "383": 0 }],
|
||||
[{ "33": 0, "63": 1, "70": 2, "82": 3, "83": 4, "84": 5, "97": 6, "99": 7 }],
|
||||
[{ "1471": 0 }],
|
||||
[{ "1471": 0 }],
|
||||
[{ "910": 0, "933": 1, "939": 2, "946": 3, "952": 4, "960": 5, "966": 6 }],
|
||||
[{ "910": 0, "933": 1, "939": 2, "946": 3, "952": 4, "960": 5, "966": 6 }],
|
||||
[{ "73": 0, "74": 1, "97": 2, "108": 3, "330": 4 }],
|
||||
[{ "73": 0, "74": 1, "97": 2, "108": 3, "121": 4, "330": 5 }],
|
||||
[{ "1506": 0 }],
|
||||
[
|
||||
{
|
||||
"768": 0,
|
||||
"769": 1,
|
||||
"770": 2,
|
||||
"771": 3,
|
||||
"774": 4,
|
||||
"775": 5,
|
||||
"776": 6,
|
||||
"779": 7,
|
||||
"780": 8,
|
||||
"783": 9,
|
||||
"785": 10
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"105": 0,
|
||||
"106": 1,
|
||||
"303": 2,
|
||||
"585": 3,
|
||||
"616": 4,
|
||||
"669": 5,
|
||||
"1011": 6,
|
||||
"1110": 7,
|
||||
"1112": 8,
|
||||
"7725": 9,
|
||||
"7883": 10,
|
||||
"8520": 11,
|
||||
"8521": 12
|
||||
}
|
||||
],
|
||||
[{ "741": 0, "742": 1, "743": 2, "744": 3, "745": 4 }],
|
||||
[{ "741": 0, "742": 1, "743": 2, "744": 3, "745": 4 }],
|
||||
[{ "741": 0, "742": 1, "743": 2, "744": 3, "745": 4 }],
|
||||
[{ "741": 0, "742": 1, "743": 2, "744": 3, "745": 4 }],
|
||||
[{ "741": 0, "742": 1, "743": 2, "744": 3, "745": 4 }],
|
||||
[{ "741": 0, "742": 1, "743": 2, "744": 3, "745": 4 }]
|
||||
]
|
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@ -116,7 +116,7 @@ function extension_api_checker()
|
||||
''
|
||||
);
|
||||
|
||||
$table = null;
|
||||
$table = new stdClass();
|
||||
$table->data = [];
|
||||
|
||||
$row = [];
|
||||
@ -144,7 +144,7 @@ function extension_api_checker()
|
||||
$row[] = html_print_input_password('password', $password, '', 50, 255, true);
|
||||
$table->data[] = $row;
|
||||
|
||||
$table2 = null;
|
||||
$table2 = new stdClass();
|
||||
$table2->data = [];
|
||||
|
||||
$row = [];
|
||||
@ -182,7 +182,7 @@ function extension_api_checker()
|
||||
$row[] = html_print_input_text('other_mode', $other_mode, '', 50, 255, true);
|
||||
$table2->data[] = $row;
|
||||
|
||||
$table3 = null;
|
||||
$table3 = new stdClass();
|
||||
$table3->data = [];
|
||||
|
||||
$row = [];
|
||||
|
@ -74,7 +74,7 @@ function extension_uploader_extensions()
|
||||
);
|
||||
}
|
||||
|
||||
$table = null;
|
||||
$table = new stdClass();
|
||||
|
||||
$table->width = '100%';
|
||||
$table->class = 'databox filters';
|
||||
|
@ -33,6 +33,31 @@ require_once $config['homedir'].'/include/functions_agents.php';
|
||||
require_once $config['homedir'].'/godmode/wizards/Wizard.main.php';
|
||||
|
||||
|
||||
/**
|
||||
* Undocumented function
|
||||
*
|
||||
* @param string $url Url.
|
||||
* @param array $params Params.
|
||||
*
|
||||
* @return mixed Result
|
||||
*/
|
||||
function curl(string $url, array $params)
|
||||
{
|
||||
$ch = curl_init();
|
||||
curl_setopt($ch, CURLOPT_URL, $url);
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
||||
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
|
||||
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
|
||||
curl_setopt($ch, CURLOPT_POST, true);
|
||||
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
|
||||
$get_result = curl_exec($ch);
|
||||
|
||||
curl_close($ch);
|
||||
|
||||
return $get_result;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Show Quick Shell interface.
|
||||
*
|
||||
@ -110,7 +135,7 @@ function quickShell()
|
||||
// No username provided, ask for it.
|
||||
$wiz = new Wizard();
|
||||
|
||||
$test = file_get_contents($ws_url, false, $context);
|
||||
$test = curl($ws_url, []);
|
||||
if ($test === false) {
|
||||
ui_print_error_message(__('WebService engine has not been started, please check documentation.'));
|
||||
$wiz->printForm(
|
||||
@ -210,7 +235,7 @@ function quickShell()
|
||||
|
||||
// If rediretion is enabled, we will try to connect using
|
||||
// http:// or https:// endpoint.
|
||||
$test = get_headers($ws_url, null, $context);
|
||||
$test = get_headers($ws_url, false, $context);
|
||||
if ($test === false) {
|
||||
if (empty($wiz) === true) {
|
||||
$wiz = new Wizard();
|
||||
|
@ -425,7 +425,7 @@ function resource_exportation_extension_main()
|
||||
|
||||
echo '<br /><br />';
|
||||
|
||||
$table = null;
|
||||
$table = new stdClass();
|
||||
$table->width = '100%';
|
||||
$table->style[0] = 'width: 30%;';
|
||||
$table->style[1] = 'width: 10%;';
|
||||
|
@ -1,19 +1,32 @@
|
||||
START TRANSACTION;
|
||||
|
||||
ALTER TABLE `tpolicy_queue` MODIFY COLUMN `progress` int(10) NOT NULL default '0';
|
||||
CREATE INDEX `IDX_tservice_element` ON `tservice_element`(`id_service`,`id_agente_modulo`);
|
||||
ALTER TABLE `tusuario` ADD COLUMN `local_user` tinyint(1) unsigned NOT NULL DEFAULT 0;
|
||||
ALTER TABLE tevent_response ADD COLUMN display_command tinyint(1) default 0;
|
||||
|
||||
ALTER TABLE `talert_execution_queue`
|
||||
DROP COLUMN `id_alert_template_module`,
|
||||
DROP COLUMN `alert_mode`,
|
||||
DROP COLUMN `extra_macros`,
|
||||
MODIFY COLUMN `data` LONGTEXT;
|
||||
|
||||
ALTER TABLE `talert_templates` ADD COLUMN `schedule` TEXT;
|
||||
ALTER TABLE `tevent_alert` ADD COLUMN `schedule` TEXT;
|
||||
|
||||
SOURCE procedures/alertTemplates.sql;
|
||||
CALL `migrateRanges`();
|
||||
DROP PROCEDURE `migrateRanges`;
|
||||
|
||||
SOURCE procedures/alertEvents.sql;
|
||||
CALL `migrateEventRanges`();
|
||||
DROP PROCEDURE `migrateEventRanges`;
|
||||
|
||||
ALTER TABLE `tautoconfig` ADD COLUMN `disabled` TINYINT DEFAULT 0;
|
||||
|
||||
UPDATE `tpolicy_groups` SET `policy_applied`=0;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `tpolicy_group_agents` (
|
||||
`id` SERIAL,
|
||||
`id_policy` INT UNSIGNED,
|
||||
`id_agent` INT UNSIGNED,
|
||||
`direct` TINYINT UNSIGNED DEFAULT 0,
|
||||
FOREIGN KEY (`id_policy`) REFERENCES `tpolicies`(`id`)
|
||||
ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
FOREIGN KEY (`id_agent`) REFERENCES `tagente`(`id_agente`)
|
||||
ON DELETE CASCADE ON UPDATE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
COMMIT;
|
||||
|
@ -1,40 +0,0 @@
|
||||
|
||||
CREATE PROCEDURE migrateEventRanges()
|
||||
BEGIN
|
||||
DECLARE done INT DEFAULT FALSE;
|
||||
DECLARE i INT;
|
||||
DECLARE r TEXT;
|
||||
DECLARE cur1 CURSOR FOR SELECT `id` FROM `tevent_alert`;
|
||||
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
|
||||
|
||||
UPDATE `tevent_alert` SET `schedule` = '{"monday":_1_,"tuesday":_2_,"wednesday":_3_,"thursday":_4_,"friday":_5_,"saturday":_6_,"sunday":_7_}';
|
||||
UPDATE `tevent_alert` SET `time_from` = "00:00:00", `time_to` = "00:00:00" WHERE `time_from` = `time_to`;
|
||||
|
||||
OPEN cur1;
|
||||
read_loop: LOOP
|
||||
FETCH cur1 INTO i;
|
||||
|
||||
IF done THEN
|
||||
LEAVE read_loop;
|
||||
END IF;
|
||||
|
||||
SELECT concat('[{"start":"', `time_from`, '","end":"', `time_to`, '"}]') into r FROM `tevent_alert` WHERE `id` = i;
|
||||
|
||||
UPDATE `tevent_alert` SET `schedule` = REPLACE(`schedule`, "_1_", r) WHERE `monday` > 0 AND `id` = i;
|
||||
UPDATE `tevent_alert` SET `schedule` = REPLACE(`schedule`, "_2_", r) WHERE `tuesday` > 0 AND `id` = i;
|
||||
UPDATE `tevent_alert` SET `schedule` = REPLACE(`schedule`, "_3_", r) WHERE `wednesday` > 0 AND `id` = i;
|
||||
UPDATE `tevent_alert` SET `schedule` = REPLACE(`schedule`, "_4_", r) WHERE `thursday` > 0 AND `id` = i;
|
||||
UPDATE `tevent_alert` SET `schedule` = REPLACE(`schedule`, "_5_", r) WHERE `friday` > 0 AND `id` = i;
|
||||
UPDATE `tevent_alert` SET `schedule` = REPLACE(`schedule`, "_6_", r) WHERE `saturday` > 0 AND `id` = i;
|
||||
UPDATE `tevent_alert` SET `schedule` = REPLACE(`schedule`, "_7_", r) WHERE `sunday` > 0 AND `id` = i;
|
||||
|
||||
UPDATE `tevent_alert` SET `schedule` = REPLACE(`schedule`, "_1_", '""') WHERE `monday` = 0 AND `id` = i;
|
||||
UPDATE `tevent_alert` SET `schedule` = REPLACE(`schedule`, "_2_", '""') WHERE `tuesday` = 0 AND `id` = i;
|
||||
UPDATE `tevent_alert` SET `schedule` = REPLACE(`schedule`, "_3_", '""') WHERE `wednesday` = 0 AND `id` = i;
|
||||
UPDATE `tevent_alert` SET `schedule` = REPLACE(`schedule`, "_4_", '""') WHERE `thursday` = 0 AND `id` = i;
|
||||
UPDATE `tevent_alert` SET `schedule` = REPLACE(`schedule`, "_5_", '""') WHERE `friday` = 0 AND `id` = i;
|
||||
UPDATE `tevent_alert` SET `schedule` = REPLACE(`schedule`, "_6_", '""') WHERE `saturday` = 0 AND `id` = i;
|
||||
UPDATE `tevent_alert` SET `schedule` = REPLACE(`schedule`, "_7_", '""') WHERE `sunday` = 0 AND `id` = i;
|
||||
END LOOP;
|
||||
CLOSE cur1;
|
||||
END ;
|
@ -1,40 +0,0 @@
|
||||
|
||||
CREATE PROCEDURE migrateRanges()
|
||||
BEGIN
|
||||
DECLARE done INT DEFAULT FALSE;
|
||||
DECLARE i INT;
|
||||
DECLARE r TEXT;
|
||||
DECLARE cur1 CURSOR FOR SELECT `id` FROM `talert_templates`;
|
||||
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
|
||||
|
||||
UPDATE `talert_templates` SET `schedule` = '{"monday":_1_,"tuesday":_2_,"wednesday":_3_,"thursday":_4_,"friday":_5_,"saturday":_6_,"sunday":_7_}';
|
||||
UPDATE `talert_templates` SET `time_from` = "00:00:00", `time_to` = "00:00:00" WHERE `time_from` = `time_to`;
|
||||
|
||||
OPEN cur1;
|
||||
read_loop: LOOP
|
||||
FETCH cur1 INTO i;
|
||||
|
||||
IF done THEN
|
||||
LEAVE read_loop;
|
||||
END IF;
|
||||
|
||||
SELECT concat('[{"start":"', `time_from`, '","end":"', `time_to`, '"}]') into r FROM `talert_templates` WHERE `id` = i;
|
||||
|
||||
UPDATE `talert_templates` SET `schedule` = REPLACE(`schedule`, "_1_", r) WHERE `monday` > 0 AND `id` = i;
|
||||
UPDATE `talert_templates` SET `schedule` = REPLACE(`schedule`, "_2_", r) WHERE `tuesday` > 0 AND `id` = i;
|
||||
UPDATE `talert_templates` SET `schedule` = REPLACE(`schedule`, "_3_", r) WHERE `wednesday` > 0 AND `id` = i;
|
||||
UPDATE `talert_templates` SET `schedule` = REPLACE(`schedule`, "_4_", r) WHERE `thursday` > 0 AND `id` = i;
|
||||
UPDATE `talert_templates` SET `schedule` = REPLACE(`schedule`, "_5_", r) WHERE `friday` > 0 AND `id` = i;
|
||||
UPDATE `talert_templates` SET `schedule` = REPLACE(`schedule`, "_6_", r) WHERE `saturday` > 0 AND `id` = i;
|
||||
UPDATE `talert_templates` SET `schedule` = REPLACE(`schedule`, "_7_", r) WHERE `sunday` > 0 AND `id` = i;
|
||||
|
||||
UPDATE `talert_templates` SET `schedule` = REPLACE(`schedule`, "_1_", '""') WHERE `monday` = 0 AND `id` = i;
|
||||
UPDATE `talert_templates` SET `schedule` = REPLACE(`schedule`, "_2_", '""') WHERE `tuesday` = 0 AND `id` = i;
|
||||
UPDATE `talert_templates` SET `schedule` = REPLACE(`schedule`, "_3_", '""') WHERE `wednesday` = 0 AND `id` = i;
|
||||
UPDATE `talert_templates` SET `schedule` = REPLACE(`schedule`, "_4_", '""') WHERE `thursday` = 0 AND `id` = i;
|
||||
UPDATE `talert_templates` SET `schedule` = REPLACE(`schedule`, "_5_", '""') WHERE `friday` = 0 AND `id` = i;
|
||||
UPDATE `talert_templates` SET `schedule` = REPLACE(`schedule`, "_6_", '""') WHERE `saturday` = 0 AND `id` = i;
|
||||
UPDATE `talert_templates` SET `schedule` = REPLACE(`schedule`, "_7_", '""') WHERE `sunday` = 0 AND `id` = i;
|
||||
END LOOP;
|
||||
CLOSE cur1;
|
||||
END ;
|
@ -213,6 +213,20 @@ CREATE TABLE IF NOT EXISTS `tpolicy_groups` (
|
||||
UNIQUE (`id_policy`, `id_group`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
-- -----------------------------------------------------
|
||||
-- Table `tpolicy_group_agents`
|
||||
-- -----------------------------------------------------
|
||||
CREATE TABLE IF NOT EXISTS `tpolicy_group_agents` (
|
||||
`id` SERIAL,
|
||||
`id_policy` INT UNSIGNED,
|
||||
`id_agent` INT UNSIGNED,
|
||||
`direct` TINYINT UNSIGNED DEFAULT 0,
|
||||
FOREIGN KEY (`id_policy`) REFERENCES `tpolicies`(`id`)
|
||||
ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
FOREIGN KEY (`id_agent`) REFERENCES `tagente`(`id_agente`)
|
||||
ON DELETE CASCADE ON UPDATE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
-- ---------------------------------------------------------------------
|
||||
-- Table `tdashboard`
|
||||
-- ---------------------------------------------------------------------
|
||||
@ -1551,6 +1565,7 @@ ALTER TABLE `tusuario` MODIFY COLUMN `default_event_filter` int(10) unsigned NOT
|
||||
DROP INDEX `fk_id_filter`;
|
||||
ALTER TABLE `tusuario` ADD COLUMN `integria_user_level_user` VARCHAR(60);
|
||||
ALTER TABLE `tusuario` ADD COLUMN `integria_user_level_pass` VARCHAR(45);
|
||||
ALTER TABLE `tusuario` ADD COLUMN `local_user` tinyint(1) unsigned NOT NULL DEFAULT 0;
|
||||
|
||||
|
||||
-- ---------------------------------------------------------------------
|
||||
@ -4123,14 +4138,11 @@ ALTER TABLE `tperfil` ADD COLUMN `network_config_management`tinyint(1) NOT NULL
|
||||
-- Table `talert_execution_queue`
|
||||
-- -----------------------------------------------------
|
||||
CREATE TABLE IF NOT EXISTS `talert_execution_queue` (
|
||||
`id` int(10) unsigned NOT NULL auto_increment,
|
||||
`id_alert_template_module` int(10) unsigned NOT NULL,
|
||||
`alert_mode` tinyint(1) NOT NULL,
|
||||
`data` mediumtext NOT NULL,
|
||||
`extra_macros` text,
|
||||
`utimestamp` bigint(20) NOT NULL default '0',
|
||||
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
`data` LONGTEXT,
|
||||
`utimestamp` BIGINT NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=UTF8MB4;
|
||||
|
||||
UPDATE `tlanguage` SET `name` = 'Deutsch' WHERE `id_language` = 'de';
|
||||
|
@ -36,6 +36,7 @@ echo sprintf('<div id="header_table" class="header_table_%s">', $menuTypeClass);
|
||||
).'</div>';
|
||||
|
||||
// ======= Servers List ===============================================
|
||||
if ((bool) check_acl($config['id_user'], 0, 'AW') !== false) {
|
||||
$servers_list = '<div id="servers_list">';
|
||||
$servers = [];
|
||||
$servers['all'] = (int) db_get_value('COUNT(id_server)', 'tserver');
|
||||
@ -60,6 +61,7 @@ echo sprintf('<div id="header_table" class="header_table_%s">', $menuTypeClass);
|
||||
$servers_check_img_link .= '</a>';
|
||||
};
|
||||
$servers_list .= $servers_check_img_link.'</div>';
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -206,6 +208,8 @@ echo sprintf('<div id="header_table" class="header_table_%s">', $menuTypeClass);
|
||||
$select[0]['autorefresh_white_list']
|
||||
);
|
||||
|
||||
$header_autorefresh = '';
|
||||
$header_autorefresh_counter = '';
|
||||
if ($config['legacy_vc']
|
||||
|| ($_GET['sec2'] !== 'operation/visual_console/render_view')
|
||||
|| (($_GET['sec2'] !== 'operation/visual_console/render_view')
|
||||
@ -900,6 +904,7 @@ echo sprintf('<div id="header_table" class="header_table_%s">', $menuTypeClass);
|
||||
if ($_GET['refr']
|
||||
|| (isset($do_refresh) === true && $do_refresh === true)
|
||||
) {
|
||||
$autorefresh_draw = false;
|
||||
if ($_GET['sec2'] == 'operation/events/events') {
|
||||
$autorefresh_draw = true;
|
||||
}
|
||||
|
@ -36,7 +36,7 @@ if (isset($config['id_user']) === false) {
|
||||
<script type="text/javascript" language="javascript">
|
||||
|
||||
$(document).ready(function(){
|
||||
var menuType_value = "<?php echo $_SESSION['menu_type']; ?>";
|
||||
var menuType_value = "<?php echo ($_SESSION['menu_type'] ?? ''); ?>";
|
||||
|
||||
if (menuType_value === '' || menuType_value === 'classic') {
|
||||
$('ul.submenu').css('left', '214px');
|
||||
@ -107,7 +107,12 @@ echo '</a></div>';
|
||||
require 'operation/menu.php';
|
||||
require 'godmode/menu.php';
|
||||
|
||||
echo sprintf('<div id="button_collapse" class="button_%s button_collapse"></div>', $menuTypeClass);
|
||||
html_print_div(
|
||||
[
|
||||
'id' => 'button_collapse',
|
||||
'class' => sprintf('button_collapse button_%s', $menuTypeClass),
|
||||
]
|
||||
);
|
||||
|
||||
echo '</div>';
|
||||
// Menu_container.
|
||||
|
@ -47,7 +47,7 @@ if (is_ajax()) {
|
||||
$string = (string) get_parameter('q');
|
||||
// Field q is what autocomplete plugin gives.
|
||||
$filter = [];
|
||||
$filter[] = '(nombre COLLATE utf8_general_ci LIKE "%'.$string.'%" OR direccion LIKE "%'.$string.'%" OR comentarios LIKE "%'.$string.'%" OR alias LIKE "%'.$string.'%")';
|
||||
$filter[] = '(nombre LIKE "%'.$string.'%" OR direccion LIKE "%'.$string.'%" OR comentarios LIKE "%'.$string.'%" OR alias LIKE "%'.$string.'%")';
|
||||
$filter[] = 'id_agente != '.$id_agent;
|
||||
|
||||
$agents = agents_get_agents(
|
||||
|
@ -30,8 +30,8 @@
|
||||
global $config;
|
||||
|
||||
enterprise_include('godmode/agentes/configurar_agente.php');
|
||||
enterprise_include('include/functions_policies.php');
|
||||
enterprise_include_once('include/functions_modules.php');
|
||||
enterprise_include('include/functions_policies.php');
|
||||
require_once $config['homedir'].'/include/functions_agents.php';
|
||||
require_once $config['homedir'].'/include/functions_cron.php';
|
||||
ui_require_javascript_file('encode_decode_base64');
|
||||
@ -307,23 +307,6 @@ if ($create_agent) {
|
||||
|
||||
$agent_created_ok = true;
|
||||
|
||||
$tpolicy_group_old = db_get_all_rows_sql(
|
||||
'SELECT id_policy FROM tpolicy_groups
|
||||
WHERE id_group = '.$grupo
|
||||
);
|
||||
|
||||
if ($tpolicy_group_old) {
|
||||
foreach ($tpolicy_group_old as $key => $old_group) {
|
||||
db_process_sql_insert(
|
||||
'tpolicy_agents',
|
||||
[
|
||||
'id_policy' => $old_group['id_policy'],
|
||||
'id_agent' => $id_agente,
|
||||
]
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
$info = '{"Name":"'.$nombre_agente.'",
|
||||
"IP":"'.$direccion_agente.'",
|
||||
"Group":"'.$grupo.'",
|
||||
@ -1117,12 +1100,6 @@ if ($update_agent) {
|
||||
// Force an update of the agent cache.
|
||||
}
|
||||
|
||||
$group_old = db_get_sql('SELECT id_grupo FROM tagente WHERE id_agente ='.$id_agente);
|
||||
$tpolicy_group_old = db_get_all_rows_sql(
|
||||
'SELECT id_policy FROM tpolicy_groups
|
||||
WHERE id_group = '.$group_old
|
||||
);
|
||||
|
||||
$result = db_process_sql_update('tagente', $values, ['id_agente' => $id_agente]);
|
||||
|
||||
if ($result === false && $update_custom_result == false) {
|
||||
@ -1161,59 +1138,6 @@ if ($update_agent) {
|
||||
}
|
||||
}
|
||||
|
||||
if ($tpolicy_group_old) {
|
||||
foreach ($tpolicy_group_old as $key => $value) {
|
||||
$tpolicy_agents_old = db_get_sql(
|
||||
'SELECT * FROM tpolicy_agents
|
||||
WHERE id_policy = '.$value['id_policy'].' AND id_agent = '.$id_agente
|
||||
);
|
||||
|
||||
if ($tpolicy_agents_old) {
|
||||
$result2 = db_process_sql_update(
|
||||
'tpolicy_agents',
|
||||
['pending_delete' => 1],
|
||||
[
|
||||
'id_agent' => $id_agente,
|
||||
'id_policy' => $value['id_policy'],
|
||||
]
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$tpolicy_group = db_get_all_rows_sql(
|
||||
'SELECT id_policy FROM tpolicy_groups
|
||||
WHERE id_group = '.$grupo
|
||||
);
|
||||
|
||||
if ($tpolicy_group) {
|
||||
foreach ($tpolicy_group as $key => $value) {
|
||||
$tpolicy_agents = db_get_sql(
|
||||
'SELECT * FROM tpolicy_agents
|
||||
WHERE id_policy = '.$value['id_policy'].' AND id_agent ='.$id_agente
|
||||
);
|
||||
|
||||
if (!$tpolicy_agents) {
|
||||
db_process_sql_insert(
|
||||
'tpolicy_agents',
|
||||
[
|
||||
'id_policy' => $value['id_policy'],
|
||||
'id_agent' => $id_agente,
|
||||
]
|
||||
);
|
||||
} else {
|
||||
$result3 = db_process_sql_update(
|
||||
'tpolicy_agents',
|
||||
['pending_delete' => 0],
|
||||
[
|
||||
'id_agent' => $id_agente,
|
||||
'id_policy' => $value['id_policy'],
|
||||
]
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$info = '{
|
||||
"id_agente":"'.$id_agente.'",
|
||||
"alias":"'.$alias.'",
|
||||
|
@ -374,23 +374,6 @@ echo '</form>';
|
||||
echo '<td>';
|
||||
echo '</tr></table>';
|
||||
|
||||
$order_collation = '';
|
||||
switch ($config['dbtype']) {
|
||||
case 'mysql':
|
||||
$order_collation = '';
|
||||
$order_collation = 'COLLATE utf8_general_ci';
|
||||
break;
|
||||
|
||||
case 'postgresql':
|
||||
case 'oracle':
|
||||
$order_collation = '';
|
||||
break;
|
||||
|
||||
default:
|
||||
// Default.
|
||||
break;
|
||||
}
|
||||
|
||||
$selected = true;
|
||||
$selectNameUp = false;
|
||||
$selectNameDown = false;
|
||||
@ -405,7 +388,7 @@ switch ($sortField) {
|
||||
$selectRemoteUp = $selected;
|
||||
$order = [
|
||||
'field' => 'remote ',
|
||||
'field2' => 'nombre '.$order_collation,
|
||||
'field2' => 'nombre ',
|
||||
'order' => 'ASC',
|
||||
];
|
||||
break;
|
||||
@ -414,7 +397,7 @@ switch ($sortField) {
|
||||
$selectRemoteDown = $selected;
|
||||
$order = [
|
||||
'field' => 'remote ',
|
||||
'field2' => 'nombre '.$order_collation,
|
||||
'field2' => 'nombre ',
|
||||
'order' => 'DESC',
|
||||
];
|
||||
break;
|
||||
@ -430,8 +413,8 @@ switch ($sortField) {
|
||||
case 'up':
|
||||
$selectNameUp = $selected;
|
||||
$order = [
|
||||
'field' => 'alias '.$order_collation,
|
||||
'field2' => 'alias '.$order_collation,
|
||||
'field' => 'alias ',
|
||||
'field2' => 'alias ',
|
||||
'order' => 'ASC',
|
||||
];
|
||||
break;
|
||||
@ -439,8 +422,8 @@ switch ($sortField) {
|
||||
case 'down':
|
||||
$selectNameDown = $selected;
|
||||
$order = [
|
||||
'field' => 'alias '.$order_collation,
|
||||
'field2' => 'alias '.$order_collation,
|
||||
'field' => 'alias ',
|
||||
'field2' => 'alias ',
|
||||
'order' => 'DESC',
|
||||
];
|
||||
break;
|
||||
@ -457,7 +440,7 @@ switch ($sortField) {
|
||||
$selectOsUp = $selected;
|
||||
$order = [
|
||||
'field' => 'id_os',
|
||||
'field2' => 'alias '.$order_collation,
|
||||
'field2' => 'alias ',
|
||||
'order' => 'ASC',
|
||||
];
|
||||
break;
|
||||
@ -466,7 +449,7 @@ switch ($sortField) {
|
||||
$selectOsDown = $selected;
|
||||
$order = [
|
||||
'field' => 'id_os',
|
||||
'field2' => 'alias '.$order_collation,
|
||||
'field2' => 'alias ',
|
||||
'order' => 'DESC',
|
||||
];
|
||||
break;
|
||||
@ -483,7 +466,7 @@ switch ($sortField) {
|
||||
$selectGroupUp = $selected;
|
||||
$order = [
|
||||
'field' => 'id_grupo',
|
||||
'field2' => 'alias '.$order_collation,
|
||||
'field2' => 'alias ',
|
||||
'order' => 'ASC',
|
||||
];
|
||||
break;
|
||||
@ -492,7 +475,7 @@ switch ($sortField) {
|
||||
$selectGroupDown = $selected;
|
||||
$order = [
|
||||
'field' => 'id_grupo',
|
||||
'field2' => 'alias '.$order_collation,
|
||||
'field2' => 'alias ',
|
||||
'order' => 'DESC',
|
||||
];
|
||||
break;
|
||||
@ -511,8 +494,8 @@ switch ($sortField) {
|
||||
$selectGroupUp = '';
|
||||
$selectGroupDown = '';
|
||||
$order = [
|
||||
'field' => 'alias '.$order_collation,
|
||||
'field2' => 'alias '.$order_collation,
|
||||
'field' => 'alias ',
|
||||
'field2' => 'alias ',
|
||||
'order' => 'ASC',
|
||||
];
|
||||
break;
|
||||
@ -520,30 +503,45 @@ switch ($sortField) {
|
||||
|
||||
$search_sql = '';
|
||||
if ($search != '') {
|
||||
$sql = "SELECT DISTINCT taddress_agent.id_agent FROM taddress
|
||||
$sql = sprintf(
|
||||
'SELECT DISTINCT taddress_agent.id_agent FROM taddress
|
||||
INNER JOIN taddress_agent ON
|
||||
taddress.id_a = taddress_agent.id_a
|
||||
WHERE taddress.ip LIKE '%$search%'";
|
||||
WHERE taddress.ip LIKE "%%%s%%"',
|
||||
$search
|
||||
);
|
||||
|
||||
$id = db_get_all_rows_sql($sql);
|
||||
if ($id != '') {
|
||||
$aux = $id[0]['id_agent'];
|
||||
$search_sql = ' AND ( LOWER(nombre) '.$order_collation."
|
||||
LIKE LOWER('%$search%') OR tagente.id_agente = $aux";
|
||||
if (count($id) >= 2) {
|
||||
for ($i = 1; $i < count($id); $i++) {
|
||||
$search_sql = sprintf(
|
||||
' AND ( `nombre` LIKE "%%%s%%" OR tagente.id_agente = %d',
|
||||
$search,
|
||||
$aux
|
||||
);
|
||||
$nagent_count = count($id);
|
||||
if ($nagent_count >= 2) {
|
||||
for ($i = 1; $i < $nagent_count; $i++) {
|
||||
$aux = $id[$i]['id_agent'];
|
||||
$search_sql .= " OR tagente.id_agente = $aux";
|
||||
$search_sql .= sprintf(
|
||||
' OR tagente.id_agente = %d',
|
||||
$aux
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
$search_sql .= ')';
|
||||
} else {
|
||||
$search_sql = ' AND ( nombre '.$order_collation."
|
||||
LIKE LOWER('%$search%') OR alias ".$order_collation."
|
||||
LIKE LOWER('%$search%') OR comentarios ".$order_collation." LIKE LOWER('%$search%')
|
||||
OR EXISTS (SELECT * FROM tagent_custom_data
|
||||
WHERE id_agent = id_agente AND description LIKE '%$search%'))";
|
||||
$search_sql = sprintf(
|
||||
' AND ( nombre
|
||||
LIKE "%%%s%%" OR alias
|
||||
LIKE "%%%s%%" OR comentarios LIKE "%%%s%%"
|
||||
OR EXISTS (SELECT * FROM tagent_custom_data WHERE id_agent = id_agente AND description LIKE "%%%s%%"))',
|
||||
$search,
|
||||
$search,
|
||||
$search,
|
||||
$search
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,27 +1,53 @@
|
||||
<?php
|
||||
/**
|
||||
* Planned downtimes list.
|
||||
*
|
||||
* @category Planned downtimes
|
||||
* @package Pandora FMS
|
||||
* @subpackage Community
|
||||
* @version 1.0.0
|
||||
* @license See below
|
||||
*
|
||||
* ______ ___ _______ _______ ________
|
||||
* | __ \.-----.--.--.--| |.-----.----.-----. | ___| | | __|
|
||||
* | __/| _ | | _ || _ | _| _ | | ___| |__ |
|
||||
* |___| |___._|__|__|_____||_____|__| |___._| |___| |__|_|__|_______|
|
||||
*
|
||||
* ============================================================================
|
||||
* Copyright (c) 2005-2022 Artica Soluciones Tecnologicas
|
||||
* Please see http://pandorafms.org for full contribution list
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation for version 2.
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* ============================================================================
|
||||
*/
|
||||
|
||||
// Pandora FMS - http://pandorafms.com
|
||||
// ==================================================
|
||||
// Copyright (c) 2005-2021 Artica Soluciones Tecnologicas
|
||||
// Please see http://pandorafms.org for full contribution list
|
||||
// This program is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
// as published by the Free Software Foundation for version 2.
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
// Load global vars
|
||||
// Load global vars.
|
||||
global $config;
|
||||
|
||||
check_login();
|
||||
|
||||
$read_permisson = check_acl($config['id_user'], 0, 'AR');
|
||||
$write_permisson = check_acl($config['id_user'], 0, 'AD');
|
||||
$manage_permisson = check_acl($config['id_user'], 0, 'AW');
|
||||
$access = ($read_permisson == true) ? 'AR' : (($write_permisson == true) ? 'AD' : (($manage_permisson == true) ? 'AW' : 'AR'));
|
||||
$read_permisson = (bool) check_acl($config['id_user'], 0, 'AR');
|
||||
$write_permisson = (bool) check_acl($config['id_user'], 0, 'AD');
|
||||
$manage_permisson = (bool) check_acl($config['id_user'], 0, 'AW');
|
||||
$access = null;
|
||||
if ($read_permisson === true) {
|
||||
$access = 'AR';
|
||||
}
|
||||
|
||||
if (! $read_permisson && !$manage_permisson) {
|
||||
if ($write_permisson === true) {
|
||||
$access = 'AD';
|
||||
}
|
||||
|
||||
if ($manage_permisson === true) {
|
||||
$access = 'AW';
|
||||
}
|
||||
|
||||
if ($read_permisson === false && $manage_permisson === false) {
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access downtime scheduler'
|
||||
@ -35,16 +61,109 @@ require_once 'include/functions_events.php';
|
||||
require_once 'include/functions_planned_downtimes.php';
|
||||
require_once 'include/functions_reporting.php';
|
||||
|
||||
$malformed_downtimes = planned_downtimes_get_malformed();
|
||||
$malformed_downtimes_exist = !empty($malformed_downtimes) ? true : false;
|
||||
if (is_ajax() === true) {
|
||||
$show_info_agents_modules_affected = (bool) get_parameter(
|
||||
'show_info_agents_modules_affected',
|
||||
false
|
||||
);
|
||||
|
||||
$get_info_agents_modules_affected = (bool) get_parameter(
|
||||
'get_info_agents_modules_affected',
|
||||
false
|
||||
);
|
||||
|
||||
if ($show_info_agents_modules_affected === true) {
|
||||
$id = (int) get_parameter('id', 0);
|
||||
|
||||
$columns = [
|
||||
'agent_name',
|
||||
'module_name',
|
||||
];
|
||||
|
||||
$column_names = [
|
||||
__('Agents'),
|
||||
__('Modules'),
|
||||
];
|
||||
|
||||
ui_print_datatable(
|
||||
[
|
||||
'id' => 'agent_modules_affected_planned_downtime',
|
||||
'class' => 'info_table',
|
||||
'style' => 'width: 100%',
|
||||
'columns' => $columns,
|
||||
'column_names' => $column_names,
|
||||
'ajax_url' => 'godmode/agentes/planned_downtime.list',
|
||||
'ajax_data' => [
|
||||
'get_info_agents_modules_affected' => 1,
|
||||
'id' => $id,
|
||||
],
|
||||
'order' => [
|
||||
'field' => 'agent_name',
|
||||
'direction' => 'asc',
|
||||
],
|
||||
'search_button_class' => 'sub filter float-right',
|
||||
'form' => [
|
||||
'inputs' => [
|
||||
[
|
||||
'label' => __('Agents'),
|
||||
'type' => 'text',
|
||||
'class' => 'w200px',
|
||||
'id' => 'filter_agents',
|
||||
'name' => 'filter_agents',
|
||||
],
|
||||
[
|
||||
'label' => __('Modules'),
|
||||
'type' => 'text',
|
||||
'class' => 'w200px',
|
||||
'id' => 'filter_modules',
|
||||
'name' => 'filter_modules',
|
||||
],
|
||||
],
|
||||
],
|
||||
]
|
||||
);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if ($get_info_agents_modules_affected === true) {
|
||||
$id = (int) get_parameter('id', 0);
|
||||
|
||||
// Catch post parameters.
|
||||
$options = [
|
||||
'limit' => get_parameter('start', 0),
|
||||
'offset' => get_parameter('length', $config['block_size']),
|
||||
'order' => get_datatable_order(),
|
||||
'filters' => get_parameter('filter', []),
|
||||
];
|
||||
|
||||
$modules = get_agents_modules_planned_dowtime($id, $options);
|
||||
$count = get_agents_modules_planned_dowtime($id, $options, $count);
|
||||
|
||||
echo json_encode(
|
||||
[
|
||||
'data' => $modules,
|
||||
'recordsTotal' => $count[0]['total'],
|
||||
'recordsFiltered' => $count[0]['total'],
|
||||
]
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
$malformed_downtimes = planned_downtimes_get_malformed();
|
||||
$malformed_downtimes_exist = (empty($malformed_downtimes) === false) ? true : false;
|
||||
$migrate_malformed = (bool) get_parameter('migrate_malformed');
|
||||
if ($migrate_malformed) {
|
||||
if ($migrate_malformed === true) {
|
||||
$migration_result = planned_downtimes_migrate_malformed_downtimes();
|
||||
|
||||
if ($migration_result['status'] == false) {
|
||||
$str = 'An error occurred while migrating the malformed scheduled downtimes';
|
||||
$str2 = 'Please run the migration again or contact with the administrator';
|
||||
if ((bool) $migration_result['status'] === false) {
|
||||
ui_print_error_message(
|
||||
__('An error occurred while migrating the malformed scheduled downtimes').'. '.__('Please run the migration again or contact with the administrator')
|
||||
__($str).'. '.__($str2)
|
||||
);
|
||||
echo '<br>';
|
||||
}
|
||||
@ -63,12 +182,15 @@ ui_print_page_header(
|
||||
$id_downtime = (int) get_parameter('id_downtime', 0);
|
||||
|
||||
$stop_downtime = (bool) get_parameter('stop_downtime');
|
||||
// STOP DOWNTIME
|
||||
if ($stop_downtime) {
|
||||
// STOP DOWNTIME.
|
||||
if ($stop_downtime === true) {
|
||||
$downtime = db_get_row('tplanned_downtime', 'id', $id_downtime);
|
||||
|
||||
// Check AD permission on the downtime
|
||||
if (empty($downtime) || (! check_acl($config['id_user'], $downtime['id_group'], 'AD') && ! check_acl($config['id_user'], $downtime['id_group'], 'AW'))) {
|
||||
// Check AD permission on the downtime.
|
||||
if (empty($downtime) === true
|
||||
|| ((bool) check_acl($config['id_user'], $downtime['id_group'], 'AD') === false
|
||||
&& (bool) check_acl($config['id_user'], $downtime['id_group'], 'AW') === false)
|
||||
) {
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access downtime scheduler'
|
||||
@ -80,7 +202,9 @@ if ($stop_downtime) {
|
||||
$result = planned_downtimes_stop($downtime);
|
||||
|
||||
if ($result === false) {
|
||||
ui_print_error_message(__('An error occurred stopping the scheduled downtime'));
|
||||
ui_print_error_message(
|
||||
__('An error occurred stopping the scheduled downtime')
|
||||
);
|
||||
} else {
|
||||
echo $result['message'];
|
||||
}
|
||||
@ -88,11 +212,14 @@ if ($stop_downtime) {
|
||||
|
||||
$delete_downtime = (int) get_parameter('delete_downtime');
|
||||
// DELETE WHOLE DOWNTIME!
|
||||
if ($delete_downtime) {
|
||||
if (empty($delete_downtime) === false) {
|
||||
$downtime = db_get_row('tplanned_downtime', 'id', $id_downtime);
|
||||
|
||||
// Check AD permission on the downtime
|
||||
if (empty($downtime) || (! check_acl($config['id_user'], $downtime['id_group'], 'AD') && ! check_acl($config['id_user'], $downtime['id_group'], 'AW'))) {
|
||||
// Check AD permission on the downtime.
|
||||
if (empty($downtime) === true
|
||||
|| ((bool) check_acl($config['id_user'], $downtime['id_group'], 'AD') === false
|
||||
&& (bool) check_acl($config['id_user'], $downtime['id_group'], 'AW') === false)
|
||||
) {
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access downtime scheduler'
|
||||
@ -102,10 +229,13 @@ if ($delete_downtime) {
|
||||
}
|
||||
|
||||
// The downtime shouldn't be running!!
|
||||
if ($downtime['executed']) {
|
||||
if ((bool) $downtime['executed'] === true) {
|
||||
ui_print_error_message(__('This scheduled downtime is running'));
|
||||
} else {
|
||||
$result = db_process_sql_delete('tplanned_downtime', ['id' => $id_downtime]);
|
||||
$result = db_process_sql_delete(
|
||||
'tplanned_downtime',
|
||||
['id' => $id_downtime]
|
||||
);
|
||||
|
||||
ui_print_result_message(
|
||||
$result,
|
||||
@ -119,15 +249,25 @@ if ($delete_downtime) {
|
||||
$offset = (int) get_parameter('offset');
|
||||
$filter_params = [];
|
||||
|
||||
$search_text = $filter_params['search_text'] = (string) get_parameter('search_text');
|
||||
$date_from = $filter_params['date_from'] = (string) get_parameter('date_from');
|
||||
$date_to = $filter_params['date_to'] = (string) get_parameter('date_to');
|
||||
$execution_type = $filter_params['execution_type'] = (string) get_parameter('execution_type');
|
||||
$show_archived = $filter_params['archived'] = (bool) get_parameter('archived');
|
||||
$agent_id = $filter_params['agent_id'] = (int) get_parameter('agent_id');
|
||||
$agent_name = $filter_params['agent_name'] = (string) (!empty($agent_id) ? get_parameter('agent_name') : '');
|
||||
$module_id = $filter_params['module_id'] = (int) get_parameter('module_name_hidden');
|
||||
$module_name = $filter_params['module_name'] = (string) (!empty($module_id) ? get_parameter('module_name') : '');
|
||||
$search_text = (string) get_parameter('search_text');
|
||||
$date_from = (string) get_parameter('date_from');
|
||||
$date_to = (string) get_parameter('date_to');
|
||||
$execution_type = (string) get_parameter('execution_type');
|
||||
$show_archived = (bool) get_parameter('archived');
|
||||
$agent_id = (int) get_parameter('agent_id');
|
||||
$agent_name = (string) ((empty($agent_id) === false) ? get_parameter('agent_name') : '');
|
||||
$module_id = (int) get_parameter('module_name_hidden');
|
||||
$module_name = (string) ((empty($module_id) === false) ? get_parameter('module_name') : '');
|
||||
|
||||
$filter_params['search_text'] = $search_text;
|
||||
$filter_params['date_from'] = $date_from;
|
||||
$filter_params['date_to'] = $date_to;
|
||||
$filter_params['execution_type'] = $execution_type;
|
||||
$filter_params['archived'] = $show_archived;
|
||||
$filter_params['agent_id'] = $agent_id;
|
||||
$filter_params['agent_name'] = $agent_name;
|
||||
$filter_params['module_id'] = $module_id;
|
||||
$filter_params['module_name'] = $module_name;
|
||||
|
||||
$filter_params_str = http_build_query($filter_params);
|
||||
|
||||
@ -141,11 +281,32 @@ $table_form->data = [];
|
||||
$row = [];
|
||||
|
||||
// Search text.
|
||||
$row[] = __('Search').' '.html_print_input_text('search_text', $search_text, '', 50, 250, true);
|
||||
$row[] = __('Search').' '.html_print_input_text(
|
||||
'search_text',
|
||||
$search_text,
|
||||
'',
|
||||
50,
|
||||
250,
|
||||
true
|
||||
);
|
||||
// Dates.
|
||||
$date_inputs = __('From').' '.html_print_input_text('date_from', $date_from, '', 10, 10, true);
|
||||
$date_inputs = __('From').' '.html_print_input_text(
|
||||
'date_from',
|
||||
$date_from,
|
||||
'',
|
||||
10,
|
||||
10,
|
||||
true
|
||||
);
|
||||
$date_inputs .= ' ';
|
||||
$date_inputs .= __('To').' '.html_print_input_text('date_to', $date_to, '', 10, 10, true);
|
||||
$date_inputs .= __('To').' '.html_print_input_text(
|
||||
'date_to',
|
||||
$date_to,
|
||||
'',
|
||||
10,
|
||||
10,
|
||||
true
|
||||
);
|
||||
$row[] = $date_inputs;
|
||||
|
||||
$table_form->data[] = $row;
|
||||
@ -157,9 +318,24 @@ $execution_type_fields = [
|
||||
'once' => __('Once'),
|
||||
'periodically' => __('Periodically'),
|
||||
];
|
||||
$row[] = __('Execution type').' '.html_print_select($execution_type_fields, 'execution_type', $execution_type, '', __('Any'), '', true, false, false);
|
||||
$row[] = __('Execution type').' '.html_print_select(
|
||||
$execution_type_fields,
|
||||
'execution_type',
|
||||
$execution_type,
|
||||
'',
|
||||
__('Any'),
|
||||
'',
|
||||
true,
|
||||
false,
|
||||
false
|
||||
);
|
||||
// Show past downtimes.
|
||||
$row[] = __('Show past downtimes').' '.html_print_checkbox('archived', 1, $show_archived, true);
|
||||
$row[] = __('Show past downtimes').' '.html_print_checkbox(
|
||||
'archived',
|
||||
1,
|
||||
$show_archived,
|
||||
true
|
||||
);
|
||||
|
||||
$table_form->data[] = $row;
|
||||
|
||||
@ -178,48 +354,84 @@ $agent_input = __('Agent').' '.ui_print_agent_autocomplete_input($params);
|
||||
$row[] = $agent_input;
|
||||
|
||||
// Module.
|
||||
$row[] = __('Module').' '.html_print_autocomplete_modules('module_name', $module_name, false, true, '', [], true);
|
||||
$row[] = __('Module').' '.html_print_autocomplete_modules(
|
||||
'module_name',
|
||||
$module_name,
|
||||
false,
|
||||
true,
|
||||
'',
|
||||
[],
|
||||
true
|
||||
);
|
||||
|
||||
$row[] = html_print_submit_button(__('Search'), 'search', false, 'class="sub search"', true);
|
||||
$row[] = html_print_submit_button(
|
||||
__('Search'),
|
||||
'search',
|
||||
false,
|
||||
'class="sub search"',
|
||||
true
|
||||
);
|
||||
|
||||
$table_form->data[] = $row;
|
||||
// End of table filter.
|
||||
// Useful to know if the user has done a form filtering.
|
||||
$filter_performed = false;
|
||||
|
||||
$downtimes = [];
|
||||
$groups = users_get_groups(false, $access);
|
||||
if (!empty($groups)) {
|
||||
if (empty($groups) === false) {
|
||||
$where_values = '1=1';
|
||||
|
||||
$groups_string = implode(',', array_keys($groups));
|
||||
$where_values .= " AND id_group IN ($groups_string)";
|
||||
$where_values .= sprintf(' AND id_group IN (%s)', $groups_string);
|
||||
|
||||
// WARNING: add $filter_performed = true; to any future filter.
|
||||
if (!empty($search_text)) {
|
||||
if (empty($search_text) === false) {
|
||||
$filter_performed = true;
|
||||
|
||||
$where_values .= " AND (name LIKE '%$search_text%' OR description LIKE '%$search_text%')";
|
||||
$where_values .= sprintf(
|
||||
' AND (name LIKE "%%%s%%" OR description LIKE "%%%s%%")',
|
||||
$search_text,
|
||||
$search_text
|
||||
);
|
||||
}
|
||||
|
||||
if (!empty($execution_type)) {
|
||||
if (empty($execution_type) === false) {
|
||||
$filter_performed = true;
|
||||
|
||||
$where_values .= " AND type_execution = '$execution_type'";
|
||||
$where_values .= sprintf(' AND type_execution = "%s"', $execution_type);
|
||||
}
|
||||
|
||||
if (!empty($date_from)) {
|
||||
if (empty($date_from) === false) {
|
||||
$filter_performed = true;
|
||||
|
||||
$where_values .= " AND (type_execution = 'periodically' OR (type_execution = 'once' AND date_from >= '".strtotime("$date_from 00:00:00")."'))";
|
||||
$where_values .= sprintf(
|
||||
' AND (type_execution = "periodically"
|
||||
OR (type_execution = "once"
|
||||
AND date_from >= "%s")
|
||||
)',
|
||||
strtotime($date_from.' 00:00:00')
|
||||
);
|
||||
}
|
||||
|
||||
if (!empty($date_to)) {
|
||||
if (empty($date_to) === false) {
|
||||
$filter_performed = true;
|
||||
|
||||
$periodically_monthly_w = "type_periodicity = 'monthly'
|
||||
AND ((periodically_day_from <= '".date('d', strtotime($date_from))."' AND periodically_day_to >= '".date('d', strtotime($date_to))."')
|
||||
OR (periodically_day_from > periodically_day_to
|
||||
AND (periodically_day_from <= '".date('d', strtotime($date_from))."' OR periodically_day_to >= '".date('d', strtotime($date_to))."')))";
|
||||
$periodically_monthly_w = sprintf(
|
||||
'type_periodicity = "monthly" AND (
|
||||
(
|
||||
periodically_day_from <= "%s"
|
||||
AND periodically_day_to >= "%s"
|
||||
)
|
||||
OR (
|
||||
periodically_day_from > periodically_day_to
|
||||
AND (
|
||||
periodically_day_from <= "%s"
|
||||
OR periodically_day_to >= "%s"
|
||||
)
|
||||
)
|
||||
)',
|
||||
date('d', strtotime($date_from)),
|
||||
date('d', strtotime($date_to)),
|
||||
date('d', strtotime($date_from)),
|
||||
date('d', strtotime($date_to))
|
||||
);
|
||||
|
||||
$periodically_weekly_days = [];
|
||||
$date_from_aux = strtotime($date_from);
|
||||
@ -229,7 +441,7 @@ if (!empty($groups)) {
|
||||
while ($date_from_aux <= $date_end && $days_number < 7) {
|
||||
$weekday_actual = strtolower(date('l', $date_from_aux));
|
||||
|
||||
$periodically_weekly_days[] = "$weekday_actual = 1";
|
||||
$periodically_weekly_days[] = $weekday_actual.' = 1';
|
||||
|
||||
$date_from_aux = ($date_from_aux + SECONDS_1DAY);
|
||||
$days_number++;
|
||||
@ -237,36 +449,60 @@ if (!empty($groups)) {
|
||||
|
||||
$periodically_weekly_w = "type_periodicity = 'weekly' AND (".implode(' OR ', $periodically_weekly_days).')';
|
||||
|
||||
$periodically_w = "type_execution = 'periodically' AND (($periodically_monthly_w) OR ($periodically_weekly_w))";
|
||||
$periodically_w = sprintf(
|
||||
'type_execution = "periodically" AND ((%s) OR (%s))',
|
||||
$periodically_monthly_w,
|
||||
$periodically_weekly_w
|
||||
);
|
||||
|
||||
$once_w = "type_execution = 'once' AND date_to <= '".strtotime("$date_to 23:59:59")."'";
|
||||
$once_w = sprintf(
|
||||
'type_execution = "once" AND date_to <= "%s"',
|
||||
strtotime($date_to.' 23:59:59')
|
||||
);
|
||||
|
||||
$where_values .= " AND (($periodically_w) OR ($once_w))";
|
||||
$where_values .= sprintf(
|
||||
' AND ((%s) OR (%s))',
|
||||
$periodically_w,
|
||||
$once_w
|
||||
);
|
||||
}
|
||||
|
||||
if (!$show_archived) {
|
||||
if ($show_archived === false) {
|
||||
$filter_performed = true;
|
||||
|
||||
$where_values .= " AND (type_execution = 'periodically' OR (type_execution = 'once' AND date_to >= '".time()."'))";
|
||||
$where_values .= sprintf(
|
||||
' AND (type_execution = "periodically"
|
||||
OR (type_execution = "once"
|
||||
AND date_to >= "%s"))',
|
||||
time()
|
||||
);
|
||||
}
|
||||
|
||||
if (!empty($agent_id)) {
|
||||
if (empty($agent_id) === false) {
|
||||
$filter_performed = true;
|
||||
|
||||
$where_values .= " AND id IN (SELECT id_downtime FROM tplanned_downtime_agents WHERE id_agent = $agent_id)";
|
||||
$where_values .= sprintf(
|
||||
' AND id IN (SELECT id_downtime FROM tplanned_downtime_agents WHERE id_agent = %d)',
|
||||
$agent_id
|
||||
);
|
||||
}
|
||||
|
||||
if (!empty($module_id)) {
|
||||
if (empty($module_id) === false) {
|
||||
$filter_performed = true;
|
||||
|
||||
$where_values .= " AND (id IN (SELECT id_downtime
|
||||
$where_values .= sprintf(
|
||||
' AND (id IN (
|
||||
SELECT id_downtime
|
||||
FROM tplanned_downtime_modules
|
||||
WHERE id_agent_module = $module_id)
|
||||
OR id IN (SELECT id_downtime
|
||||
WHERE id_agent_module = %d)
|
||||
OR id IN (
|
||||
SELECT id_downtime
|
||||
FROM tplanned_downtime_agents tpda, tagente_modulo tam
|
||||
WHERE tpda.id_agent = tam.id_agente
|
||||
AND tam.id_agente_modulo = $module_id
|
||||
AND tpda.all_modules = 1))";
|
||||
AND tam.id_agente_modulo = %d
|
||||
AND tpda.all_modules = 1
|
||||
)
|
||||
)',
|
||||
$module_id,
|
||||
$module_id
|
||||
);
|
||||
}
|
||||
|
||||
// Columns of the table tplanned_downtime.
|
||||
@ -296,68 +532,41 @@ if (!empty($groups)) {
|
||||
'id_user',
|
||||
];
|
||||
|
||||
switch ($config['dbtype']) {
|
||||
case 'mysql':
|
||||
case 'postgresql':
|
||||
$columns_str = implode(',', $columns);
|
||||
$sql = "SELECT $columns_str
|
||||
$sql = sprintf(
|
||||
'SELECT %s
|
||||
FROM tplanned_downtime
|
||||
WHERE $where_values
|
||||
WHERE %s
|
||||
ORDER BY type_execution DESC, date_from DESC
|
||||
LIMIT ".$config['block_size']."
|
||||
OFFSET $offset";
|
||||
break;
|
||||
LIMIT %d
|
||||
OFFSET %d',
|
||||
$columns_str,
|
||||
$where_values,
|
||||
$config['block_size'],
|
||||
$offset
|
||||
);
|
||||
|
||||
case 'oracle':
|
||||
// Oracle doesn't have TIME type, so we should transform the DATE value
|
||||
$new_time_from = "TO_CHAR(periodically_time_from, 'HH24:MI:SS') AS periodically_time_from";
|
||||
$new_time_to = "TO_CHAR(periodically_time_to, 'HH24:MI:SS') AS periodically_time_to";
|
||||
|
||||
$time_from_key = array_search('periodically_time_from', $columns);
|
||||
$time_to_key = array_search('periodically_time_to', $columns);
|
||||
|
||||
if ($time_from_key !== false) {
|
||||
$columns[$time_from_key] = $new_time_from;
|
||||
}
|
||||
|
||||
if ($time_to_key !== false) {
|
||||
$columns[$time_to_key] = $new_time_to;
|
||||
}
|
||||
|
||||
$columns_str = implode(',', $columns);
|
||||
|
||||
$set = [];
|
||||
$set['limit'] = $config['block_size'];
|
||||
$set['offset'] = $offset;
|
||||
|
||||
$sql = "SELECT $columns_str
|
||||
$sql_count = sprintf(
|
||||
'SELECT COUNT(id) AS num
|
||||
FROM tplanned_downtime
|
||||
WHERE $where_values
|
||||
ORDER BY type_execution DESC, date_from DESC";
|
||||
|
||||
$sql = oracle_recode_query($sql, $set);
|
||||
break;
|
||||
}
|
||||
|
||||
$sql_count = "SELECT COUNT(id) AS num
|
||||
FROM tplanned_downtime
|
||||
WHERE $where_values";
|
||||
WHERE %s',
|
||||
$where_values
|
||||
);
|
||||
|
||||
$downtimes = db_get_all_rows_sql($sql);
|
||||
$downtimes_number_res = db_get_all_rows_sql($sql_count);
|
||||
$downtimes_number = $downtimes_number_res != false ? $downtimes_number_res[0]['num'] : 0;
|
||||
} else {
|
||||
$downtimes = [];
|
||||
$downtimes_number = ($downtimes_number_res !== false) ? $downtimes_number_res[0]['num'] : 0;
|
||||
}
|
||||
|
||||
$url_list = 'index.php?sec=extensions&sec2=godmode/agentes/planned_downtime.list';
|
||||
$url_editor = 'index.php?sec=extensions&sec2=godmode/agentes/planned_downtime.editor';
|
||||
// No downtimes cause the user has not anyone.
|
||||
if (!$downtimes && !$filter_performed) {
|
||||
if ($downtimes === false && $filter_performed === false) {
|
||||
include_once $config['homedir'].'/general/first_task/planned_downtime.php';
|
||||
}
|
||||
// No downtimes cause the user performed a search.
|
||||
else if (!$downtimes) {
|
||||
} else if ($downtimes === false) {
|
||||
// No downtimes cause the user performed a search.
|
||||
// Filter form.
|
||||
echo "<form method='post' action='index.php?sec=extensions&sec2=godmode/agentes/planned_downtime.list'>";
|
||||
echo '<form method="post" action="'.$url_list.'">';
|
||||
html_print_table($table_form);
|
||||
echo '</form>';
|
||||
|
||||
@ -367,22 +576,25 @@ else if (!$downtimes) {
|
||||
echo '<div class="action-buttons w100p" >';
|
||||
|
||||
// Create button.
|
||||
if ($write_permisson) {
|
||||
if ($write_permisson === true) {
|
||||
echo ' ';
|
||||
echo '<form method="post" class="display_in" action="index.php?sec=extensions&sec2=godmode/agentes/planned_downtime.editor">';
|
||||
echo '<form method="post" class="display_in" action="'.$url_editor.'">';
|
||||
html_print_submit_button(__('Create'), 'create', false, 'class="sub next"');
|
||||
echo '</form>';
|
||||
}
|
||||
|
||||
echo '</div>';
|
||||
}
|
||||
// Has downtimes.
|
||||
else {
|
||||
echo "<form method='post' action='index.php?sec=extensions&sec2=godmode/agentes/planned_downtime.list'>";
|
||||
} else {
|
||||
// Has downtimes.
|
||||
echo '<form method="post" action="'.$url_list.'">';
|
||||
html_print_table($table_form);
|
||||
echo '</form>';
|
||||
|
||||
ui_pagination($downtimes_number, "index.php?sec=extensions&sec2=godmode/agentes/planned_downtime.list&$filter_params_str", $offset);
|
||||
ui_pagination(
|
||||
$downtimes_number,
|
||||
$url_list.'&'.$filter_params_str,
|
||||
$offset
|
||||
);
|
||||
|
||||
// User groups with AR, AD or AW permission.
|
||||
$groupsAD = users_get_groups($config['id_user'], $access);
|
||||
@ -402,8 +614,11 @@ else {
|
||||
$table->head['execution'] = __('Execution');
|
||||
$table->head['configuration'] = __('Configuration');
|
||||
$table->head['running'] = __('Running');
|
||||
$table->head['agents_modules'] = __('Affected');
|
||||
|
||||
if ($write_permisson || $manage_permisson) {
|
||||
if ($write_permisson === true
|
||||
|| $manage_permisson === true
|
||||
) {
|
||||
$table->head['stop'] = __('Stop downtime');
|
||||
$table->head['copy'] = __('Copy');
|
||||
$table->head['edit'] = __('Edit');
|
||||
@ -414,7 +629,9 @@ else {
|
||||
$table->align['group'] = 'center';
|
||||
$table->align['running'] = 'center';
|
||||
|
||||
if ($write_permisson || $manage_permisson) {
|
||||
if ($write_permisson === true
|
||||
|| $manage_permisson === true
|
||||
) {
|
||||
$table->align['stop'] = 'center';
|
||||
$table->align['edit'] = 'center';
|
||||
$table->align['delete'] = 'center';
|
||||
@ -430,7 +647,7 @@ else {
|
||||
WHERE id_downtime = '.$downtime['id']
|
||||
);
|
||||
|
||||
$data['name'] = $downtime['name']." ($total)";
|
||||
$data['name'] = $downtime['name'].' ('.$total.')';
|
||||
$data['description'] = $downtime['description'];
|
||||
$data['group'] = ui_print_group_icon($downtime['id_group'], true);
|
||||
|
||||
@ -451,7 +668,7 @@ else {
|
||||
|
||||
$data['configuration'] = reporting_format_planned_downtime_dates($downtime);
|
||||
|
||||
if ($downtime['executed'] == 0) {
|
||||
if ((int) $downtime['executed'] === 0) {
|
||||
$data['running'] = html_print_image(
|
||||
'images/pixel_red.png',
|
||||
true,
|
||||
@ -473,44 +690,124 @@ else {
|
||||
);
|
||||
}
|
||||
|
||||
$settings = [
|
||||
'url' => ui_get_full_url('ajax.php', false, false, false),
|
||||
'loadingText' => __('Loading, this operation might take several minutes...'),
|
||||
'title' => __('Agents / Modules affected'),
|
||||
'id' => $downtime['id'],
|
||||
];
|
||||
|
||||
$data['agents_modules'] = '<a href="#" onclick=\'dialogAgentModulesAffected('.json_encode($settings).')\'>';
|
||||
$data['agents_modules'] .= html_print_image(
|
||||
'images/search_big.png',
|
||||
true,
|
||||
[
|
||||
'title' => __('Agents and modules affected'),
|
||||
'style' => 'width:22px; height: 22px;',
|
||||
]
|
||||
);
|
||||
$data['agents_modules'] .= '</a>';
|
||||
|
||||
// If user have writting permissions.
|
||||
if (in_array($downtime['id_group'], $groupsAD)) {
|
||||
// Stop button
|
||||
if ($downtime['type_execution'] == 'once' && $downtime['executed'] == 1) {
|
||||
if (check_acl_restricted_all($config['id_user'], $downtime['id_group'], 'AW')
|
||||
|| check_acl_restricted_all($config['id_user'], $downtime['id_group'], 'AD')
|
||||
if (in_array($downtime['id_group'], $groupsAD) === true) {
|
||||
// Stop button.
|
||||
if ($downtime['type_execution'] === 'once'
|
||||
&& (int) $downtime['executed'] === 1
|
||||
) {
|
||||
$data['stop'] = '<a href="index.php?sec=extensions&sec2=godmode/agentes/planned_downtime.list'.'&stop_downtime=1&id_downtime='.$downtime['id'].'&'.$filter_params_str.'">'.html_print_image('images/cancel.png', true, ['title' => __('Stop downtime')]);
|
||||
if ((bool) check_acl_restricted_all($config['id_user'], $downtime['id_group'], 'AW') === true
|
||||
|| (bool) check_acl_restricted_all($config['id_user'], $downtime['id_group'], 'AD') === true
|
||||
) {
|
||||
$url_list_params = $url_list.'&stop_downtime=1&id_downtime='.$downtime['id'].'&'.$filter_params_str;
|
||||
$data['stop'] = '<a href="'.$url_list_params.'">';
|
||||
$data['stop'] .= html_print_image(
|
||||
'images/cancel.png',
|
||||
true,
|
||||
['title' => __('Stop downtime')]
|
||||
);
|
||||
} else {
|
||||
$data['stop'] = html_print_image('images/cancel.png', true, ['title' => __('Stop downtime')]);
|
||||
$data['stop'] = html_print_image(
|
||||
'images/cancel.png',
|
||||
true,
|
||||
['title' => __('Stop downtime')]
|
||||
);
|
||||
}
|
||||
} else {
|
||||
$data['stop'] = '';
|
||||
}
|
||||
|
||||
// Edit & delete buttons.
|
||||
if ($downtime['executed'] == 0) {
|
||||
if (check_acl_restricted_all($config['id_user'], $downtime['id_group'], 'AW')
|
||||
|| check_acl_restricted_all($config['id_user'], $downtime['id_group'], 'AD')
|
||||
if ((int) $downtime['executed'] === 0) {
|
||||
if ((bool) check_acl_restricted_all($config['id_user'], $downtime['id_group'], 'AW') === true
|
||||
|| (bool) check_acl_restricted_all($config['id_user'], $downtime['id_group'], 'AD') === true
|
||||
) {
|
||||
// Copy.
|
||||
$data['copy'] = '<a href="index.php?sec=extensions&sec2=godmode/agentes/planned_downtime.editor&downtime_copy=1&id_downtime='.$downtime['id'].'">'.html_print_image('images/copy.png', true, ['title' => __('Copy'), 'class' => 'invert_filter']).'</a>';
|
||||
$data['copy'] = '<a href="'.$url_editor.'&downtime_copy=1&id_downtime='.$downtime['id'].'">';
|
||||
$data['copy'] .= html_print_image(
|
||||
'images/copy.png',
|
||||
true,
|
||||
[
|
||||
'title' => __('Copy'),
|
||||
'class' => 'invert_filter',
|
||||
]
|
||||
);
|
||||
$data['copy'] .= '</a>';
|
||||
|
||||
// Edit.
|
||||
$data['edit'] = '<a href="index.php?sec=extensions&sec2=godmode/agentes/planned_downtime.editor&edit_downtime=1&id_downtime='.$downtime['id'].'">'.html_print_image('images/config.png', true, ['title' => __('Update'), 'class' => 'invert_filter']).'</a>';
|
||||
$data['edit'] = '<a href="'.$url_editor.'&edit_downtime=1&id_downtime='.$downtime['id'].'">';
|
||||
$data['edit'] .= html_print_image(
|
||||
'images/config.png',
|
||||
true,
|
||||
[
|
||||
'title' => __('Update'),
|
||||
'class' => 'invert_filter',
|
||||
]
|
||||
);
|
||||
$data['edit'] .= '</a>';
|
||||
|
||||
// Delete.
|
||||
$data['delete'] = '<a id="delete_downtime" href="index.php?sec=extensions&sec2=godmode/agentes/planned_downtime.list'.'&delete_downtime=1&id_downtime='.$downtime['id'].'&'.$filter_params_str.'">'.html_print_image('images/cross.png', true, ['title' => __('Delete'), 'class' => 'invert_filter']);
|
||||
$url_delete = $url_list.'&delete_downtime=1&id_downtime='.$downtime['id'].'&'.$filter_params_str;
|
||||
$data['delete'] = '<a id="delete_downtime" href="'.$url_delete.'">';
|
||||
$data['delete'] .= html_print_image(
|
||||
'images/cross.png',
|
||||
true,
|
||||
[
|
||||
'title' => __('Delete'),
|
||||
'class' => 'invert_filter',
|
||||
]
|
||||
);
|
||||
$data['delete'] .= '</a>';
|
||||
} else {
|
||||
$data['edit'] = '';
|
||||
$data['delete'] = '';
|
||||
}
|
||||
} else if ($downtime['executed'] == 1 && $downtime['type_execution'] == 'once') {
|
||||
if (check_acl_restricted_all($config['id_user'], $downtime['id_group'], 'AW')
|
||||
|| check_acl_restricted_all($config['id_user'], $downtime['id_group'], 'AD')
|
||||
} else if ((int) $downtime['executed'] === 1
|
||||
&& $downtime['type_execution'] === 'once'
|
||||
) {
|
||||
if ((bool) check_acl_restricted_all($config['id_user'], $downtime['id_group'], 'AW') === true
|
||||
|| (bool) check_acl_restricted_all($config['id_user'], $downtime['id_group'], 'AD') === true
|
||||
) {
|
||||
// Copy.
|
||||
$data['copy'] = '<a href="index.php?sec=extensions&sec2=godmode/agentes/planned_downtime.editor&downtime_copy=1&id_downtime='.$downtime['id'].'">'.html_print_image('images/copy.png', true, ['title' => __('Copy'), 'class' => 'invert_filter']).'</a>';
|
||||
$data['copy'] = '<a href="'.$url_editor.'&downtime_copy=1&id_downtime='.$downtime['id'].'">';
|
||||
$data['copy'] .= html_print_image(
|
||||
'images/copy.png',
|
||||
true,
|
||||
[
|
||||
'title' => __('Copy'),
|
||||
'class' => 'invert_filter',
|
||||
]
|
||||
);
|
||||
$data['copy'] .= '</a>';
|
||||
// Edit.
|
||||
$data['edit'] = '<a href="index.php?sec=extensions&sec2=godmode/agentes/planned_downtime.editor&edit_downtime=1&id_downtime='.$downtime['id'].'">'.html_print_image('images/config.png', true, ['title' => __('Update'), 'class' => 'invert_filter']).'</a>';
|
||||
$data['edit'] = '<a href="'.$url_editor.'&edit_downtime=1&id_downtime='.$downtime['id'].'">';
|
||||
$data['edit'] .= html_print_image(
|
||||
'images/config.png',
|
||||
true,
|
||||
[
|
||||
'title' => __('Update'),
|
||||
'class' => 'invert_filter',
|
||||
]
|
||||
);
|
||||
$data['edit'] .= '</a>';
|
||||
// Delete.
|
||||
$data['delete'] = __('N/A');
|
||||
} else {
|
||||
@ -529,7 +826,9 @@ else {
|
||||
$data['delete'] = '';
|
||||
}
|
||||
|
||||
if (!empty($malformed_downtimes_exist) && isset($malformed_downtimes[$downtime['id']])) {
|
||||
if (empty($malformed_downtimes_exist) === false
|
||||
&& isset($malformed_downtimes[$downtime['id']]) === true
|
||||
) {
|
||||
$next_row_num = count($table->data);
|
||||
$table->cellstyle[$next_row_num][0] = 'color: red';
|
||||
$table->cellstyle[$next_row_num][1] = 'color: red';
|
||||
@ -542,7 +841,17 @@ else {
|
||||
}
|
||||
|
||||
html_print_table($table);
|
||||
ui_pagination($downtimes_number, "index.php?sec=extensions&sec2=godmode/agentes/planned_downtime.list&$filter_params_str", $offset, 0, false, 'offset', true, 'pagination-bottom');
|
||||
ui_pagination(
|
||||
$downtimes_number,
|
||||
$url_list.'&'.$filter_params_str,
|
||||
$offset,
|
||||
0,
|
||||
false,
|
||||
'offset',
|
||||
true,
|
||||
'pagination-bottom'
|
||||
);
|
||||
|
||||
echo '<div class="action-buttons" style="width: '.$table->width.'">';
|
||||
|
||||
// CSV export button.
|
||||
@ -551,32 +860,44 @@ else {
|
||||
__('Export to CSV'),
|
||||
'csv_export',
|
||||
false,
|
||||
"location.href='godmode/agentes/planned_downtime.export_csv.php?$filter_params_str'",
|
||||
'location.href="godmode/agentes/planned_downtime.export_csv.php?'.$filter_params_str.'"',
|
||||
'class="sub next"'
|
||||
);
|
||||
echo '</div>';
|
||||
|
||||
// Create button.
|
||||
if ($write_permisson) {
|
||||
if ($write_permisson === true) {
|
||||
echo ' ';
|
||||
echo '<form method="post" action="index.php?sec=extensions&sec2=godmode/agentes/planned_downtime.editor" class="display_in" >';
|
||||
html_print_submit_button(__('Create'), 'create', false, 'class="sub next"');
|
||||
echo '<form method="post" action="'.$url_editor.'" class="display_in" >';
|
||||
html_print_submit_button(
|
||||
__('Create'),
|
||||
'create',
|
||||
false,
|
||||
'class="sub next"'
|
||||
);
|
||||
echo '</form>';
|
||||
}
|
||||
|
||||
echo '</div>';
|
||||
}
|
||||
|
||||
ui_require_jquery_file('ui.datepicker-'.get_user_language(), 'include/javascript/i18n/');
|
||||
ui_require_jquery_file(
|
||||
'ui.datepicker-'.get_user_language(),
|
||||
'include/javascript/i18n/'
|
||||
);
|
||||
|
||||
ui_require_javascript_file('pandora_planned_downtimes');
|
||||
?>
|
||||
<script language="javascript" type="text/javascript">
|
||||
|
||||
$("input[name=module_name_hidden]").val(<?php echo (int) $module_id; ?>);
|
||||
|
||||
$(document).ready (function () {
|
||||
$("#text-date_from, #text-date_to").datepicker({dateFormat: "<?php echo DATE_FORMAT_JS; ?>"});
|
||||
$.datepicker.setDefaults($.datepicker.regional[ "<?php echo get_user_language(); ?>"]);
|
||||
$("#text-date_from, #text-date_to")
|
||||
.datepicker({dateFormat: "<?php echo DATE_FORMAT_JS; ?>"});
|
||||
|
||||
$.datepicker
|
||||
.setDefaults($.datepicker.regional[ "<?php echo get_user_language(); ?>"]);
|
||||
|
||||
$("a#delete_downtime").click(function (e) {
|
||||
if (!confirm("<?php echo __('WARNING: If you delete this scheduled downtime, it will not be taken into account in future SLA reports'); ?>")) {
|
||||
|
@ -30,6 +30,7 @@ require_once $config['homedir'].'/include/functions_users.php';
|
||||
|
||||
$pure = get_parameter('pure', 0);
|
||||
|
||||
$table = new stdClass();
|
||||
$table->id = 'add_alert_table';
|
||||
$table->class = 'databox filters';
|
||||
$table->width = '100%';
|
||||
|
@ -345,7 +345,7 @@ for ($i = 1; $i <= $config['max_macro_fields']; $i++) {
|
||||
$field_values,
|
||||
'',
|
||||
55,
|
||||
255,
|
||||
1000,
|
||||
true,
|
||||
false,
|
||||
false,
|
||||
|
@ -61,50 +61,7 @@ if (defined('LAST_STEP') === false) {
|
||||
}
|
||||
|
||||
// Default events calendar.
|
||||
$default_events_calendar = [
|
||||
'monday' => [
|
||||
[
|
||||
'start' => '00:00:00',
|
||||
'end' => '00:00:00',
|
||||
],
|
||||
],
|
||||
'tuesday' => [
|
||||
[
|
||||
'start' => '00:00:00',
|
||||
'end' => '00:00:00',
|
||||
],
|
||||
],
|
||||
'wednesday' => [
|
||||
[
|
||||
'start' => '00:00:00',
|
||||
'end' => '00:00:00',
|
||||
],
|
||||
],
|
||||
'thursday' => [
|
||||
[
|
||||
'start' => '00:00:00',
|
||||
'end' => '00:00:00',
|
||||
],
|
||||
],
|
||||
'friday' => [
|
||||
[
|
||||
'start' => '00:00:00',
|
||||
'end' => '00:00:00',
|
||||
],
|
||||
],
|
||||
'saturday' => [
|
||||
[
|
||||
'start' => '00:00:00',
|
||||
'end' => '00:00:00',
|
||||
],
|
||||
],
|
||||
'sunday' => [
|
||||
[
|
||||
'start' => '00:00:00',
|
||||
'end' => '00:00:00',
|
||||
],
|
||||
],
|
||||
];
|
||||
$default_events_calendar = default_events_calendar($id, 'talert_templates');
|
||||
|
||||
if ($duplicate_template === true) {
|
||||
$source_id = (int) get_parameter('source_id');
|
||||
@ -370,7 +327,12 @@ function update_template($step)
|
||||
|
||||
$result = alerts_update_alert_template($id, $values);
|
||||
} else if ($step == 2) {
|
||||
$schedule = get_parameter('schedule');
|
||||
$schedule = io_safe_output(get_parameter('schedule', []));
|
||||
json_decode($schedule, true);
|
||||
if (json_last_error() !== JSON_ERROR_NONE) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$special_day = (int) get_parameter('special_day');
|
||||
$threshold = (int) get_parameter('threshold');
|
||||
$max_alerts = (int) get_parameter('max_alerts');
|
||||
@ -389,12 +351,7 @@ function update_template($step)
|
||||
}
|
||||
|
||||
$values = [
|
||||
'schedule' => json_encode(
|
||||
json_decode(
|
||||
io_safe_output($schedule),
|
||||
true
|
||||
)
|
||||
),
|
||||
'schedule' => $schedule,
|
||||
'special_day' => $special_day,
|
||||
'time_threshold' => $threshold,
|
||||
'id_alert_action' => $default_action,
|
||||
@ -485,7 +442,6 @@ $type = '';
|
||||
$value = '';
|
||||
$max = '';
|
||||
$min = '';
|
||||
|
||||
$schedule = json_encode(
|
||||
$default_events_calendar
|
||||
);
|
||||
@ -614,7 +570,9 @@ if ($id && ! $create_template) {
|
||||
$min = $template['min_value'];
|
||||
$matches = $template['matches_value'];
|
||||
|
||||
$schedule = $template['schedule'];
|
||||
$schedule = json_encode(
|
||||
$default_events_calendar
|
||||
);
|
||||
$special_day = (int) $template['special_day'];
|
||||
$max_alerts = $template['max_alerts'];
|
||||
$min_alerts = $template['min_alerts'];
|
||||
|
@ -90,6 +90,8 @@ $data[1] = html_print_input_text(
|
||||
'',
|
||||
50,
|
||||
255,
|
||||
true,
|
||||
false,
|
||||
true
|
||||
);
|
||||
$data[1] .= html_print_input_hidden('id_response', $event_response['id'], true);
|
||||
|
@ -27,7 +27,7 @@ if (! check_acl($config['id_user'], 0, 'PM')) {
|
||||
// Header
|
||||
ui_print_page_header(__('Extensions').' » '.__('Defined extensions'), 'images/extensions.png', false, '', true, '');
|
||||
|
||||
if (sizeof($config['extensions']) == 0) {
|
||||
if (count($config['extensions']) == 0) {
|
||||
$extensions = extensions_get_extension_info();
|
||||
if (empty($extensions)) {
|
||||
echo '<h3>'.__('There are no extensions defined').'</h3>';
|
||||
|
@ -122,8 +122,7 @@ if ($table !== null) {
|
||||
html_print_table($table);
|
||||
}
|
||||
|
||||
unset($table);
|
||||
|
||||
$table = new stdClass();
|
||||
$table->width = '100%';
|
||||
$table->class = 'databox filters';
|
||||
$table->data = [];
|
||||
|
@ -218,14 +218,9 @@ if ($update_agents) {
|
||||
$old_interval_value = db_get_value_filter('intervalo', 'tagente', ['id_agente' => $id_agent]);
|
||||
|
||||
if (!empty($values)) {
|
||||
$group_old = false;
|
||||
$disabled_old = false;
|
||||
if ($values['id_grupo'] || isset($values['disabled'])) {
|
||||
$values_old = db_get_row_filter('tagente', ['id_agente' => $id_agent], ['id_grupo', 'disabled']);
|
||||
if ($values_old['id_grupo']) {
|
||||
$group_old = $values_old['id_grupo'];
|
||||
}
|
||||
|
||||
if (isset($values['disabled'])) {
|
||||
$disabled_old = $values_old['disabled'];
|
||||
}
|
||||
@ -274,74 +269,6 @@ if ($update_agents) {
|
||||
alerts_validate_alert_agent($id_agent);
|
||||
}
|
||||
}
|
||||
|
||||
if ($group_old || $result) {
|
||||
if ($group_old && $group_old != null) {
|
||||
$tpolicy_group_old = db_get_all_rows_sql(
|
||||
'SELECT id_policy FROM tpolicy_groups
|
||||
WHERE id_group = '.$group_old
|
||||
);
|
||||
} else {
|
||||
$tpolicy_group_old = db_get_all_rows_sql('SELECT id_policy FROM tpolicy_groups');
|
||||
}
|
||||
|
||||
if ($tpolicy_group_old) {
|
||||
foreach ($tpolicy_group_old as $key => $value) {
|
||||
$tpolicy_agents_old = db_get_sql(
|
||||
'SELECT * FROM tpolicy_agents
|
||||
WHERE id_policy = '.$value['id_policy'].' AND id_agent = '.$id_agent
|
||||
);
|
||||
|
||||
if ($tpolicy_agents_old) {
|
||||
$result2 = db_process_sql_update(
|
||||
'tpolicy_agents',
|
||||
['pending_delete' => 1],
|
||||
[
|
||||
'id_agent' => $id_agent,
|
||||
'id_policy' => $value['id_policy'],
|
||||
]
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($values['id_grupo'] && $values['id_grupo'] != null) {
|
||||
$tpolicy_group_new = db_get_all_rows_sql(
|
||||
'SELECT id_policy FROM tpolicy_groups
|
||||
WHERE id_group = '.$values['id_grupo']
|
||||
);
|
||||
} else {
|
||||
$tpolicy_group_new = db_get_all_rows_sql('SELECT id_policy FROM tpolicy_groups');
|
||||
}
|
||||
|
||||
if ($tpolicy_group_new) {
|
||||
foreach ($tpolicy_group_new as $key => $value) {
|
||||
$tpolicy_agents_new = db_get_sql(
|
||||
'SELECT * FROM tpolicy_agents
|
||||
WHERE id_policy = '.$value['id_policy'].' AND id_agent ='.$id_agent
|
||||
);
|
||||
|
||||
if (!$tpolicy_agents_new) {
|
||||
db_process_sql_insert(
|
||||
'tpolicy_agents',
|
||||
[
|
||||
'id_policy' => $value['id_policy'],
|
||||
'id_agent' => $id_agent,
|
||||
]
|
||||
);
|
||||
} else {
|
||||
$result3 = db_process_sql_update(
|
||||
'tpolicy_agents',
|
||||
['pending_delete' => 0],
|
||||
[
|
||||
'id_agent' => $id_agent,
|
||||
'id_policy' => $value['id_policy'],
|
||||
]
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$info = [];
|
||||
|
@ -731,8 +731,7 @@ if ($components === false) {
|
||||
$components = [];
|
||||
}
|
||||
|
||||
unset($table);
|
||||
|
||||
$table = new stdClass();
|
||||
$table->width = '100%';
|
||||
$table->head = [];
|
||||
$table->class = 'info_table';
|
||||
|
@ -25,6 +25,7 @@ if (! check_acl($config['id_user'], 0, 'PM') && ! check_acl($config['id_user'],
|
||||
return;
|
||||
}
|
||||
|
||||
$table = new stdClass();
|
||||
$table->id = 'network_component';
|
||||
$table->width = '100%';
|
||||
$table->class = 'databox';
|
||||
@ -36,6 +37,7 @@ if (!enterprise_installed()) {
|
||||
$table->colspan[0][1] = 3;
|
||||
}
|
||||
|
||||
$table_simple = new stdClass();
|
||||
$table_simple->colspan[7][1] = 4;
|
||||
$table_simple->colspan[8][1] = 4;
|
||||
$table_simple->colspan[9][1] = 4;
|
||||
|
@ -42,7 +42,7 @@ if (is_ajax() === true) {
|
||||
$id_group = (int) get_parameter('id_group');
|
||||
|
||||
$filter = [];
|
||||
$filter[] = '(nombre COLLATE utf8_general_ci LIKE "%'.$string.'%" OR direccion LIKE "%'.$string.'%" OR comentarios LIKE "%'.$string.'%")';
|
||||
$filter[] = '(nombre LIKE "%'.$string.'%" OR direccion LIKE "%'.$string.'%" OR comentarios LIKE "%'.$string.'%")';
|
||||
$filter['id_grupo'] = $id_group;
|
||||
|
||||
$agents = agents_get_agents($filter, ['nombre', 'direccion']);
|
||||
|
@ -41,7 +41,7 @@ if (is_ajax()) {
|
||||
$id_group = (int) get_parameter('id_group');
|
||||
|
||||
$filter = [];
|
||||
$filter[] = '(nombre COLLATE utf8_general_ci LIKE "%'.$string.'%" OR direccion LIKE "%'.$string.'%" OR comentarios LIKE "%'.$string.'%")';
|
||||
$filter[] = '(nombre LIKE "%'.$string.'%" OR direccion LIKE "%'.$string.'%" OR comentarios LIKE "%'.$string.'%")';
|
||||
$filter['id_grupo'] = $id_group;
|
||||
|
||||
$agents = agents_get_agents($filter, ['nombre', 'direccion']);
|
||||
|
@ -376,7 +376,7 @@ $table_aux = new stdClass();
|
||||
false,
|
||||
false,
|
||||
'',
|
||||
'class="check_deletemrgn_lft_2px"',
|
||||
'class="check_delete mrgn_lft_2px"',
|
||||
true
|
||||
);
|
||||
}
|
||||
|
@ -743,6 +743,7 @@ switch ($action) {
|
||||
break;
|
||||
|
||||
case 'agent_module':
|
||||
case 'agent_module_status':
|
||||
$description = $item['description'];
|
||||
$es = json_decode($item['external_source'], true);
|
||||
|
||||
@ -4744,6 +4745,7 @@ $(document).ready (function () {
|
||||
|
||||
switch (type){
|
||||
case 'agent_module':
|
||||
case 'agent_module_status':
|
||||
case 'alert_report_actions':
|
||||
var agents_multiple = $('#id_agents2').val();
|
||||
var modules_multiple = $('#module').val();
|
||||
@ -4878,6 +4880,7 @@ $(document).ready (function () {
|
||||
}
|
||||
switch (type){
|
||||
case 'agent_module':
|
||||
case 'agent_module_status':
|
||||
case 'alert_report_actions':
|
||||
var agents_multiple = $('#id_agents2').val();
|
||||
var modules_multiple = $('#module').val();
|
||||
@ -6345,9 +6348,10 @@ function chooseType() {
|
||||
break;
|
||||
|
||||
case 'agent_module':
|
||||
$("#row_module_group").show();
|
||||
case 'agent_module_status':
|
||||
$("#row_description").show();
|
||||
$("#row_group").show();
|
||||
$("#row_module_group").show();
|
||||
$("#select_agent_modules").show();
|
||||
$("#agents_modules_row").show();
|
||||
$("#modules_row").show();
|
||||
|
@ -343,7 +343,7 @@ $countItems = db_get_sql(
|
||||
FROM treport_content
|
||||
WHERE '.$where.' AND id_report = '.$idReport
|
||||
);
|
||||
$table = null;
|
||||
$table = new stdClass();
|
||||
|
||||
$table->style[0] = 'text-align: right;';
|
||||
|
||||
@ -594,7 +594,7 @@ foreach ($items as $item) {
|
||||
|
||||
|
||||
|
||||
if ($style['name_label'] != '') {
|
||||
if (($style['name_label'] ?? null) != '') {
|
||||
$text = empty($style['name_label']) ? $item['description'] : $style['name_label'];
|
||||
} else {
|
||||
if ($item['name'] == '' && $item['description'] == '') {
|
||||
@ -604,11 +604,11 @@ foreach ($items as $item) {
|
||||
}
|
||||
}
|
||||
|
||||
// Apply macros
|
||||
// Apply macros.
|
||||
$items_macro['type'] = $item['type'];
|
||||
$text = reporting_label_macro(
|
||||
$items_macro,
|
||||
$text
|
||||
($text ?? '')
|
||||
);
|
||||
$row[5] = ui_print_truncate_text($text, 'description', true, true);
|
||||
|
||||
|
@ -938,7 +938,7 @@ switch ($action) {
|
||||
$table->head[$next] = __('Private');
|
||||
$table->headstyle[$next] = 'min-width: 40px;text-align: left;';
|
||||
$table->size[$next] = '2%';
|
||||
if (defined('METACONSOLE')) {
|
||||
if (is_metaconsole() === true) {
|
||||
$table->align[$next] = '';
|
||||
} else {
|
||||
$table->align[$next] = 'left';
|
||||
@ -952,7 +952,7 @@ switch ($action) {
|
||||
|
||||
$next++;
|
||||
$op_column = false;
|
||||
if (!defined('METACONSOLE')) {
|
||||
if (is_metaconsole() === false) {
|
||||
$op_column = true;
|
||||
$table->head[$next] = '<span title="Operations">'.__('Op.').'</span>'.html_print_checkbox(
|
||||
'all_delete',
|
||||
@ -967,6 +967,8 @@ switch ($action) {
|
||||
// $table->size = array ();
|
||||
$table->size[$next] = '10%';
|
||||
$table->align[$next] = 'right';
|
||||
} else {
|
||||
$table->size[1] = '40%';
|
||||
}
|
||||
|
||||
$columnview = false;
|
||||
@ -1266,7 +1268,7 @@ switch ($action) {
|
||||
|| check_acl($config['id_user'], 0, 'RM')
|
||||
) {
|
||||
echo '<form method="post" action="index.php?sec=reporting&sec2=godmode/reporting/reporting_builder&tab=main&action=new&pure='.$pure.'">';
|
||||
if (defined('METACONSOLE')) {
|
||||
if (is_metaconsole() === true) {
|
||||
echo '<div class="action-buttons w100p">';
|
||||
} else {
|
||||
echo '<div class="action-buttons w100p">';
|
||||
@ -1653,6 +1655,7 @@ switch ($action) {
|
||||
break;
|
||||
|
||||
case 'agent_module':
|
||||
case 'agent_module_status':
|
||||
$agents_to_report_text = get_parameter('id_agents2-multiple-text', '');
|
||||
$modules_to_report_text = get_parameter('module-multiple-text', '');
|
||||
|
||||
@ -2454,6 +2457,7 @@ switch ($action) {
|
||||
break;
|
||||
|
||||
case 'agent_module':
|
||||
case 'agent_module_status':
|
||||
$agents_to_report_text = get_parameter('id_agents2-multiple-text');
|
||||
$modules_to_report_text = get_parameter('module-multiple-text', '');
|
||||
|
||||
|
@ -68,7 +68,7 @@ if (is_ajax()) {
|
||||
$modules = [];
|
||||
}
|
||||
|
||||
$table = null;
|
||||
$table = new stdClass();
|
||||
$table->width = '100%';
|
||||
$table->head[0] = __('Network Components');
|
||||
$table->data = [];
|
||||
@ -82,7 +82,7 @@ if (is_ajax()) {
|
||||
echo '<br />';
|
||||
}
|
||||
|
||||
$table = null;
|
||||
$table = new stdClass();
|
||||
$table->width = '100%';
|
||||
$table->head[0] = __('Agent');
|
||||
$table->head[1] = __('Module');
|
||||
|
@ -289,11 +289,16 @@ if (is_array($config) === true
|
||||
&& (bool) $config['history_db_enabled'] === true
|
||||
) {
|
||||
ob_start();
|
||||
$password = $config['history_db_pass'];
|
||||
if (function_exists('io_output_password') === true) {
|
||||
$password = io_output_password($config['history_db_pass']);
|
||||
}
|
||||
|
||||
$dbhHistory = db_connect(
|
||||
$config['history_db_host'],
|
||||
$config['history_db_name'],
|
||||
$config['history_db_user'],
|
||||
io_output_password($config['history_db_pass']),
|
||||
$password,
|
||||
$config['history_db_port']
|
||||
);
|
||||
ob_get_clean();
|
||||
@ -312,6 +317,11 @@ $insecure = false;
|
||||
$pandora_url = ui_get_full_url('godmode/um_client', false, false, false);
|
||||
|
||||
if (is_array($config) === true) {
|
||||
$allowOfflinePatches = false;
|
||||
if (isset($config['allow_offline_patches']) === true) {
|
||||
$allowOfflinePatches = (bool) $config['allow_offline_patches'];
|
||||
}
|
||||
|
||||
if (isset($config['secure_update_manager']) === false) {
|
||||
$config['secure_update_manager'] = null;
|
||||
}
|
||||
@ -425,6 +435,7 @@ $ui = new Manager(
|
||||
'remote_config' => $remote_config,
|
||||
'propagate_updates' => $is_metaconsole,
|
||||
'proxy' => $proxy,
|
||||
'allowOfflinePatches' => $allowOfflinePatches,
|
||||
'set_maintenance_mode' => function () {
|
||||
if (function_exists('config_update_value') === true) {
|
||||
config_update_value('maintenance_mode', 1);
|
||||
|
@ -1582,7 +1582,10 @@ class Client
|
||||
) {
|
||||
// When PharData failes because of no space left on device
|
||||
// a PHP Notice is received instead of a PharData\Exception.
|
||||
throw new \Exception(error_get_last());
|
||||
$err = error_get_last();
|
||||
if ($err !== null) {
|
||||
throw new \Exception($err['message']);
|
||||
}
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
error_reporting($er);
|
||||
|
@ -84,6 +84,13 @@ class Manager
|
||||
*/
|
||||
private $authCode;
|
||||
|
||||
/**
|
||||
* Allow install offline packages not following current version.
|
||||
*
|
||||
* @var boolean
|
||||
*/
|
||||
private $allowOfflinePatches = false;
|
||||
|
||||
|
||||
/**
|
||||
* Undocumented function
|
||||
@ -144,6 +151,10 @@ class Manager
|
||||
$settings['offline'] = true;
|
||||
}
|
||||
|
||||
if (isset($settings['allowOfflinePatches']) === true) {
|
||||
$this->allowOfflinePatches = (bool) $settings['allowOfflinePatches'];
|
||||
}
|
||||
|
||||
$this->umc = new Client($settings);
|
||||
}
|
||||
|
||||
@ -240,6 +251,7 @@ class Manager
|
||||
'progress' => $this->umc->getUpdateProgress(),
|
||||
'running' => $this->umc->isRunning(),
|
||||
'insecure' => $this->umc->isInsecure(),
|
||||
'allowOfflinePatches' => $this->allowOfflinePatches,
|
||||
]
|
||||
);
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
/* exported form_upload */
|
||||
/* global $,ajax,cleanExit,preventExit,umConfirm,umErrorMsg */
|
||||
/* global texts,ajaxPage,insecureMode */
|
||||
/* global ImSureWhatImDoing */
|
||||
|
||||
/**
|
||||
*
|
||||
@ -204,7 +205,9 @@ function form_upload(url, auth, current_package) {
|
||||
|
||||
let number_update = res.version;
|
||||
let server_update = res.server_update;
|
||||
let current_version = parseFloat(current_package);
|
||||
let target_version = Math.round(parseFloat(current_package)) + 1;
|
||||
let target_patch = parseFloat(current_package) + 0.1;
|
||||
|
||||
if (number_update === null) {
|
||||
umConfirm({
|
||||
@ -221,7 +224,31 @@ function form_upload(url, auth, current_package) {
|
||||
cancelUpdate();
|
||||
}
|
||||
});
|
||||
} else if (Math.round(parseFloat(number_update)) != target_version) {
|
||||
} else if (
|
||||
parseFloat(number_update) != target_version &&
|
||||
parseFloat(number_update) != target_patch &&
|
||||
parseFloat(number_update) != current_version
|
||||
) {
|
||||
if (ImSureWhatImDoing == undefined || ImSureWhatImDoing == false) {
|
||||
umConfirm({
|
||||
message:
|
||||
'<span class="warning"></span><p>' +
|
||||
(server_update
|
||||
? texts.notGoingToInstallUnoficialServerWarning
|
||||
: texts.notGoingToInstallUnoficialWarning) +
|
||||
"</p>",
|
||||
title: texts.warning,
|
||||
size: 535,
|
||||
onAccept: function() {
|
||||
location.reload();
|
||||
},
|
||||
onDeny: function() {
|
||||
cancelUpdate();
|
||||
}
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
umConfirm({
|
||||
message:
|
||||
'<span class="warning"></span><p>' +
|
||||
|
@ -181,7 +181,7 @@ class ClientTest extends \PHPUnit\Framework\TestCase
|
||||
{
|
||||
// Load the conf.
|
||||
try {
|
||||
$this->conf = new \Config('client/conf/test.ini');
|
||||
$this->conf = new \Config(__DIR__.'/../conf/test.ini');
|
||||
} catch (\Exception $e) {
|
||||
$this->fail($e->getMessage());
|
||||
}
|
||||
|
@ -83,7 +83,9 @@
|
||||
'fileList': "<?php echo __('Files included in this package'); ?>",
|
||||
'ignoresign': "<?php echo __('Ignore'); ?>",
|
||||
'verifysigntitle': "<?php echo __('Verify package signature'); ?>",
|
||||
'verifysigns': "<?php echo __('Copy into the textarea the signature validation token you can retrieve from %s and press OK to verify the package, press ignore to avoid signature verification', 'https://support.pandorafms.com'); ?>"
|
||||
'verifysigns': "<?php echo __('Copy into the textarea the signature validation token you can retrieve from %s and press OK to verify the package, press ignore to avoid signature verification', 'https://support.pandorafms.com'); ?>",
|
||||
'notGoingToInstallUnoficialServerWarning': "<?php echo __('This server update does not correspond with current console version and is not going to be installed unless patches are allowed. Please enable patches in update manager settings.'); ?>",
|
||||
'notGoingToInstallUnoficialWarning': "<?php echo __('This update does not correspond with next version of %s and is not going to be installed unless patches are allowed. Please enable patches in update manager settings.', get_product_name()); ?>",
|
||||
}
|
||||
|
||||
var insecureMode = <?php echo ($insecure === true) ? 'true' : 'false'; ?>;
|
||||
@ -96,4 +98,6 @@
|
||||
);
|
||||
}
|
||||
|
||||
var ImSureWhatImDoing = <?php echo (false === $allowOfflinePatches) ? 'false' : 'true'; ?>;
|
||||
|
||||
</script>
|
||||
|
@ -93,6 +93,10 @@ if (!$action_update_url_update_manager) {
|
||||
'update_manager_proxy_password',
|
||||
$config['update_manager_proxy_password']
|
||||
);
|
||||
$allow_offline_patches = get_parameter_switch(
|
||||
'allow_offline_patches',
|
||||
$config['allow_offline_patches']
|
||||
);
|
||||
|
||||
if ($action_update_url_update_manager) {
|
||||
$result = config_update_value(
|
||||
@ -134,6 +138,13 @@ if (!$action_update_url_update_manager) {
|
||||
);
|
||||
}
|
||||
|
||||
if ($result) {
|
||||
$result = config_update_value(
|
||||
'allow_offline_patches',
|
||||
$allow_offline_patches
|
||||
);
|
||||
}
|
||||
|
||||
if ($result && license_free()) {
|
||||
$result = config_update_value(
|
||||
'identification_reminder',
|
||||
@ -154,6 +165,7 @@ if (!$action_update_url_update_manager) {
|
||||
$update_manager_proxy_port = get_parameter('update_manager_proxy_port', '');
|
||||
$update_manager_proxy_user = get_parameter('update_manager_proxy_user', '');
|
||||
$update_manager_proxy_password = get_parameter('update_manager_proxy_password', '');
|
||||
$allow_offline_patches = get_parameter_switch('allow_offline_patches', false);
|
||||
|
||||
|
||||
if ($action_update_url_update_manager) {
|
||||
@ -196,6 +208,13 @@ if (!$action_update_url_update_manager) {
|
||||
);
|
||||
}
|
||||
|
||||
if ($result) {
|
||||
$result = config_update_value(
|
||||
'allow_offline_patches',
|
||||
$allow_offline_patches
|
||||
);
|
||||
}
|
||||
|
||||
if ($result && license_free()) {
|
||||
$result = config_update_value('identification_reminder', $identification_reminder);
|
||||
}
|
||||
@ -288,33 +307,39 @@ $table->data[5][1] = html_print_input_password(
|
||||
true
|
||||
);
|
||||
|
||||
$table->data[6][0] = __('Allow no-consecutive patches:');
|
||||
$table->data[6][1] = html_print_switch(
|
||||
[
|
||||
'name' => 'allow_offline_patches',
|
||||
'value' => $allow_offline_patches,
|
||||
'return' => true,
|
||||
]
|
||||
);
|
||||
|
||||
$table->data[6][0] = __('Registration ID:');
|
||||
$table->data[6][1] = '<i>'.$config['pandora_uid'].'</i>';
|
||||
$table->data[7][0] = __('Registration ID:');
|
||||
$table->data[7][1] = '<i>'.$config['pandora_uid'].'</i>';
|
||||
|
||||
if (update_manager_verify_registration() === true && users_is_admin()) {
|
||||
$table->data[7][0] = __('Cancel registration:');
|
||||
$table->data[7][1] = '<a href="';
|
||||
$table->data[8][0] = __('Cancel registration:');
|
||||
$table->data[8][1] = '<a href="';
|
||||
if ((bool) is_metaconsole() === true) {
|
||||
$table->data[7][1] .= ui_get_full_url(
|
||||
$table->data[8][1] .= ui_get_full_url(
|
||||
'index.php?sec=advanced&sec2=advanced/metasetup&pure=0&tab=update_manager_setup&um_disconnect_console=1'
|
||||
);
|
||||
} else {
|
||||
$table->data[7][1] .= ui_get_full_url(
|
||||
$table->data[8][1] .= ui_get_full_url(
|
||||
'index.php?sec=messages&sec2=godmode/update_manager/update_manager&tab=setup&um_disconnect_console=1'
|
||||
);
|
||||
}
|
||||
|
||||
$table->data[7][1] .= '" onclick="if(confirm(\'Are you sure?\')) {return true;} else { return false; }">'.__('Unregister').'</a>';
|
||||
$table->data[8][1] .= '" onclick="if(confirm(\'Are you sure?\')) {return true;} else { return false; }">'.__('Unregister').'</a>';
|
||||
}
|
||||
|
||||
|
||||
|
||||
if (license_free()) {
|
||||
$config['identification_reminder'] = isset($config['identification_reminder']) ? $config['identification_reminder'] : 1;
|
||||
$table->data[8][0] = __('Pandora FMS community reminder').ui_print_help_tip(__('Every 8 days, a message is displayed to admin users to remember to register this Pandora instance'), true);
|
||||
$table->data[8][1] = __('Yes').' '.html_print_radio_button('identification_reminder', 1, '', $config['identification_reminder'], true).' ';
|
||||
$table->data[8][1] .= __('No').' '.html_print_radio_button('identification_reminder', 0, '', $config['identification_reminder'], true);
|
||||
$table->data[9][0] = __('Pandora FMS community reminder').ui_print_help_tip(__('Every 8 days, a message is displayed to admin users to remember to register this Pandora instance'), true);
|
||||
$table->data[9][1] = __('Yes').' '.html_print_radio_button('identification_reminder', 1, '', $config['identification_reminder'], true).' ';
|
||||
$table->data[9][1] .= __('No').' '.html_print_radio_button('identification_reminder', 0, '', $config['identification_reminder'], true);
|
||||
}
|
||||
|
||||
html_print_input_hidden('action_update_url_update_manager', 1);
|
||||
|
@ -285,6 +285,7 @@ if ($new_user && $config['admin_can_add_user']) {
|
||||
$user_info['language'] = 'default';
|
||||
$user_info['timezone'] = '';
|
||||
$user_info['not_login'] = false;
|
||||
$user_info['local_user'] = false;
|
||||
$user_info['strict_acl'] = false;
|
||||
$user_info['session_time'] = 0;
|
||||
$user_info['middlename'] = 0;
|
||||
@ -370,6 +371,7 @@ if ($create_user) {
|
||||
}
|
||||
|
||||
$values['not_login'] = (bool) get_parameter('not_login', false);
|
||||
$values['local_user'] = (bool) get_parameter('local_user', false);
|
||||
$values['middlename'] = get_parameter('middlename', 0);
|
||||
$values['strict_acl'] = (bool) get_parameter('strict_acl', false);
|
||||
$values['session_time'] = (int) get_parameter('session_time', 0);
|
||||
@ -571,6 +573,7 @@ if ($update_user) {
|
||||
}
|
||||
|
||||
$values['not_login'] = (bool) get_parameter('not_login', false);
|
||||
$values['local_user'] = (bool) get_parameter('local_user', false);
|
||||
$values['strict_acl'] = (bool) get_parameter('strict_acl', false);
|
||||
$values['session_time'] = (int) get_parameter('session_time', 0);
|
||||
|
||||
@ -1212,6 +1215,18 @@ $not_login .= html_print_checkbox_switch(
|
||||
true
|
||||
).'</div>';
|
||||
|
||||
$local_user = '<div class="label_select_simple"><p class="edit_user_labels">'.__('Local user').'</p>';
|
||||
$local_user .= ui_print_help_tip(
|
||||
__('The user with local authentication enabled will always use local authentication.'),
|
||||
true
|
||||
);
|
||||
$local_user .= html_print_checkbox_switch(
|
||||
'local_user',
|
||||
1,
|
||||
$user_info['local_user'],
|
||||
true
|
||||
).'</div>';
|
||||
|
||||
$session_time = '<div class="label_select_simple"><p class="edit_user_labels">'.__('Session Time');
|
||||
$session_time .= ui_print_help_tip(
|
||||
__('This is defined in minutes, If you wish a permanent session should putting -1 in this field.'),
|
||||
@ -1379,7 +1394,7 @@ if ($id != '' && !$is_err) {
|
||||
echo '<div id="user_form">
|
||||
<div class="user_edit_first_row">
|
||||
<div class="edit_user_info white_box">'.$div_user_info.'</div>
|
||||
<div class="edit_user_autorefresh white_box"><p class="bolder">Extra info</p>'.$email.$phone.$not_login.$session_time.'</div>
|
||||
<div class="edit_user_autorefresh white_box"><p class="bolder">Extra info</p>'.$email.$phone.$not_login.$local_user.$session_time.'</div>
|
||||
</div>
|
||||
<div class="user_edit_second_row white_box">
|
||||
<div class="edit_user_options">'.$language.$access_or_pagination.$skin.$home_screen.$default_event_filter.$double_authentication.'</div>
|
||||
|
@ -1254,7 +1254,7 @@ class DiscoveryTaskList extends HTML
|
||||
*
|
||||
* @param array $task Task.
|
||||
*
|
||||
* @return html code with summary.
|
||||
* @return string HTML code. code with summary.
|
||||
*/
|
||||
private function progressTaskSummary($task)
|
||||
{
|
||||
|
@ -144,7 +144,7 @@ if ($search_agents && (!is_metaconsole() || $force_local)) {
|
||||
$filter_agents = $filter;
|
||||
switch ($config['dbtype']) {
|
||||
case 'mysql':
|
||||
$filter_agents[] = '(UPPER(alias) NOT LIKE "%'.$string.'%" AND UPPER(nombre) COLLATE utf8_general_ci LIKE "%'.$string.'%")';
|
||||
$filter_agents[] = '(UPPER(alias) NOT LIKE "%'.$string.'%" AND UPPER(nombre) LIKE "%'.$string.'%")';
|
||||
break;
|
||||
|
||||
case 'postgresql':
|
||||
@ -173,7 +173,7 @@ if ($search_agents && (!is_metaconsole() || $force_local)) {
|
||||
$filter_address = $filter;
|
||||
switch ($config['dbtype']) {
|
||||
case 'mysql':
|
||||
$filter_address[] = '(UPPER(alias) NOT LIKE "%'.$string.'%" AND UPPER(nombre) COLLATE utf8_general_ci NOT LIKE "%'.$string.'%" AND UPPER(direccion) LIKE "%'.$string.'%")';
|
||||
$filter_address[] = '(UPPER(alias) NOT LIKE "%'.$string.'%" AND UPPER(nombre) NOT LIKE "%'.$string.'%" AND UPPER(direccion) LIKE "%'.$string.'%")';
|
||||
break;
|
||||
|
||||
case 'postgresql':
|
||||
@ -202,7 +202,7 @@ if ($search_agents && (!is_metaconsole() || $force_local)) {
|
||||
$filter_description = $filter;
|
||||
switch ($config['dbtype']) {
|
||||
case 'mysql':
|
||||
$filter_description[] = '(UPPER(alias) NOT LIKE "%'.$string.'%" AND UPPER(nombre) COLLATE utf8_general_ci NOT LIKE "%'.$string.'%" AND UPPER(direccion) NOT LIKE "%'.$string.'%" AND UPPER(comentarios) LIKE "%'.$string.'%")';
|
||||
$filter_description[] = '(UPPER(alias) NOT LIKE "%'.$string.'%" AND UPPER(nombre) NOT LIKE "%'.$string.'%" AND UPPER(direccion) NOT LIKE "%'.$string.'%" AND UPPER(comentarios) LIKE "%'.$string.'%")';
|
||||
break;
|
||||
|
||||
case 'postgresql':
|
||||
@ -284,7 +284,7 @@ if ($search_agents && (!is_metaconsole() || $force_local)) {
|
||||
if (empty($string) === false) {
|
||||
// Get agents for only the alias.
|
||||
$filter_alias = $filter;
|
||||
$filter_alias[] = '(alias COLLATE utf8_general_ci LIKE "%'.$string.'%")';
|
||||
$filter_alias[] = '(alias LIKE "%'.$string.'%")';
|
||||
|
||||
$agents = db_get_all_rows_filter(
|
||||
'tmetaconsole_agent',
|
||||
@ -307,7 +307,7 @@ if ($search_agents && (!is_metaconsole() || $force_local)) {
|
||||
|
||||
// Get agents for only the name.
|
||||
$filter_agents = $filter;
|
||||
$filter_agents[] = '(alias COLLATE utf8_general_ci NOT LIKE "%'.$string.'%" AND nombre COLLATE utf8_general_ci LIKE "%'.$string.'%")';
|
||||
$filter_agents[] = '(alias NOT LIKE "%'.$string.'%" AND nombre LIKE "%'.$string.'%")';
|
||||
|
||||
$agents = db_get_all_rows_filter(
|
||||
'tmetaconsole_agent',
|
||||
@ -330,7 +330,7 @@ if ($search_agents && (!is_metaconsole() || $force_local)) {
|
||||
|
||||
// Get agents for only the address.
|
||||
$filter_address = $filter;
|
||||
$filter_address[] = '(alias COLLATE utf8_general_ci NOT LIKE "%'.$string.'%" AND nombre COLLATE utf8_general_ci NOT LIKE "%'.$string.'%" AND direccion LIKE "%'.$string.'%")';
|
||||
$filter_address[] = '(alias NOT LIKE "%'.$string.'%" AND nombre NOT LIKE "%'.$string.'%" AND direccion LIKE "%'.$string.'%")';
|
||||
|
||||
$agents = db_get_all_rows_filter(
|
||||
'tmetaconsole_agent',
|
||||
@ -353,7 +353,7 @@ if ($search_agents && (!is_metaconsole() || $force_local)) {
|
||||
|
||||
// Get agents for only the description.
|
||||
$filter_description = $filter;
|
||||
$filter_description[] = '(alias COLLATE utf8_general_ci NOT LIKE "%'.$string.'%" AND nombre COLLATE utf8_general_ci NOT LIKE "%'.$string.'%" AND direccion NOT LIKE "%'.$string.'%" AND comentarios LIKE "%'.$string.'%")';
|
||||
$filter_description[] = '(alias NOT LIKE "%'.$string.'%" AND nombre NOT LIKE "%'.$string.'%" AND direccion NOT LIKE "%'.$string.'%" AND comentarios LIKE "%'.$string.'%")';
|
||||
|
||||
$agents = db_get_all_rows_filter(
|
||||
'tmetaconsole_agent',
|
||||
|
@ -82,8 +82,15 @@ function process_user_login($login, $pass, $api=false)
|
||||
{
|
||||
global $config;
|
||||
|
||||
// 0. Check first is user y set as local user.
|
||||
$local_user = (bool) db_get_value_filter(
|
||||
'local_user',
|
||||
'tusuario',
|
||||
['id_user' => $login]
|
||||
);
|
||||
|
||||
// 1. Try remote.
|
||||
if (strtolower($config['auth']) != 'mysql') {
|
||||
if ($local_user !== true && strtolower($config['auth']) != 'mysql') {
|
||||
$login_remote = process_user_login_remote(
|
||||
$login,
|
||||
io_safe_output($pass),
|
||||
@ -97,6 +104,7 @@ function process_user_login($login, $pass, $api=false)
|
||||
if ($login_remote === false
|
||||
&& ($config['fallback_local_auth']
|
||||
|| is_user_admin($login)
|
||||
|| $local_user === true
|
||||
|| strtolower($config['auth']) == 'mysql')
|
||||
) {
|
||||
return process_user_login_local($login, $pass, $api);
|
||||
@ -1391,8 +1399,16 @@ function safe_output_accute($string)
|
||||
}
|
||||
|
||||
|
||||
function local_ldap_search($ldap_host, $ldap_port=389, $ldap_version=3, $dn, $access_attr, $ldap_admin_user, $ldap_admin_pass, $user)
|
||||
{
|
||||
function local_ldap_search(
|
||||
$ldap_host,
|
||||
$ldap_port=389,
|
||||
$ldap_version=3,
|
||||
$dn=null,
|
||||
$access_attr=null,
|
||||
$ldap_admin_user=null,
|
||||
$ldap_admin_pass=null,
|
||||
$user=null
|
||||
) {
|
||||
global $config;
|
||||
|
||||
$filter = '';
|
||||
|
@ -544,11 +544,6 @@ class AgentWizard extends HTML
|
||||
// Get the servers.
|
||||
$rows = get_proxy_servers();
|
||||
|
||||
// Check if satellite server has remote configuration enabled.
|
||||
$satellite_remote = config_agents_has_remote_configuration(
|
||||
$this->idAgent
|
||||
);
|
||||
|
||||
// Generate a list with allowed servers.
|
||||
if (isset($rows) === true && is_array($rows) === true) {
|
||||
foreach ($rows as $row) {
|
||||
@ -1386,8 +1381,26 @@ class AgentWizard extends HTML
|
||||
$modulesActivated = $tmp;
|
||||
}
|
||||
|
||||
foreach (array_keys($data) as $k) {
|
||||
/*
|
||||
* Before changing anything inside those loops take in mind, if you
|
||||
* change the module definition at interface level, those are the
|
||||
* values wich will be applied to final module.
|
||||
*
|
||||
* There is no 'parse first default then specific' or similar.
|
||||
*
|
||||
* $modulesActivated has the modules to be created with the information
|
||||
* retrieved from those specific modules.
|
||||
*
|
||||
* Only inherites from 'default' if you made no changes on module
|
||||
* definition (at javascript level before calling this function).
|
||||
*/
|
||||
|
||||
foreach ($modulesActivated as $key => $value) {
|
||||
foreach (array_keys($data) as $k) {
|
||||
if (isset($data[$k]) === false || $data[$k] === '') {
|
||||
continue;
|
||||
}
|
||||
|
||||
$valueStr = preg_replace('/\//', '\/', $value);
|
||||
|
||||
if (empty(preg_match('/-'.$valueStr.'$/', $k)) === false
|
||||
@ -1401,114 +1414,151 @@ class AgentWizard extends HTML
|
||||
|
||||
if ($data['wizard_section'] === 'snmp_interfaces_explorer') {
|
||||
if (isset($data['module-active-'.$key]) === false
|
||||
|| $data['module-active-'.$key] == 0
|
||||
|| (bool) $data['module-active-'.$key] === false
|
||||
) {
|
||||
if (empty(preg_match('/module-name-set/', $k)) === false) {
|
||||
if (preg_match('/module-name-set/', $k) > 0) {
|
||||
$result[$value]['name'] = $data['module-default_name-'.$key];
|
||||
} else if (empty(preg_match('/module-description-set/', $k)) === false) {
|
||||
$result[$value]['description'] = $data['module-default_description-'.$key];
|
||||
} else if (empty(preg_match('/module-value/', $k)) === false) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (preg_match('/module-description-set/', $k) > 0) {
|
||||
$result[$value]['description'] = $data['module-description-set-'.$key];
|
||||
continue;
|
||||
}
|
||||
|
||||
if (preg_match('/module-value/', $k) > 0) {
|
||||
$result[$value]['value'] = $data['module-value-'.$key];
|
||||
} else if (empty(preg_match('/module-macros/', $k)) === false) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (preg_match('/module-macros/', $k) > 0) {
|
||||
$result[$value]['macros'] = $data['module-macros-'.$key];
|
||||
continue;
|
||||
} else if (empty(preg_match('/module-id_plugin/', $k)) === false) {
|
||||
}
|
||||
|
||||
if (preg_match('/module-id_plugin/', $k) > 0) {
|
||||
$result[$value]['id_plugin'] = $data['module-id_plugin-'.$key];
|
||||
continue;
|
||||
} else if (empty(preg_match('/module-id_modulo/', $k)) === false) {
|
||||
}
|
||||
|
||||
if (preg_match('/module-id_modulo/', $k) > 0) {
|
||||
$result[$value]['id_modulo'] = $data['module-id_modulo-'.$key];
|
||||
continue;
|
||||
} else if (empty(preg_match('/module-unit/', $k)) === false) {
|
||||
}
|
||||
|
||||
if (preg_match('/module-unit/', $k) > 0) {
|
||||
$result[$value]['unit'] = $data['module-unit-'.$key];
|
||||
continue;
|
||||
} else if (empty(preg_match('/module-warning-min/', $k)) === false) {
|
||||
$result[$value]['warningMin'] = $data['module-warning-min-0_0-0'];
|
||||
continue;
|
||||
} else if (empty(preg_match('/module-warning-max/', $k)) === false) {
|
||||
$result[$value]['warningMax'] = $data['module-warning-max-0_0-0'];
|
||||
continue;
|
||||
} else if (empty(preg_match('/module-critical-min/', $k)) === false) {
|
||||
$result[$value]['criticalMin'] = $data['module-critical-min-0_0-0'];
|
||||
continue;
|
||||
} else if (empty(preg_match('/module-critical-max/', $k)) === false) {
|
||||
$result[$value]['criticalMax'] = $data['module-critical-max-0_0-0'];
|
||||
continue;
|
||||
} else if (empty(preg_match('/module-critical-inv/', $k)) === false) {
|
||||
if (isset($data['module-critical-inv-0_0-0'])) {
|
||||
$result[$value]['criticalInv'] = $data['module-critical-inv-0_0-0_sent'];
|
||||
}
|
||||
|
||||
continue;
|
||||
} else if (empty(preg_match('/module-warning-inv/', $k)) === false) {
|
||||
if (isset($data['module-warning-inv-0_0-0'])) {
|
||||
$result[$value]['warningInv'] = $data['module-warning-inv-0_0-0_sent'];
|
||||
}
|
||||
|
||||
continue;
|
||||
} else if (empty(preg_match('/module-warning-perc/', $k)) === false) {
|
||||
if (isset($data['module-warning-perc-0_0-0'])) {
|
||||
$result[$value]['warningPerc'] = $data['module-warning-perc-0_0-0_sent'];
|
||||
}
|
||||
|
||||
continue;
|
||||
} else if (empty(preg_match('/module-critical-perc/', $k)) === false) {
|
||||
if (isset($data['module-critical-perc-0_0-0'])) {
|
||||
$result[$value]['criticalPerc'] = $data['module-critical-perc-0_0-0_sent'];
|
||||
}
|
||||
|
||||
if (preg_match('/module-warning-min/', $k) > 0
|
||||
&& '' !== $data['module-warning-min-'.$key]
|
||||
) {
|
||||
$result[$value]['warningMin'] = $data['module-warning-min-'.$key];
|
||||
continue;
|
||||
}
|
||||
|
||||
preg_match('/^(.*).*?_(\d+)-+(\d+)$/', $k, $matches);
|
||||
if (preg_match('/module-warning-max/', $k) > 0
|
||||
&& '' !== $data['module-warning-max-'.$key]
|
||||
) {
|
||||
$result[$value]['warningMax'] = $data['module-warning-max-'.$key];
|
||||
continue;
|
||||
}
|
||||
|
||||
if (preg_match('/module-critical-min/', $k) > 0
|
||||
&& '' !== $data['module-critical-min-'.$key]
|
||||
) {
|
||||
$result[$value]['criticalMin'] = $data['module-critical-min-'.$key];
|
||||
continue;
|
||||
}
|
||||
|
||||
if (preg_match('/module-critical-max/', $k) > 0
|
||||
&& '' !== $data['module-critical-max-'.$key]
|
||||
) {
|
||||
$result[$value]['criticalMax'] = $data['module-critical-max-'.$key];
|
||||
continue;
|
||||
}
|
||||
|
||||
if (preg_match('/module-critical-inv/', $k) > 0
|
||||
&& isset($data['module-critical-inv-'.$key]) === true
|
||||
) {
|
||||
$result[$value]['criticalInv'] = $data['module-critical-inv-'.$key.'_sent'];
|
||||
continue;
|
||||
}
|
||||
|
||||
if (preg_match('/module-warning-inv/', $k) > 0
|
||||
&& isset($data['module-warning-inv-'.$key]) === true
|
||||
) {
|
||||
$result[$value]['warningInv'] = $data['module-warning-inv-'.$key.'_sent'];
|
||||
continue;
|
||||
}
|
||||
|
||||
if (preg_match('/module-warning-perc/', $k) > 0
|
||||
&& isset($data['module-warning-perc-'.$key]) === true
|
||||
) {
|
||||
$result[$value]['warningPerc'] = $data['module-warning-perc-'.$key.'_sent'];
|
||||
continue;
|
||||
}
|
||||
|
||||
if (preg_match('/module-critical-perc/', $k) > 0
|
||||
&& isset($data['module-critical-perc-'.$key]) === true
|
||||
) {
|
||||
$result[$value]['criticalPerc'] = $data['module-critical-perc-'.$key.'_sent'];
|
||||
continue;
|
||||
}
|
||||
|
||||
if (preg_match('/^(.*).*?_(\d+)-+(\d+)$/', $k, $matches) > 0) {
|
||||
$k = $matches[1].'_'.$matches[2].'-'.$matches[3];
|
||||
}
|
||||
} else {
|
||||
if (empty(preg_match('/module-value/', $k)) === false) {
|
||||
if (preg_match('/module-value/', $k) > 0
|
||||
&& empty($data[$k]) === false
|
||||
) {
|
||||
$result[$value]['value'] = $data[$k];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (empty(preg_match('/-'.$valueStr.'_sent$/', $k)) === false) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (empty(preg_match('/module-warning-min/', $k)) === false) {
|
||||
// Specific customization only if switch is active.
|
||||
if (preg_match('/module-warning-min/', $k) > 0) {
|
||||
$result[$value]['warningMin'] = $data[$k];
|
||||
} else if (empty(preg_match('/module-warning-max/', $k)) === false) {
|
||||
} else if (preg_match('/module-warning-max/', $k) > 0) {
|
||||
$result[$value]['warningMax'] = $data[$k];
|
||||
} else if (empty(preg_match('/module-critical-min/', $k)) === false) {
|
||||
} else if (preg_match('/module-critical-min/', $k) > 0) {
|
||||
$result[$value]['criticalMin'] = $data[$k];
|
||||
} else if (empty(preg_match('/module-critical-max/', $k)) === false) {
|
||||
} else if (preg_match('/module-critical-max/', $k) > 0) {
|
||||
$result[$value]['criticalMax'] = $data[$k];
|
||||
} else if (empty(preg_match('/module-critical-inv/', $k)) === false) {
|
||||
} else if (preg_match('/module-critical-inv/', $k) > 0) {
|
||||
$result[$value]['criticalInv'] = $data[$k.'_sent'];
|
||||
} else if (empty(preg_match('/module-warning-inv/', $k)) === false) {
|
||||
} else if (preg_match('/module-warning-inv/', $k) > 0) {
|
||||
$result[$value]['warningInv'] = $data[$k.'_sent'];
|
||||
} else if (empty(preg_match('/module-warning-perc/', $k)) === false) {
|
||||
} else if (preg_match('/module-warning-perc/', $k) > 0) {
|
||||
$result[$value]['warningPerc'] = $data[$k.'_sent'];
|
||||
} else if (empty(preg_match('/module-critical-perc/', $k)) === false) {
|
||||
} else if (preg_match('/module-critical-perc/', $k) > 0) {
|
||||
$result[$value]['criticalPerc'] = $data[$k.'_sent'];
|
||||
} else if (empty(preg_match('/module-type/', $k)) === false) {
|
||||
} else if (preg_match('/module-type/', $k) > 0) {
|
||||
$result[$value]['moduleType'] = $data[$k];
|
||||
} else if (empty(preg_match('/module-unit/', $k)) === false) {
|
||||
} else if (preg_match('/module-unit/', $k) > 0) {
|
||||
$result[$value]['unit'] = $data[$k];
|
||||
} else if (empty(preg_match('/module-scan_type/', $k)) === false) {
|
||||
} else if (preg_match('/module-scan_type/', $k) > 0) {
|
||||
$result[$value]['scan_type'] = (int) $data[$k];
|
||||
} else if (empty(preg_match('/module-execution_type/', $k)) === false) {
|
||||
} else if (preg_match('/module-execution_type/', $k) > 0) {
|
||||
$result[$value]['execution_type'] = (int) $data[$k];
|
||||
} else if (($data['wizard_section'] !== 'snmp_interfaces_explorer') && (empty(preg_match('/module-value/', $k)) === false)) {
|
||||
} else if (($data['wizard_section'] !== 'snmp_interfaces_explorer')
|
||||
&& preg_match('/module-value/', $k) > 0
|
||||
) {
|
||||
$result[$value]['value'] = $data[$k];
|
||||
} else if (empty(preg_match('/module-macros/', $k)) === false) {
|
||||
} else if (preg_match('/module-macros/', $k) > 0) {
|
||||
$result[$value]['macros'] = $data[$k];
|
||||
} else if (empty(preg_match('/module-name-oid/', $k)) === false) {
|
||||
} else if (preg_match('/module-name-oid/', $k) > 0) {
|
||||
$result[$value]['nameOid'] = $data[$k];
|
||||
} else if (empty(preg_match('/module-query_class/', $k)) === false) {
|
||||
} else if (preg_match('/module-query_class/', $k) > 0) {
|
||||
$result[$value]['queryClass'] = $data[$k];
|
||||
} else if (empty(preg_match('/module-query_key_field/', $k)) === false) {
|
||||
} else if (preg_match('/module-query_key_field/', $k) > 0) {
|
||||
$result[$value]['queryKeyField'] = $data[$k];
|
||||
} else if (empty(preg_match('/module-scan_filters/', $k)) === false) {
|
||||
} else if (preg_match('/module-scan_filters/', $k) > 0) {
|
||||
$result[$value]['scanFilters'] = $data[$k];
|
||||
} else if (empty(preg_match('/module-query_filters/', $k)) === false) {
|
||||
} else if (preg_match('/module-query_filters/', $k) > 0) {
|
||||
$result[$value]['queryFilters'] = $data[$k];
|
||||
} else {
|
||||
$result[$value][$k] = $data[$k];
|
||||
@ -5971,19 +6021,19 @@ class AgentWizard extends HTML
|
||||
|
||||
if($(checkbox).prop('checked', true)) {
|
||||
if(checkbox_name.match(/warning-inv/gm) !== null) {
|
||||
$('#checkbox-module-warning-perc-'+uniqueId).prop('checked', false);
|
||||
$('#checkbox-module-warning-perc-'+uniqueId.replace('/','\\/')).prop('checked', false);
|
||||
}
|
||||
|
||||
if(checkbox_name.match(/critical-inv/gm) !== null) {
|
||||
$('#checkbox-module-critical-perc-'+uniqueId).prop('checked', false);
|
||||
$('#checkbox-module-critical-perc-'+uniqueId.replace('/','\\/')).prop('checked', false);
|
||||
}
|
||||
|
||||
if(checkbox_name.match(/warning-perc/gm) !== null) {
|
||||
$('#checkbox-module-warning-inv-'+uniqueId).prop('checked', false);
|
||||
$('#checkbox-module-warning-inv-'+uniqueId.replace('/','\\/')).prop('checked', false);
|
||||
}
|
||||
|
||||
if(checkbox_name.match(/critical-perc/gm) !== null) {
|
||||
$('#checkbox-module-critical-inv-'+uniqueId).prop('checked', false);
|
||||
$('#checkbox-module-critical-inv-'+uniqueId.replace('/','\\/')).prop('checked', false);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -556,7 +556,7 @@ class ConsoleSupervisor
|
||||
) {
|
||||
// Process user targets.
|
||||
$insertion_string = '';
|
||||
$users_sql = 'INSERT INTO tnotification_user(id_mensaje,id_user)';
|
||||
$users_sql = 'INSERT IGNORE INTO tnotification_user(id_mensaje,id_user)';
|
||||
foreach ($this->targetUsers as $user) {
|
||||
$insertion_string .= sprintf(
|
||||
'(%d,"%s")',
|
||||
@ -590,7 +590,7 @@ class ConsoleSupervisor
|
||||
) {
|
||||
// Process group targets.
|
||||
$insertion_string = '';
|
||||
$groups_sql = 'INSERT INTO tnotification_group(id_mensaje,id_group)';
|
||||
$groups_sql = 'INSERT IGNORE INTO tnotification_group(id_mensaje,id_group)';
|
||||
foreach ($this->targetGroups as $group) {
|
||||
$insertion_string .= sprintf(
|
||||
'(%d,"%s")',
|
||||
@ -659,15 +659,17 @@ class ConsoleSupervisor
|
||||
$_cache_targets = [];
|
||||
}
|
||||
|
||||
if ($_cache_targets[$key] !== null) {
|
||||
if (isset($_cache_targets[$key]) === true
|
||||
&& $_cache_targets[$key] !== null
|
||||
) {
|
||||
$targets = $_cache_targets[$key];
|
||||
} else {
|
||||
$targets = get_notification_source_targets(
|
||||
$source_id,
|
||||
$data['type']
|
||||
);
|
||||
$this->targetGroups = $targets['groups'];
|
||||
$this->targetUsers = $targets['users'];
|
||||
$this->targetGroups = ($targets['groups'] ?? null);
|
||||
$this->targetUsers = ($targets['users'] ?? null);
|
||||
|
||||
$_cache_targets[$key] = $targets;
|
||||
}
|
||||
|
@ -158,7 +158,9 @@ class CredentialStore extends Wizard
|
||||
// Check access.
|
||||
check_login();
|
||||
|
||||
if (! check_acl($config['id_user'], 0, 'AR')) {
|
||||
if ((bool) check_acl($config['id_user'], 0, 'PM') === false
|
||||
|| (bool) check_acl($config['id_user'], 0, 'UM') === false
|
||||
) {
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access credential store'
|
||||
@ -453,7 +455,8 @@ class CredentialStore extends Wizard
|
||||
$item['extra_2'] = io_output_password($item['extra_2']);
|
||||
$carry[$item['identifier']] = $item['identifier'];
|
||||
return $carry;
|
||||
}
|
||||
},
|
||||
[]
|
||||
);
|
||||
|
||||
return $return;
|
||||
|
@ -38,6 +38,8 @@ require_once $config['homedir'].'/godmode/wizards/Wizard.main.php';
|
||||
class Diagnostics extends Wizard
|
||||
{
|
||||
|
||||
const INNODB_FLUSH_LOG_AT_TRX_COMMIT = 2;
|
||||
|
||||
/**
|
||||
* Ajax controller page.
|
||||
*
|
||||
@ -797,8 +799,8 @@ class Diagnostics extends Wizard
|
||||
case 'innodb_flush_log_at_trx_commit':
|
||||
$name = __('InnoDB flush log at trx-commit');
|
||||
$value = $item['Value'];
|
||||
$status = ($item['Value'] == 2) ? 1 : 0;
|
||||
$message = __('Recommended Value').' 2';
|
||||
$status = ((int) $item['Value'] === self::INNODB_FLUSH_LOG_AT_TRX_COMMIT) ? 1 : 0;
|
||||
$message = __('Recommended Value %d', self::INNODB_FLUSH_LOG_AT_TRX_COMMIT);
|
||||
break;
|
||||
|
||||
case 'innodb_lock_wait_timeout':
|
||||
|
@ -473,12 +473,13 @@ class HTML
|
||||
bool $direct=false
|
||||
) {
|
||||
global $config;
|
||||
$text_color = '';
|
||||
if ($config['style'] === 'pandora_black' && !is_metaconsole()) {
|
||||
$text_color = 'style="color: white"';
|
||||
}
|
||||
|
||||
$output = '';
|
||||
if ($input['hidden'] == 1) {
|
||||
if (($input['hidden'] ?? null) == 1) {
|
||||
$class = ' hidden';
|
||||
} else {
|
||||
$class = '';
|
||||
@ -488,24 +489,24 @@ class HTML
|
||||
$class = $input['class'].$class;
|
||||
}
|
||||
|
||||
if (is_array($input['block_content']) === true) {
|
||||
$direct = (bool) $input['direct'];
|
||||
$toggle = (bool) $input['toggle'];
|
||||
if (is_array(($input['block_content'] ?? null)) === true) {
|
||||
$direct = (bool) ($input['direct'] ?? false);
|
||||
$toggle = (bool) ($input['toggle'] ?? false);
|
||||
|
||||
if (isset($input['label']) === true) {
|
||||
$output .= '<span '.$text_color.'>'.$input['label'].'</span>';
|
||||
}
|
||||
|
||||
// Print independent block of inputs.
|
||||
$output .= '<li id="li-'.$input['block_id'].'" class="'.$class.'">';
|
||||
$output .= '<li id="li-'.($input['block_id'] ?? '').'" class="'.$class.'">';
|
||||
|
||||
if ($input['wrapper']) {
|
||||
$output .= '<'.$input['wrapper'].' id="'.$input['block_id'].'" class="'.$class.'">';
|
||||
if (isset($input['wrapper']) === true) {
|
||||
$output .= '<'.$input['wrapper'].' id="'.($input['block_id'] ?? '').'" class="'.$class.'">';
|
||||
}
|
||||
|
||||
if (!$direct) {
|
||||
// Avoid encapsulation if input is direct => 1.
|
||||
$output .= '<ul class="wizard '.$input['block_class'].'">';
|
||||
$output .= '<ul class="wizard '.($input['block_class'] ?? '').'">';
|
||||
}
|
||||
|
||||
$html = '';
|
||||
@ -544,15 +545,16 @@ class HTML
|
||||
$output .= '</ul>';
|
||||
}
|
||||
|
||||
if ($input['wrapper']) {
|
||||
if (isset($input['wrapper']) === true) {
|
||||
$output .= '</'.$input['wrapper'].'>';
|
||||
}
|
||||
|
||||
$output .= '</li>';
|
||||
} else {
|
||||
if ($input['arguments']['type'] != 'hidden'
|
||||
&& $input['arguments']['type'] != 'hidden_extended'
|
||||
&& $input['arguments']['type'] != 'datalist'
|
||||
if (is_array(($input['arguments'] ?? false)) === true
|
||||
&& ($input['arguments']['type'] ?? false) != 'hidden'
|
||||
&& ($input['arguments']['type'] ?? false) != 'hidden_extended'
|
||||
&& ($input['arguments']['type'] ?? false) != 'datalist'
|
||||
) {
|
||||
// Raw content for attach at the start of the input.
|
||||
if (isset($input['surround_start']) === true) {
|
||||
@ -560,7 +562,7 @@ class HTML
|
||||
}
|
||||
|
||||
if (!$direct) {
|
||||
$output .= '<li id="'.$input['id'].'" class="'.$class.'">';
|
||||
$output .= '<li id="'.($input['id'] ?? '').'" class="'.$class.'">';
|
||||
}
|
||||
|
||||
if (isset($input['label']) === true) {
|
||||
@ -569,7 +571,7 @@ class HTML
|
||||
|
||||
$output .= self::printInput($input['arguments']);
|
||||
// Allow dynamic content.
|
||||
$output .= $input['extra'];
|
||||
$output .= ($input['extra'] ?? '');
|
||||
if (!$direct) {
|
||||
$output .= '</li>';
|
||||
}
|
||||
@ -579,9 +581,9 @@ class HTML
|
||||
$output .= $input['surround_end'];
|
||||
}
|
||||
} else {
|
||||
$output .= self::printInput($input['arguments']);
|
||||
$output .= self::printInput(($input['arguments'] ?? []));
|
||||
// Allow dynamic content.
|
||||
$output .= $input['extra'];
|
||||
$output .= ($input['extra'] ?? '');
|
||||
}
|
||||
}
|
||||
|
||||
@ -773,13 +775,13 @@ class HTML
|
||||
bool $return=false,
|
||||
bool $print_white_box=false
|
||||
) {
|
||||
$form = $data['form'];
|
||||
$inputs = $data['inputs'];
|
||||
$rawInputs = $data['rawInputs'];
|
||||
$js = $data['js'];
|
||||
$rawjs = $data['js_block'];
|
||||
$cb_function = $data['cb_function'];
|
||||
$cb_args = $data['cb_args'];
|
||||
$form = ($data['form'] ?? null);
|
||||
$inputs = ($data['inputs'] ?? []);
|
||||
$rawInputs = ($data['rawInputs'] ?? null);
|
||||
$js = ($data['js'] ?? null);
|
||||
$rawjs = ($data['js_block'] ?? null);
|
||||
$cb_function = ($data['cb_function'] ?? null);
|
||||
$cb_args = ($data['cb_args'] ?? null);
|
||||
|
||||
$output_head = '';
|
||||
if (empty($data['pre-content']) === false) {
|
||||
@ -831,7 +833,7 @@ class HTML
|
||||
if (isset($cb_function) === true) {
|
||||
call_user_func_array(
|
||||
$cb_function,
|
||||
(isset($cb_args) === true) ? $cb_args : []
|
||||
array_values((isset($cb_args) === true) ? $cb_args : [])
|
||||
);
|
||||
}
|
||||
} catch (Exception $e) {
|
||||
@ -848,10 +850,12 @@ class HTML
|
||||
$output .= '<ul class="wizard">';
|
||||
|
||||
foreach ($inputs as $input) {
|
||||
if ($input['arguments']['type'] != 'submit') {
|
||||
$output .= self::printBlock($input, true);
|
||||
} else {
|
||||
if (is_array(($input['arguments'] ?? null)) === true
|
||||
&& $input['arguments']['type'] === 'submit'
|
||||
) {
|
||||
$output_submit .= self::printBlock($input, true);
|
||||
} else {
|
||||
$output .= self::printBlock($input, true);
|
||||
}
|
||||
}
|
||||
|
||||
@ -913,7 +917,7 @@ class HTML
|
||||
if (isset($cb_function) === true) {
|
||||
call_user_func_array(
|
||||
$cb_function,
|
||||
(isset($cb_args) === true) ? $cb_args : []
|
||||
array_values((isset($cb_args) === true) ? $cb_args : [])
|
||||
);
|
||||
}
|
||||
} catch (Exception $e) {
|
||||
@ -1048,7 +1052,7 @@ class HTML
|
||||
if (isset($cb_function) === true) {
|
||||
call_user_func_array(
|
||||
$cb_function,
|
||||
(isset($cb_args) === true) ? $cb_args : []
|
||||
array_values((isset($cb_args) === true) ? $cb_args : [])
|
||||
);
|
||||
}
|
||||
} catch (Exception $e) {
|
||||
@ -1062,7 +1066,7 @@ class HTML
|
||||
if ($input['arguments']['type'] != 'submit') {
|
||||
$output .= self::printBlockAsList($input, true);
|
||||
} else {
|
||||
$output_submit .= self::printBlockAsList($input, true);
|
||||
$output_submit = self::printBlockAsList($input, true);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2435,6 +2435,13 @@ class NetworkMap
|
||||
$this->map['height'] = $this->mapOptions['height'];
|
||||
}
|
||||
|
||||
if (is_string($this->map['filter']) === true) {
|
||||
$this->map['filter'] = json_decode($this->map['filter'], true);
|
||||
if (json_last_error() !== JSON_ERROR_NONE) {
|
||||
$this->map['filter'] = [];
|
||||
}
|
||||
}
|
||||
|
||||
$this->map['filter']['z_dash'] = $this->mapOptions['z_dash'];
|
||||
|
||||
if (is_array($graph) === true) {
|
||||
@ -2639,11 +2646,10 @@ class NetworkMap
|
||||
'MW'
|
||||
);
|
||||
|
||||
$simulate = false;
|
||||
if (isset($networkmap['__simulated']) === false) {
|
||||
if ($this->widget) {
|
||||
$networkmap['filter'] = $this->mapOptions;
|
||||
} else {
|
||||
} else if (is_string($networkmap['filter']) === true) {
|
||||
$networkmap['filter'] = json_decode(
|
||||
$networkmap['filter'],
|
||||
true
|
||||
@ -2656,7 +2662,6 @@ class NetworkMap
|
||||
];
|
||||
$holding_area_title = __('Holding Area');
|
||||
} else {
|
||||
$simulate = true;
|
||||
$holding_area_title = '';
|
||||
$networkmap['filter']['holding_area'] = [
|
||||
0,
|
||||
@ -2672,7 +2677,7 @@ class NetworkMap
|
||||
html_print_input_hidden('product_name', get_product_name());
|
||||
html_print_input_hidden('center_logo', ui_get_full_url(ui_get_logo_to_center_networkmap()));
|
||||
|
||||
$output .= '<script type="text/javascript">
|
||||
$output = '<script type="text/javascript">
|
||||
////////////////////////////////////////////////////////////////////
|
||||
// VARS FROM THE DB
|
||||
////////////////////////////////////////////////////////////////////
|
||||
|
@ -581,10 +581,12 @@ class Tree
|
||||
}
|
||||
|
||||
|
||||
protected function processModule(&$module, $server=false, $all_groups)
|
||||
protected function processModule(&$module, $server, $all_groups)
|
||||
{
|
||||
global $config;
|
||||
|
||||
$server = ($server ?? false);
|
||||
|
||||
if (isset($module['children'])) {
|
||||
foreach ($module['children'] as $i => $children) {
|
||||
$this->processModule($module['children'][$i], $server, $all_groups);
|
||||
@ -734,10 +736,10 @@ class Tree
|
||||
// Info to be able to open the snapshot image new page.
|
||||
$module['snapshot'] = ui_get_snapshot_link(
|
||||
[
|
||||
'id_module' => $module['id'],
|
||||
'interval' => $module['current_interval'],
|
||||
'module_name' => $module['name'],
|
||||
'id_node' => $module['serverID'] ? $module['serverID'] : 0,
|
||||
'id_module' => ($module['id'] ?? null),
|
||||
'interval' => ($module['current_interval'] ?? null),
|
||||
'module_name' => ($module['name'] ?? null),
|
||||
'id_node' => ((isset($module['serverID']) === true) ? $module['serverID'] : 0),
|
||||
],
|
||||
true
|
||||
);
|
||||
@ -754,14 +756,15 @@ class Tree
|
||||
}
|
||||
|
||||
$module_alerts = alerts_get_alerts_agent_module($module['id']);
|
||||
|
||||
$module_alert_triggered = false;
|
||||
|
||||
if (is_array($module_alerts) === true) {
|
||||
foreach ($module_alerts as $module_alert) {
|
||||
if ($module_alert['times_fired'] > 0) {
|
||||
$module_alert_triggered = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Module has alerts.
|
||||
if ((bool) $module['alerts']) {
|
||||
|
@ -262,7 +262,7 @@ class TreeGroup extends Tree
|
||||
$groups = array_filter(
|
||||
$groups,
|
||||
function ($group) {
|
||||
return !$group['have_parent'];
|
||||
return !($group['have_parent'] ?? false);
|
||||
}
|
||||
);
|
||||
// Propagate child counters to her parents.
|
||||
@ -417,7 +417,7 @@ class TreeGroup extends Tree
|
||||
$groups = array_filter(
|
||||
$groups,
|
||||
function ($group) {
|
||||
return !$group['have_parent'];
|
||||
return !($group['have_parent'] ?? false);
|
||||
}
|
||||
);
|
||||
|
||||
@ -489,6 +489,10 @@ class TreeGroup extends Tree
|
||||
}
|
||||
|
||||
foreach ($groups[$id]['counters'] as $type => $value) {
|
||||
if (isset($all_counters[$type]) === false) {
|
||||
$all_counters[$type] = 0;
|
||||
}
|
||||
|
||||
$all_counters[$type] += $value;
|
||||
}
|
||||
}
|
||||
|
@ -135,7 +135,7 @@ class TreeGroupEdition extends TreeGroup
|
||||
$groups = array_filter(
|
||||
$groups,
|
||||
function ($group) {
|
||||
return !$group['have_parent'];
|
||||
return !($group['have_parent'] ?? false);
|
||||
}
|
||||
);
|
||||
|
||||
|
@ -20,7 +20,7 @@
|
||||
/**
|
||||
* Pandora build version and version
|
||||
*/
|
||||
$build_version = 'PC220217';
|
||||
$build_version = 'PC220310';
|
||||
$pandora_version = 'v7.0NG.760';
|
||||
|
||||
// Do not overwrite default timezone set if defined.
|
||||
@ -311,3 +311,15 @@ if (isset($_SESSION['meny_type']) === true && empty($_SESSION['menu_type']) ===
|
||||
} else {
|
||||
$config['menu_type'] = 'classic';
|
||||
}
|
||||
|
||||
|
||||
// Log.
|
||||
if (isset($config['console_log_enabled']) === true
|
||||
&& $config['console_log_enabled'] == 1
|
||||
) {
|
||||
ini_set('log_errors', true);
|
||||
ini_set('error_log', $config['homedir'].'/log/console.log');
|
||||
} else {
|
||||
ini_set('log_errors', false);
|
||||
ini_set('error_log', '');
|
||||
}
|
||||
|
@ -1269,10 +1269,12 @@ function mysql_db_process_sql_delete($table, $where, $where_join='AND')
|
||||
* @param string $sql
|
||||
* @return mixed The row or false in error.
|
||||
*/
|
||||
function mysql_db_get_all_row_by_steps_sql($new=true, &$result, $sql=null)
|
||||
function mysql_db_get_all_row_by_steps_sql($new, &$result, $sql=null)
|
||||
{
|
||||
global $config;
|
||||
|
||||
$new = ($new ?? true);
|
||||
|
||||
if ($config['mysqli'] === true) {
|
||||
if ($new == true) {
|
||||
$result = mysqli_query($config['dbconnection'], $sql);
|
||||
|
@ -1,3 +1,24 @@
|
||||
.terminal-main {
|
||||
font-family: monospace;
|
||||
font-size: 10pt;
|
||||
}
|
||||
|
||||
#ehorus-client-container {
|
||||
font-family: 'lato';
|
||||
}
|
||||
|
||||
.glyphicon {
|
||||
position: relative;
|
||||
top: 1px;
|
||||
display: inline-block;
|
||||
font-style: normal;
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
line-height: 1;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
font-family: 'Glyphicons Halflings';
|
||||
}
|
||||
|
||||
.btn:focus,
|
||||
.btn:active:focus,
|
||||
.btn.active:focus,
|
||||
|
@ -166,7 +166,7 @@ function safe_url_extraclean($string, $default_string='')
|
||||
* @param string $searchHandler Pattern of files to match.
|
||||
* @param boolean $return Whether to print or return the list.
|
||||
*
|
||||
* @return string he list of files if $return parameter is true.
|
||||
* @return array the list of files if $return parameter is true.
|
||||
*/
|
||||
function list_files($directory, $stringSearch, $searchHandler, $return=false)
|
||||
{
|
||||
@ -515,6 +515,7 @@ function human_time_description_raw($seconds, $exactly=false, $units='large')
|
||||
|
||||
if ($exactly) {
|
||||
$returnDate = '';
|
||||
$seconds = (float) $seconds;
|
||||
|
||||
$years = floor($seconds / SECONDS_1YEAR);
|
||||
|
||||
@ -1545,7 +1546,10 @@ function enterprise_hook($function_name, $parameters=false)
|
||||
return call_user_func($function_name);
|
||||
}
|
||||
|
||||
return call_user_func_array($function_name, $parameters);
|
||||
return call_user_func_array(
|
||||
$function_name,
|
||||
array_values(($parameters ?? []))
|
||||
);
|
||||
}
|
||||
|
||||
return ENTERPRISE_NOT_HOOK;
|
||||
|
@ -750,6 +750,7 @@ function agents_get_agents_selected($group)
|
||||
'id_tmetaconsole_setup',
|
||||
'id_agente',
|
||||
'alias',
|
||||
'server_name',
|
||||
],
|
||||
'AR',
|
||||
[
|
||||
@ -764,7 +765,7 @@ function agents_get_agents_selected($group)
|
||||
$all = array_reduce(
|
||||
$all,
|
||||
function ($carry, $item) {
|
||||
$carry[$item['id_tmetaconsole_setup'].'|'.$item['id_tagente']] = $item['alias'];
|
||||
$carry[$item['id_tmetaconsole_setup'].'|'.$item['id_tagente']] = $item['server_name'].' » '.$item['alias'];
|
||||
return $carry;
|
||||
},
|
||||
[]
|
||||
@ -1239,26 +1240,31 @@ function agents_get_group_agents(
|
||||
|
||||
if (isset($search['string']) === true) {
|
||||
$string = io_safe_input($search['string']);
|
||||
$filter[] = "(nombre COLLATE utf8_general_ci LIKE '%$string%' OR direccion LIKE '%$string%')";
|
||||
$filter[] = "(nombre LIKE '%$string%' OR direccion LIKE '%$string%')";
|
||||
unset($search['string']);
|
||||
}
|
||||
|
||||
if (isset($search['matchIds']) === true && is_array($search['matchIds']) === true) {
|
||||
$filter[] = sprintf('id_agente IN (%s)', implode(', ', $search['matchIds']));
|
||||
unset($search['matchIds']);
|
||||
}
|
||||
|
||||
if (isset($search['name']) === true) {
|
||||
$name = io_safe_input($search['name']);
|
||||
$filter[] = "nombre COLLATE utf8_general_ci LIKE '$name'";
|
||||
$filter[] = "nombre LIKE '$name'";
|
||||
unset($search['name']);
|
||||
}
|
||||
|
||||
if (isset($search['alias']) === true) {
|
||||
$name = io_safe_input($search['alias']);
|
||||
$filter[] = "alias COLLATE utf8_general_ci LIKE '$name'";
|
||||
$filter[] = "alias LIKE '$name'";
|
||||
unset($search['alias']);
|
||||
}
|
||||
|
||||
if (isset($search['aliasRegex']) === true) {
|
||||
$name = io_safe_input($search['aliasRegex']);
|
||||
$filter[] = sprintf(
|
||||
'alias COLLATE utf8_general_ci REGEXP "%s"',
|
||||
'alias REGEXP "%s"',
|
||||
$name
|
||||
);
|
||||
unset($search['aliasRegex']);
|
||||
@ -1397,7 +1403,7 @@ function agents_get_group_agents(
|
||||
$key = $row['id_agente'];
|
||||
}
|
||||
|
||||
if ($row['id_server'] !== '') {
|
||||
if (($row['id_server'] ?? '') !== '') {
|
||||
if (is_metaconsole()) {
|
||||
$server_name = db_get_row_filter(
|
||||
'tmetaconsole_setup',
|
||||
@ -1555,7 +1561,7 @@ function agents_get_modules(
|
||||
// ----------------------------------------------------------
|
||||
foreach ($list_filter as $item) {
|
||||
$field = $item['field'];
|
||||
$value = $item['value'];
|
||||
$value = (string) $item['value'];
|
||||
|
||||
// Check <> operator
|
||||
$operatorDistin = false;
|
||||
@ -1719,16 +1725,12 @@ function agents_get_name($id_agent, $case='none')
|
||||
case 'upper':
|
||||
return mb_strtoupper($agent, 'UTF-8');
|
||||
|
||||
break;
|
||||
case 'lower':
|
||||
return mb_strtolower($agent, 'UTF-8');
|
||||
|
||||
break;
|
||||
case 'none':
|
||||
default:
|
||||
return ($agent);
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1815,23 +1817,37 @@ function agents_get_alias_array($array_ids)
|
||||
/**
|
||||
* Get alias of an agent (cached function).
|
||||
*
|
||||
* @param integer $id_agent Agent id.
|
||||
* @param integer|array $id_agent Agent id or array or box, also a boat.
|
||||
* @param string $case Case (upper, lower, none).
|
||||
*
|
||||
* @return string Alias of the given agent.
|
||||
*/
|
||||
function agents_get_alias($id_agent, $case='none')
|
||||
function agents_get_alias($id_agent, string $case='none')
|
||||
{
|
||||
global $config;
|
||||
// Prepare cache.
|
||||
static $cache = [];
|
||||
if (empty($case)) {
|
||||
if (empty($case) === true) {
|
||||
$case = 'none';
|
||||
}
|
||||
|
||||
$agent_alias = '';
|
||||
if (is_array($id_agent) === true) {
|
||||
foreach ($id_agent as $agg) {
|
||||
$agent_alias .= agents_get_alias($agg, $case);
|
||||
}
|
||||
|
||||
return $agent_alias;
|
||||
}
|
||||
|
||||
if (isset($cache[$case]) === false) {
|
||||
$cache[$case] = [];
|
||||
}
|
||||
|
||||
// Check cache.
|
||||
if (!is_metaconsole()) {
|
||||
if (isset($cache[$case][$id_agent])) {
|
||||
if (is_metaconsole() === false) {
|
||||
if (is_numeric($id_agent) === true && isset($cache[$case]) === true
|
||||
&& isset($cache[$case][$id_agent]) === true
|
||||
) {
|
||||
return $cache[$case][$id_agent];
|
||||
}
|
||||
}
|
||||
@ -1857,7 +1873,7 @@ function agents_get_alias($id_agent, $case='none')
|
||||
break;
|
||||
}
|
||||
|
||||
if (!is_metaconsole()) {
|
||||
if (is_metaconsole() === false) {
|
||||
$cache[$case][$id_agent] = $alias;
|
||||
}
|
||||
|
||||
@ -3213,8 +3229,8 @@ function agents_get_network_interfaces($agents=false, $agents_filter=false)
|
||||
$ni_by_agents = [];
|
||||
foreach ($agents as $agent) {
|
||||
$agent_id = (isset($agent['id_agente'])) ? $agent['id_agente'] : $agent;
|
||||
$agent_group_id = $agent['id_grupo'];
|
||||
$agent_name = $agent['alias'];
|
||||
$agent_group_id = (isset($agent['id_grupo']) === true) ? $agent['id_grupo'] : '';
|
||||
$agent_name = (isset($agent['alias']) === true) ? $agent['alias'] : '';
|
||||
$agent_interfaces = [];
|
||||
|
||||
$accepted_module_types = [];
|
||||
@ -4170,3 +4186,78 @@ function get_planned_downtime_agents_list($id_downtime, $filter_cond, $id_groups
|
||||
|
||||
return $agents;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Agent Module status and data
|
||||
*
|
||||
* @param integer $id_group Group
|
||||
* @param array $agents Agents filter.
|
||||
* @param array $modules Modules filter.
|
||||
*
|
||||
* @return array Result.
|
||||
*/
|
||||
function get_status_data_agent_modules($id_group, $agents=[], $modules=[])
|
||||
{
|
||||
$slq_filter_group = '';
|
||||
if (empty($id_group) === false) {
|
||||
$slq_filter_group = sprintf(
|
||||
' AND tagente.id_grupo = %d',
|
||||
$id_group
|
||||
);
|
||||
}
|
||||
|
||||
$slq_filter_agent = '';
|
||||
if (empty($agents) === false) {
|
||||
$slq_filter_agent = sprintf(
|
||||
' AND tagente_modulo.id_agente IN (%s)',
|
||||
implode(',', $agents)
|
||||
);
|
||||
}
|
||||
|
||||
$slq_filter_module = '';
|
||||
if (empty($modules) === false) {
|
||||
$slq_filter_module = sprintf(
|
||||
' AND tagente_modulo.id_agente_modulo IN (%s)',
|
||||
implode(',', $modules)
|
||||
);
|
||||
}
|
||||
|
||||
$sql = sprintf(
|
||||
'SELECT tagente_modulo.id_agente_modulo as id_agent_module,
|
||||
tagente_modulo.nombre as name_module,
|
||||
tagente_modulo.unit as unit_module,
|
||||
tagente_modulo.id_agente as id_agent,
|
||||
tagente_estado.datos as data_module,
|
||||
tagente_estado.timestamp as data_time_module,
|
||||
tagente_estado.estado as status_module,
|
||||
tagente.alias as name_agent,
|
||||
tagente.id_grupo as id_group,
|
||||
tgrupo.nombre as name_group
|
||||
FROM tagente_modulo
|
||||
INNER JOIN tagente_estado
|
||||
ON tagente_modulo.id_agente_modulo = tagente_estado.id_agente_modulo
|
||||
INNER JOIN tagente
|
||||
ON tagente_modulo.id_agente = tagente.id_agente
|
||||
LEFT JOIN tagent_secondary_group
|
||||
ON tagente.id_agente = tagent_secondary_group.id_agent
|
||||
INNER JOIN tgrupo
|
||||
ON tagente.id_grupo = tgrupo.id_grupo
|
||||
WHERE 1=1
|
||||
%s
|
||||
%s
|
||||
%s
|
||||
',
|
||||
$slq_filter_group,
|
||||
$slq_filter_agent,
|
||||
$slq_filter_module
|
||||
);
|
||||
|
||||
$res = db_get_all_rows_sql($sql);
|
||||
|
||||
if ($res === false) {
|
||||
$res = [];
|
||||
}
|
||||
|
||||
return $res;
|
||||
}
|
||||
|
@ -3395,3 +3395,120 @@ function alerts_get_templates_name_array($array_ids)
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Default values events calendar templates.
|
||||
*
|
||||
* @param integer $id ID.
|
||||
* @param string $table Name table.
|
||||
*
|
||||
* @return array Data Events.
|
||||
*/
|
||||
function default_events_calendar($id, $table)
|
||||
{
|
||||
$result = [
|
||||
'monday' => [
|
||||
[
|
||||
'start' => '00:00:00',
|
||||
'end' => '00:00:00',
|
||||
],
|
||||
],
|
||||
'tuesday' => [
|
||||
[
|
||||
'start' => '00:00:00',
|
||||
'end' => '00:00:00',
|
||||
],
|
||||
],
|
||||
'wednesday' => [
|
||||
[
|
||||
'start' => '00:00:00',
|
||||
'end' => '00:00:00',
|
||||
],
|
||||
],
|
||||
'thursday' => [
|
||||
[
|
||||
'start' => '00:00:00',
|
||||
'end' => '00:00:00',
|
||||
],
|
||||
],
|
||||
'friday' => [
|
||||
[
|
||||
'start' => '00:00:00',
|
||||
'end' => '00:00:00',
|
||||
],
|
||||
],
|
||||
'saturday' => [
|
||||
[
|
||||
'start' => '00:00:00',
|
||||
'end' => '00:00:00',
|
||||
],
|
||||
],
|
||||
'sunday' => [
|
||||
[
|
||||
'start' => '00:00:00',
|
||||
'end' => '00:00:00',
|
||||
],
|
||||
],
|
||||
];
|
||||
|
||||
$days = [
|
||||
'monday',
|
||||
'tuesday',
|
||||
'wednesday',
|
||||
'thursday',
|
||||
'friday',
|
||||
'saturday',
|
||||
'sunday',
|
||||
];
|
||||
|
||||
// Check Exists.
|
||||
if (empty($id) === false) {
|
||||
$sql_default_alert = sprintf(
|
||||
'SELECT `id`,
|
||||
`name`,
|
||||
`time_from`,
|
||||
`time_to`,
|
||||
`monday`,
|
||||
`tuesday`,
|
||||
`wednesday`,
|
||||
`thursday`,
|
||||
`friday`,
|
||||
`saturday`,
|
||||
`sunday`,
|
||||
`schedule`
|
||||
FROM %s
|
||||
WHERE id = %d',
|
||||
$table,
|
||||
$id
|
||||
);
|
||||
|
||||
$r = db_get_row_sql($sql_default_alert);
|
||||
if ($r != false) {
|
||||
// Check Exist schedule.
|
||||
if (empty($r['schedule']) === false) {
|
||||
$result = json_decode(io_safe_output($r['schedule']), true);
|
||||
} else {
|
||||
// Compatibility mode old.
|
||||
$result = [];
|
||||
foreach ($days as $day) {
|
||||
if ((int) $r[$day] === 1) {
|
||||
$start = $r['time_from'];
|
||||
$to = $r['time_to'];
|
||||
if ($r['time_from'] === $r['time_to']) {
|
||||
$start = '00:00:00';
|
||||
$to = '00:00:00';
|
||||
}
|
||||
|
||||
$result[$day][0] = [
|
||||
'start' => $start,
|
||||
'end' => $to,
|
||||
];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
@ -1535,10 +1535,6 @@ function api_set_update_agent($id_agent, $thrash2, $other, $thrash3)
|
||||
'disabled',
|
||||
]
|
||||
);
|
||||
$tpolicy_group_old = db_get_all_rows_sql(
|
||||
'SELECT id_policy FROM tpolicy_groups
|
||||
WHERE id_group = '.$values_old['id_grupo']
|
||||
);
|
||||
|
||||
$return = db_process_sql_update(
|
||||
'tagente',
|
||||
@ -1577,59 +1573,6 @@ function api_set_update_agent($id_agent, $thrash2, $other, $thrash3)
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
if ($tpolicy_group_old) {
|
||||
foreach ($tpolicy_group_old as $key => $value) {
|
||||
$tpolicy_agents_old = db_get_sql(
|
||||
'SELECT * FROM tpolicy_agents
|
||||
WHERE id_policy = '.$value['id_policy'].' AND id_agent = '.$id_agent
|
||||
);
|
||||
|
||||
if ($tpolicy_agents_old) {
|
||||
$result2 = db_process_sql_update(
|
||||
'tpolicy_agents',
|
||||
['pending_delete' => 1],
|
||||
[
|
||||
'id_agent' => $id_agent,
|
||||
'id_policy' => $value['id_policy'],
|
||||
]
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$tpolicy_group = db_get_all_rows_sql(
|
||||
'SELECT id_policy FROM tpolicy_groups
|
||||
WHERE id_group = '.$idGroup
|
||||
);
|
||||
|
||||
if ($tpolicy_group) {
|
||||
foreach ($tpolicy_group as $key => $value) {
|
||||
$tpolicy_agents = db_get_sql(
|
||||
'SELECT * FROM tpolicy_agents
|
||||
WHERE id_policy = '.$value['id_policy'].' AND id_agent ='.$id_agent
|
||||
);
|
||||
|
||||
if (!$tpolicy_agents) {
|
||||
db_process_sql_insert(
|
||||
'tpolicy_agents',
|
||||
[
|
||||
'id_policy' => $value['id_policy'],
|
||||
'id_agent' => $id_agent,
|
||||
]
|
||||
);
|
||||
} else {
|
||||
$result3 = db_process_sql_update(
|
||||
'tpolicy_agents',
|
||||
['pending_delete' => 0],
|
||||
[
|
||||
'id_agent' => $id_agent,
|
||||
'id_policy' => $value['id_policy'],
|
||||
]
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
returnData(
|
||||
@ -1829,11 +1772,6 @@ function api_set_update_agent_field($id_agent, $use_agent_alias, $params)
|
||||
]
|
||||
);
|
||||
|
||||
$tpolicy_group_old = db_get_all_rows_sql(
|
||||
'SELECT id_policy FROM tpolicy_groups
|
||||
WHERE id_group = '.$values_old['id_grupo']
|
||||
);
|
||||
|
||||
$return = db_process_sql_update(
|
||||
'tagente',
|
||||
$fields,
|
||||
@ -1861,59 +1799,6 @@ function api_set_update_agent_field($id_agent, $use_agent_alias, $params)
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
if ($tpolicy_group_old) {
|
||||
foreach ($tpolicy_group_old as $key => $value) {
|
||||
$tpolicy_agents_old = db_get_sql(
|
||||
'SELECT * FROM tpolicy_agents
|
||||
WHERE id_policy = '.$value['id_policy'].' AND id_agent = '.$agent
|
||||
);
|
||||
|
||||
if ($tpolicy_agents_old) {
|
||||
$result2 = db_process_sql_update(
|
||||
'tpolicy_agents',
|
||||
['pending_delete' => 1],
|
||||
[
|
||||
'id_agent' => $agent,
|
||||
'id_policy' => $value['id_policy'],
|
||||
]
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$tpolicy_group = db_get_all_rows_sql(
|
||||
'SELECT id_policy FROM tpolicy_groups
|
||||
WHERE id_group = '.$field['id_grupo']
|
||||
);
|
||||
|
||||
if ($tpolicy_group) {
|
||||
foreach ($tpolicy_group as $key => $value) {
|
||||
$tpolicy_agents = db_get_sql(
|
||||
'SELECT * FROM tpolicy_agents
|
||||
WHERE id_policy = '.$value['id_policy'].' AND id_agent ='.$agent
|
||||
);
|
||||
|
||||
if (!$tpolicy_agents) {
|
||||
db_process_sql_insert(
|
||||
'tpolicy_agents',
|
||||
[
|
||||
'id_policy' => $value['id_policy'],
|
||||
'id_agent' => $agent,
|
||||
]
|
||||
);
|
||||
} else {
|
||||
$result3 = db_process_sql_update(
|
||||
'tpolicy_agents',
|
||||
['pending_delete' => 0],
|
||||
[
|
||||
'id_agent' => $agent,
|
||||
'id_policy' => $value['id_policy'],
|
||||
]
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -2066,23 +1951,6 @@ function api_set_new_agent($thrash1, $thrash2, $other, $thrash3)
|
||||
agents_add_address($id_agente, $direccion_agente);
|
||||
}
|
||||
|
||||
$tpolicy_group_old = db_get_all_rows_sql(
|
||||
'SELECT id_policy FROM tpolicy_groups
|
||||
WHERE id_group = '.$grupo
|
||||
);
|
||||
|
||||
if ($tpolicy_group_old) {
|
||||
foreach ($tpolicy_group_old as $key => $old_group) {
|
||||
db_process_sql_insert(
|
||||
'tpolicy_agents',
|
||||
[
|
||||
'id_policy' => $old_group['id_policy'],
|
||||
'id_agent' => $id_agente,
|
||||
]
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
$info = '{"Name":"'.$nombre_agente.'",
|
||||
"IP":"'.$direccion_agente.'",
|
||||
"Group":"'.$grupo.'",
|
||||
@ -12365,27 +12233,27 @@ function api_set_update_user_profile_info($id_profile, $thrash1, $other, $return
|
||||
}
|
||||
|
||||
$values = [
|
||||
'name' => $other['data'][0] == '' ? $profile['name'] : (string) $other['data'][0],
|
||||
'agent_view' => $other['data'][1] == '' ? $profile['agent_view'] : (bool) $other['data'][1] ? 1 : 0,
|
||||
'agent_edit' => $other['data'][2] == '' ? $profile['agent_edit'] : (bool) $other['data'][2] ? 1 : 0,
|
||||
'agent_disable' => $other['data'][3] == '' ? $profile['agent_disable'] : (bool) $other['data'][3] ? 1 : 0,
|
||||
'alert_edit' => $other['data'][4] == '' ? $profile['alert_edit'] : (bool) $other['data'][4] ? 1 : 0,
|
||||
'alert_management' => $other['data'][5] == '' ? $profile['alert_management'] : (bool) $other['data'][5] ? 1 : 0,
|
||||
'user_management' => $other['data'][6] == '' ? $profile['user_management'] : (bool) $other['data'][6] ? 1 : 0,
|
||||
'db_management' => $other['data'][7] == '' ? $profile['db_management'] : (bool) $other['data'][7] ? 1 : 0,
|
||||
'event_view' => $other['data'][8] == '' ? $profile['event_view'] : (bool) $other['data'][8] ? 1 : 0,
|
||||
'event_edit' => $other['data'][9] == '' ? $profile['event_edit'] : (bool) $other['data'][9] ? 1 : 0,
|
||||
'event_management' => $other['data'][10] == '' ? $profile['event_management'] : (bool) $other['data'][10] ? 1 : 0,
|
||||
'report_view' => $other['data'][11] == '' ? $profile['report_view'] : (bool) $other['data'][11] ? 1 : 0,
|
||||
'report_edit' => $other['data'][12] == '' ? $profile['report_edit'] : (bool) $other['data'][12] ? 1 : 0,
|
||||
'report_management' => $other['data'][13] == '' ? $profile['report_management'] : (bool) $other['data'][13] ? 1 : 0,
|
||||
'map_view' => $other['data'][14] == '' ? $profile['map_view'] : (bool) $other['data'][14] ? 1 : 0,
|
||||
'map_edit' => $other['data'][15] == '' ? $profile['map_edit'] : (bool) $other['data'][15] ? 1 : 0,
|
||||
'map_management' => $other['data'][16] == '' ? $profile['map_management'] : (bool) $other['data'][16] ? 1 : 0,
|
||||
'vconsole_view' => $other['data'][17] == '' ? $profile['vconsole_view'] : (bool) $other['data'][17] ? 1 : 0,
|
||||
'vconsole_edit' => $other['data'][18] == '' ? $profile['vconsole_edit'] : (bool) $other['data'][18] ? 1 : 0,
|
||||
'vconsole_management' => $other['data'][19] == '' ? $profile['vconsole_management'] : (bool) $other['data'][19] ? 1 : 0,
|
||||
'pandora_management' => $other['data'][20] == '' ? $profile['pandora_management'] : (bool) $other['data'][20] ? 1 : 0,
|
||||
'name' => ($other['data'][0] == '') ? $profile['name'] : (string) $other['data'][0],
|
||||
'agent_view' => ($other['data'][1] == '') ? $profile['agent_view'] : ((bool) $other['data'][1] ? 1 : 0),
|
||||
'agent_edit' => ($other['data'][2] == '') ? $profile['agent_edit'] : ((bool) $other['data'][2] ? 1 : 0),
|
||||
'agent_disable' => ($other['data'][3] == '') ? $profile['agent_disable'] : ((bool) $other['data'][3] ? 1 : 0),
|
||||
'alert_edit' => ($other['data'][4] == '') ? $profile['alert_edit'] : ((bool) $other['data'][4] ? 1 : 0),
|
||||
'alert_management' => ($other['data'][5] == '') ? $profile['alert_management'] : ((bool) $other['data'][5] ? 1 : 0),
|
||||
'user_management' => ($other['data'][6] == '') ? $profile['user_management'] : ((bool) $other['data'][6] ? 1 : 0),
|
||||
'db_management' => ($other['data'][7] == '') ? $profile['db_management'] : ((bool) $other['data'][7] ? 1 : 0),
|
||||
'event_view' => ($other['data'][8] == '') ? $profile['event_view'] : ((bool) $other['data'][8] ? 1 : 0),
|
||||
'event_edit' => ($other['data'][9] == '') ? $profile['event_edit'] : ((bool) $other['data'][9] ? 1 : 0),
|
||||
'event_management' => ($other['data'][10] == '') ? $profile['event_management'] : ((bool) $other['data'][10] ? 1 : 0),
|
||||
'report_view' => ($other['data'][11] == '') ? $profile['report_view'] : ((bool) $other['data'][11] ? 1 : 0),
|
||||
'report_edit' => ($other['data'][12] == '') ? $profile['report_edit'] : ((bool) $other['data'][12] ? 1 : 0),
|
||||
'report_management' => ($other['data'][13] == '') ? $profile['report_management'] : ((bool) $other['data'][13] ? 1 : 0),
|
||||
'map_view' => ($other['data'][14] == '') ? $profile['map_view'] : ((bool) $other['data'][14] ? 1 : 0),
|
||||
'map_edit' => ($other['data'][15] == '') ? $profile['map_edit'] : ((bool) $other['data'][15] ? 1 : 0),
|
||||
'map_management' => ($other['data'][16] == '') ? $profile['map_management'] : ((bool) $other['data'][16] ? 1 : 0),
|
||||
'vconsole_view' => ($other['data'][17] == '') ? $profile['vconsole_view'] : ((bool) $other['data'][17] ? 1 : 0),
|
||||
'vconsole_edit' => ($other['data'][18] == '') ? $profile['vconsole_edit'] : ((bool) $other['data'][18] ? 1 : 0),
|
||||
'vconsole_management' => ($other['data'][19] == '') ? $profile['vconsole_management'] : ((bool) $other['data'][19] ? 1 : 0),
|
||||
'pandora_management' => ($other['data'][20] == '') ? $profile['pandora_management'] : ((bool) $other['data'][20] ? 1 : 0),
|
||||
];
|
||||
|
||||
$return = db_process_sql_update('tperfil', $values, ['id_perfil' => $id_profile]);
|
||||
@ -16813,7 +16681,7 @@ function api_get_traps($thrash1, $thrash2, $other, $returnType)
|
||||
$sql .= ' and status = 0';
|
||||
}
|
||||
|
||||
if (sizeof($other['data']) == 0) {
|
||||
if (count($other['data']) == 0) {
|
||||
$sql = 'SELECT * from ttrap';
|
||||
}
|
||||
|
||||
|
@ -3354,8 +3354,8 @@ function get_um_url()
|
||||
*/
|
||||
function config_return_in_bytes($val)
|
||||
{
|
||||
$val = (int) trim($val);
|
||||
$last = strtolower($val[(strlen($val) - 1)]);
|
||||
$val = (int) trim($val);
|
||||
switch ($last) {
|
||||
// The 'G' modifier is available since PHP 5.1.0.
|
||||
case 'g':
|
||||
|
@ -1164,10 +1164,12 @@ function db_get_all_rows_filter($table, $filter=[], $fields=false, $where_join='
|
||||
* @param string $sql
|
||||
* @return mixed The row or false in error.
|
||||
*/
|
||||
function db_get_all_row_by_steps_sql($new=true, &$result, $sql=null)
|
||||
function db_get_all_row_by_steps_sql($new, &$result, $sql=null)
|
||||
{
|
||||
global $config;
|
||||
|
||||
$new = ($new ?? true);
|
||||
|
||||
switch ($config['dbtype']) {
|
||||
case 'mysql':
|
||||
return mysql_db_get_all_row_by_steps_sql($new, $result, $sql);
|
||||
|
@ -3022,7 +3022,8 @@ function events_get_group_events_steps(
|
||||
* @param boolean $id_server Id_server.
|
||||
* @param boolean $filter_event_filter_exclude Filter_event_filter_exclude.
|
||||
*
|
||||
* @return array An array with all the events happened.
|
||||
* @return array|false An array with all the events happened. False if something
|
||||
* failed.
|
||||
*/
|
||||
function events_get_agent(
|
||||
$id_agent,
|
||||
|
@ -32,7 +32,10 @@ function extensions_call_main_function($filename)
|
||||
$extension = &$config['extensions'][$filename];
|
||||
if ($extension['main_function'] != '') {
|
||||
$params = [];
|
||||
call_user_func_array($extension['main_function'], $params);
|
||||
call_user_func_array(
|
||||
$extension['main_function'],
|
||||
array_values(($params ?? []))
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@ -49,7 +52,10 @@ function extensions_call_godmode_function($filename)
|
||||
$extension = &$config['extensions'][$filename];
|
||||
if ($extension['godmode_function'] != '') {
|
||||
$params = [];
|
||||
call_user_func_array($extension['godmode_function'], $params);
|
||||
call_user_func_array(
|
||||
$extension['godmode_function'],
|
||||
array_values(($params ?? []))
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@ -67,7 +73,10 @@ function extensions_call_login_function()
|
||||
continue;
|
||||
}
|
||||
|
||||
call_user_func_array($extension['login_function'], $params);
|
||||
call_user_func_array(
|
||||
$extension['login_function'],
|
||||
array_values(($params ?? []))
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -33,7 +33,7 @@
|
||||
function forecast_projection_graph(
|
||||
$module_id,
|
||||
$period=SECONDS_2MONTHS,
|
||||
$prediction_period,
|
||||
$prediction_period=false,
|
||||
$max_value=false,
|
||||
$min_value=false,
|
||||
$csv=false,
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user