mirror of
https://github.com/pandorafms/pandorafms.git
synced 2025-07-28 00:04:37 +02:00
Merge remote-tracking branch 'origin/develop' into ent-7653-Nuevo-informe-de-estados-de-modulos-de-agentes
This commit is contained in:
commit
28047f2348
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,6 +1,25 @@
|
||||
variables:
|
||||
GIT_STRATEGY: clone
|
||||
REBRANDING: pandora
|
||||
|
||||
test:
|
||||
script:
|
||||
- docker run --rm -h pandorafms -t -v "$CI_PROJECT_DIR:/tmp/pandorafms" pandorafms/pandorafms-base /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.
|
||||
|
@ -11,7 +11,7 @@ PANDORA_SERVER_CONF=/etc/pandora/pandora_server.conf
|
||||
PANDORA_AGENT_CONF=/etc/pandora/pandora_agent.conf
|
||||
|
||||
|
||||
S_VERSION='2022012401'
|
||||
S_VERSION='2022020801'
|
||||
LOGFILE="/tmp/pandora-deploy-community-$(date +%F).log"
|
||||
|
||||
# define default variables
|
||||
@ -26,6 +26,7 @@ LOGFILE="/tmp/pandora-deploy-community-$(date +%F).log"
|
||||
[ "$SKIP_DATABASE_INSTALL" ] || SKIP_DATABASE_INSTALL=0
|
||||
[ "$SKIP_KERNEL_OPTIMIZATIONS" ] || SKIP_KERNEL_OPTIMIZATIONS=0
|
||||
[ "$POOL_SIZE" ] || POOL_SIZE=$(grep -i total /proc/meminfo | head -1 | awk '{printf "%.2f \n", $(NF-1)*0.4/1024}' | sed "s/\\..*$/M/g")
|
||||
[ "$PANDORA_BETA" ] || PANDORA_BETA=0
|
||||
|
||||
# Ansi color code variables
|
||||
red="\e[0;91m"
|
||||
@ -110,6 +111,10 @@ fi
|
||||
|
||||
execute_cmd "grep -i centos /etc/redhat-release" "Checking Centos" 'Error This is not a Centos Base system'
|
||||
|
||||
#Detect OS
|
||||
os_name=$(grep ^PRETTY_NAME= /etc/os-release | cut -d '=' -f2 | tr -d '"')
|
||||
execute_cmd "echo $os_name" "OS detected: ${os_name}"
|
||||
|
||||
echo -en "${cyan}Check Centos Version...${reset}"
|
||||
[ $(sed -nr 's/VERSION_ID+=\s*"([0-9])"$/\1/p' /etc/os-release) -eq '7' ]
|
||||
check_cmd_status 'Error OS version, Centos 7 is expected'
|
||||
@ -125,6 +130,9 @@ check_root_permissions
|
||||
# Pre installed pandora
|
||||
[ "$SKIP_PRECHECK" == 1 ] || check_pre_pandora
|
||||
|
||||
#advicing BETA PROGRAM
|
||||
[ "$PANDORA_BETA" -ne '0' ] && echo -e "${red}BETA version enable using nightly PandoraFMS packages${reset}"
|
||||
|
||||
# Connectivity
|
||||
check_repo_connection
|
||||
|
||||
@ -317,6 +325,16 @@ setenforce 0
|
||||
sed -i -e "s/^SELINUX=.*/SELINUX=disabled/g" /etc/selinux/config
|
||||
systemctl disable firewalld --now &>> $LOGFILE
|
||||
|
||||
# Adding standar cnf for initial setup.
|
||||
cat > /etc/my.cnf << EO_CONFIG_TMP
|
||||
[mysqld]
|
||||
datadir=/var/lib/mysql
|
||||
socket=/var/lib/mysql/mysql.sock
|
||||
symbolic-links=0
|
||||
log-error=/var/log/mysqld.log
|
||||
pid-file=/var/run/mysqld/mysqld.pid
|
||||
EO_CONFIG_TMP
|
||||
|
||||
#Configuring Database
|
||||
if [ "$SKIP_DATABASE_INSTALL" -eq '0' ] ; then
|
||||
execute_cmd "systemctl start mysqld" "Starting database engine"
|
||||
@ -382,10 +400,21 @@ EO_CONFIG_F
|
||||
|
||||
execute_cmd "systemctl restart mysqld" "Configuring database engine"
|
||||
|
||||
#Define packages
|
||||
if [ "$PANDORA_BETA" -eq '0' ] ; then
|
||||
[ "$PANDORA_SERVER_PACKAGE" ] || PANDORA_SERVER_PACKAGE="http://firefly.artica.es/pandorafms/latest/RHEL_CentOS/pandorafms_server-7.0NG.noarch.rpm"
|
||||
[ "$PANDORA_CONSOLE_PACKAGE" ] || PANDORA_CONSOLE_PACKAGE="http://firefly.artica.es/pandorafms/latest/RHEL_CentOS/pandorafms_console-7.0NG.noarch.rpm"
|
||||
[ "$PANDORA_AGENT_PACKAGE" ] || PANDORA_AGENT_PACKAGE="http://firefly.artica.es/pandorafms/latest/RHEL_CentOS/pandorafms_agent_unix-7.0NG.noarch.rpm"
|
||||
elif [ "$PANDORA_BETA" -ne '0' ] ; then
|
||||
[ "$PANDORA_SERVER_PACKAGE" ] || PANDORA_SERVER_PACKAGE="http://firefly.artica.es/pandora_enterprise_nightlies/pandorafms_server-latest.x86_64.rpm"
|
||||
[ "$PANDORA_CONSOLE_PACKAGE" ] || PANDORA_CONSOLE_PACKAGE="https://pandorafms.com/community/community-console-rpm-beta/"
|
||||
[ "$PANDORA_AGENT_PACKAGE" ] || PANDORA_AGENT_PACKAGE="http://firefly.artica.es/pandorafms/latest/RHEL_CentOS/pandorafms_agent_unix-7.0NG.noarch.rpm"
|
||||
fi
|
||||
|
||||
# Downloading Pandora Packages
|
||||
execute_cmd "wget http://firefly.artica.es/pandorafms/latest/RHEL_CentOS/pandorafms_server-7.0NG.noarch.rpm" "Downloading Pandora FMS Server community"
|
||||
execute_cmd "wget http://firefly.artica.es/pandorafms/latest/RHEL_CentOS/pandorafms_console-7.0NG.noarch.rpm" "Downloading Pandora FMS Console community"
|
||||
execute_cmd "wget http://firefly.artica.es/pandorafms/latest/RHEL_CentOS/pandorafms_agent_unix-7.0NG.noarch.rpm" "Downloading Pandora FMS Agent community"
|
||||
execute_cmd "curl -LSs --output pandorafms_server-7.0NG.noarch.rpm ${PANDORA_SERVER_PACKAGE}" "Downloading Pandora FMS Server community"
|
||||
execute_cmd "curl -LSs --output pandorafms_console-7.0NG.noarch.rpm ${PANDORA_CONSOLE_PACKAGE}" "Downloading Pandora FMS Console community"
|
||||
execute_cmd "curl -LSs --output pandorafms_agent_unix-7.0NG.noarch.rpm ${PANDORA_AGENT_PACKAGE}" "Downloading Pandora FMS Agent community"
|
||||
|
||||
# Install Pandora
|
||||
execute_cmd "yum install -y $HOME/pandora_deploy_tmp/pandorafms*.rpm" "installing PandoraFMS packages"
|
||||
@ -633,4 +662,4 @@ execute_cmd "rm -rf $HOME/pandora_deploy_tmp" "Removing temporary files"
|
||||
GREEN='\033[01;32m'
|
||||
NONE='\033[0m'
|
||||
printf " -> Go to Public ${green}http://"$ipplublic"/pandora_console${reset} to manage this server"
|
||||
ip addr | grep -w "inet" | grep -v "127.0.0.1" | grep -v -e "172.1[0-9].0.1" | awk '{print $2}' | awk -v g=$GREEN -v n=$NONE -F '/' '{printf "\n -> Go to Local "g"http://"$1"/pandora_console"n" to manage this server \n -> Use this credentials to login in the console "g"[ User: admin / Password: pandora ]"n" \n"}'
|
||||
ip addr | grep -w "inet" | grep -v "127.0.0.1" | grep -v -e "172.1[0-9].0.1" | awk '{print $2}' | awk -v g=$GREEN -v n=$NONE -F '/' '{printf "\n -> Go to Local "g"http://"$1"/pandora_console"n" to manage this server \n -> Use these credentials to log in Pandora Console "g"[ User: admin / Password: pandora ]"n" \n"}'
|
@ -14,7 +14,7 @@ PANDORA_SERVER_CONF=/etc/pandora/pandora_server.conf
|
||||
PANDORA_AGENT_CONF=/etc/pandora/pandora_agent.conf
|
||||
|
||||
|
||||
S_VERSION='2022012401'
|
||||
S_VERSION='2022020801'
|
||||
LOGFILE="/tmp/pandora-deploy-community-$(date +%F).log"
|
||||
|
||||
# define default variables
|
||||
@ -29,6 +29,7 @@ LOGFILE="/tmp/pandora-deploy-community-$(date +%F).log"
|
||||
[ "$SKIP_DATABASE_INSTALL" ] || SKIP_DATABASE_INSTALL=0
|
||||
[ "$SKIP_KERNEL_OPTIMIZATIONS" ] || SKIP_KERNEL_OPTIMIZATIONS=0
|
||||
[ "$POOL_SIZE" ] || POOL_SIZE=$(grep -i total /proc/meminfo | head -1 | awk '{printf "%.2f \n", $(NF-1)*0.4/1024}' | sed "s/\\..*$/M/g")
|
||||
[ "$PANDORA_BETA" ] || PANDORA_BETA=0
|
||||
|
||||
# Ansi color code variables
|
||||
red="\e[0;91m"
|
||||
@ -106,14 +107,18 @@ echo "Starting PandoraFMS Community deployment EL8 ver. $S_VERSION"
|
||||
|
||||
# Centos Version
|
||||
if [ ! "$(grep -Ei 'centos|rocky|Almalinux|Red Hat Enterprise' /etc/redhat-release)" ]; then
|
||||
printf "\n ${red}Error this is not a Centos/Rocky/Almalinux Base system, this installer is compatible with Centos/Rocky systems only${reset}\n"
|
||||
printf "\n ${red}Error this is not a Centos/Rocky/Almalinux Base system, this installer is compatible with RHEL/Almalinux/Centos/Rockylinux systems only${reset}\n"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
echo -en "${cyan}Check Centos Version...${reset}"
|
||||
[ $(sed -nr 's/VERSION_ID+=\s*"([0-9]).*"$/\1/p' /etc/os-release) -eq '8' ]
|
||||
check_cmd_status 'Error OS version, Centos/Rocky 8+ is expected'
|
||||
check_cmd_status 'Error OS version, RHEL/Almalinux/Centos/Rockylinux 8+ is expected'
|
||||
|
||||
#Detect OS
|
||||
os_name=$(grep ^PRETTY_NAME= /etc/os-release | cut -d '=' -f2 | tr -d '"')
|
||||
execute_cmd "echo $os_name" "OS detected: ${os_name}"
|
||||
|
||||
# initialice logfile
|
||||
execute_cmd "echo 'Starting community deployment' > $LOGFILE" "All installer activity is logged on $LOGFILE"
|
||||
@ -126,6 +131,9 @@ check_root_permissions
|
||||
# Pre installed pandora
|
||||
[ "$SKIP_PRECHECK" == 1 ] || check_pre_pandora
|
||||
|
||||
#advicing BETA PROGRAM
|
||||
[ "$PANDORA_BETA" -ne '0' ] && echo -e "${red}BETA version enable using nightly PandoraFMS packages${reset}"
|
||||
|
||||
# Connectivity
|
||||
check_repo_connection
|
||||
|
||||
@ -139,6 +147,7 @@ execute_cmd "[ $(grep MemTotal /proc/meminfo | awk '{print $2}') -ge 1700000 ]"
|
||||
execute_cmd "[ $(df -BM / | tail -1 | awk '{print $4}' | tr -d M) -gt 10000 ]" 'Checking Disk (required: 10 GB free min)'
|
||||
|
||||
# Setting timezone
|
||||
rm -rf /etc/localtime &>> "$LOGFILE"
|
||||
execute_cmd "timedatectl set-timezone $TZ" "Setting Timezone $TZ"
|
||||
|
||||
# Execute tools check
|
||||
@ -360,6 +369,16 @@ setenforce 0 &>> "$LOGFILE"
|
||||
sed -i -e "s/^SELINUX=.*/SELINUX=disabled/g" /etc/selinux/config &>> "$LOGFILE"
|
||||
systemctl disable firewalld --now &>> "$LOGFILE"
|
||||
|
||||
# Adding standar cnf for initial setup.
|
||||
cat > /etc/my.cnf << EO_CONFIG_TMP
|
||||
[mysqld]
|
||||
datadir=/var/lib/mysql
|
||||
socket=/var/lib/mysql/mysql.sock
|
||||
symbolic-links=0
|
||||
log-error=/var/log/mysqld.log
|
||||
pid-file=/var/run/mysqld/mysqld.pid
|
||||
EO_CONFIG_TMP
|
||||
|
||||
#Configuring Database
|
||||
if [ "$SKIP_DATABASE_INSTALL" -eq '0' ] ; then
|
||||
execute_cmd "systemctl start mysqld" "Starting database engine"
|
||||
@ -425,10 +444,22 @@ EO_CONFIG_F
|
||||
|
||||
execute_cmd "systemctl restart mysqld" "Configuring database engine"
|
||||
|
||||
|
||||
#Define packages
|
||||
if [ "$PANDORA_BETA" -eq '0' ] ; then
|
||||
[ "$PANDORA_SERVER_PACKAGE" ] || PANDORA_SERVER_PACKAGE="http://firefly.artica.es/pandorafms/latest/RHEL_CentOS/pandorafms_server-7.0NG.noarch.rpm"
|
||||
[ "$PANDORA_CONSOLE_PACKAGE" ] || PANDORA_CONSOLE_PACKAGE="http://firefly.artica.es/pandorafms/latest/RHEL_CentOS/pandorafms_console-7.0NG.noarch.rpm"
|
||||
[ "$PANDORA_AGENT_PACKAGE" ] || PANDORA_AGENT_PACKAGE="http://firefly.artica.es/pandorafms/latest/RHEL_CentOS/pandorafms_agent_unix-7.0NG.noarch.rpm"
|
||||
elif [ "$PANDORA_BETA" -ne '0' ] ; then
|
||||
[ "$PANDORA_SERVER_PACKAGE" ] || PANDORA_SERVER_PACKAGE="http://firefly.artica.es/pandora_enterprise_nightlies/pandorafms_server-latest.x86_64.rpm"
|
||||
[ "$PANDORA_CONSOLE_PACKAGE" ] || PANDORA_CONSOLE_PACKAGE="https://pandorafms.com/community/community-console-rpm-beta/"
|
||||
[ "$PANDORA_AGENT_PACKAGE" ] || PANDORA_AGENT_PACKAGE="http://firefly.artica.es/pandorafms/latest/RHEL_CentOS/pandorafms_agent_unix-7.0NG.noarch.rpm"
|
||||
fi
|
||||
|
||||
# Downloading Pandora Packages
|
||||
execute_cmd "wget http://firefly.artica.es/pandorafms/latest/RHEL_CentOS/pandorafms_server-7.0NG.noarch.rpm" "Downloading Pandora FMS Server community"
|
||||
execute_cmd "wget http://firefly.artica.es/pandorafms/latest/RHEL_CentOS/pandorafms_console-7.0NG.noarch.rpm" "Downloading Pandora FMS Console community"
|
||||
execute_cmd "wget http://firefly.artica.es/pandorafms/latest/RHEL_CentOS/pandorafms_agent_unix-7.0NG.noarch.rpm" "Downloading Pandora FMS Agent community"
|
||||
execute_cmd "curl -LSs --output pandorafms_server-7.0NG.noarch.rpm ${PANDORA_SERVER_PACKAGE}" "Downloading Pandora FMS Server community"
|
||||
execute_cmd "curl -LSs --output pandorafms_console-7.0NG.noarch.rpm ${PANDORA_CONSOLE_PACKAGE}" "Downloading Pandora FMS Console community"
|
||||
execute_cmd "curl -LSs --output pandorafms_agent_unix-7.0NG.noarch.rpm ${PANDORA_AGENT_PACKAGE}" "Downloading Pandora FMS Agent community"
|
||||
|
||||
# Install Pandora
|
||||
execute_cmd "dnf install -y $HOME/pandora_deploy_tmp/pandorafms*.rpm" "Installing Pandora FMS packages"
|
||||
@ -680,4 +711,4 @@ execute_cmd "rm -rf $HOME/pandora_deploy_tmp" "Removing temporary files"
|
||||
GREEN='\033[01;32m'
|
||||
NONE='\033[0m'
|
||||
printf " -> Go to Public ${green}http://"$ipplublic"/pandora_console${reset} to manage this server"
|
||||
ip addr | grep -w "inet" | grep -v "127.0.0.1" | grep -v -e "172.1[0-9].0.1" | awk '{print $2}' | awk -v g=$GREEN -v n=$NONE -F '/' '{printf "\n -> Go to Local "g"http://"$1"/pandora_console"n" to manage this server \n -> Use this credentials to login in the console "g"[ User: admin / Password: pandora ]"n" \n"}'
|
||||
ip addr | grep -w "inet" | grep -v "127.0.0.1" | grep -v -e "172.1[0-9].0.1" | awk '{print $2}' | awk -v g=$GREEN -v n=$NONE -F '/' '{printf "\n -> Go to Local "g"http://"$1"/pandora_console"n" to manage this server \n -> Use these credentials to log in Pandora Console "g"[ User: admin / Password: pandora ]"n" \n"}'
|
@ -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,9 +22,15 @@ 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 && \
|
||||
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
|
||||
@ -33,9 +40,9 @@ RUN echo '<meta http-equiv="refresh" content="0;url=/pandora_console">' > /var/w
|
||||
|
||||
# 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 @@
|
||||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.759, AIX version
|
||||
# Version 7.0NG.760, AIX version
|
||||
# Licensed under GPL license v2,
|
||||
# Copyright (c) 2003-2021 Artica Soluciones Tecnologicas
|
||||
# http://www.pandorafms.com
|
||||
|
@ -1,5 +1,5 @@
|
||||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.759, FreeBSD Version
|
||||
# Version 7.0NG.760, FreeBSD Version
|
||||
# Licensed under GPL license v2,
|
||||
# Copyright (c) 2003-2021 Artica Soluciones Tecnologicas
|
||||
# http://www.pandorafms.com
|
||||
|
@ -1,5 +1,5 @@
|
||||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.759, HP-UX Version
|
||||
# Version 7.0NG.760, HP-UX Version
|
||||
# Licensed under GPL license v2,
|
||||
# Copyright (c) 2003-2021 Artica Soluciones Tecnologicas
|
||||
# http://www.pandorafms.com
|
||||
|
@ -1,5 +1,5 @@
|
||||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.759, GNU/Linux
|
||||
# Version 7.0NG.760, GNU/Linux
|
||||
# Licensed under GPL license v2,
|
||||
# Copyright (c) 2003-2021 Artica Soluciones Tecnologicas
|
||||
# http://www.pandorafms.com
|
||||
|
@ -1,5 +1,5 @@
|
||||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.759, GNU/Linux
|
||||
# Version 7.0NG.760, GNU/Linux
|
||||
# Licensed under GPL license v2,
|
||||
# Copyright (c) 2003-2021 Artica Soluciones Tecnologicas
|
||||
# http://www.pandorafms.com
|
||||
|
@ -1,5 +1,5 @@
|
||||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.759, Solaris Version
|
||||
# Version 7.0NG.760, Solaris Version
|
||||
# Licensed under GPL license v2,
|
||||
# Copyright (c) 2003-2021 Artica Soluciones Tecnologicas
|
||||
# http://www.pandorafms.com
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Base config file for Pandora FMS Windows Agent
|
||||
# (c) 2006-2021 Artica Soluciones Tecnologicas
|
||||
# Version 7.0NG.759
|
||||
# Version 7.0NG.760
|
||||
# This program is Free Software, you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public Licence as published by the Free Software
|
||||
# Foundation; either version 2 of the Licence or any later version
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Fichero de configuracion base de agentes de Pandora
|
||||
# Base config file for Pandora agents
|
||||
# Version 7.0NG.759, AIX version
|
||||
# Version 7.0NG.760, AIX version
|
||||
|
||||
# General Parameters
|
||||
# ==================
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Fichero de configuracion base de agentes de Pandora
|
||||
# Base config file for Pandora agents
|
||||
# Version 7.0NG.759
|
||||
# Version 7.0NG.760
|
||||
# FreeBSD/IPSO version
|
||||
# Licenced under GPL licence, 2003-2007 Sancho Lerena
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Fichero de configuracion base de agentes de Pandora
|
||||
# Base config file for Pandora agents
|
||||
# Version 7.0NG.759, HPUX Version
|
||||
# Version 7.0NG.760, HPUX Version
|
||||
|
||||
# General Parameters
|
||||
# ==================
|
||||
|
@ -1,5 +1,5 @@
|
||||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.759
|
||||
# Version 7.0NG.760
|
||||
# Licensed under GPL license v2,
|
||||
# (c) 2003-2021 Artica Soluciones Tecnologicas
|
||||
# please visit http://pandora.sourceforge.net
|
||||
|
@ -1,5 +1,5 @@
|
||||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.759
|
||||
# Version 7.0NG.760
|
||||
# Licensed under GPL license v2,
|
||||
# (c) 2003-2021 Artica Soluciones Tecnologicas
|
||||
# please visit http://pandora.sourceforge.net
|
||||
|
@ -1,5 +1,5 @@
|
||||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.759
|
||||
# Version 7.0NG.760
|
||||
# Licensed under GPL license v2,
|
||||
# please visit http://pandora.sourceforge.net
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Fichero de configuracion base de agentes de Pandora
|
||||
# Base config file for Pandora agents
|
||||
# Version 7.0NG.759, Solaris version
|
||||
# Version 7.0NG.760, Solaris version
|
||||
|
||||
# General Parameters
|
||||
# ==================
|
||||
|
@ -1,5 +1,5 @@
|
||||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.759, AIX version
|
||||
# Version 7.0NG.760, AIX version
|
||||
# Licensed under GPL license v2,
|
||||
# Copyright (c) 2003-2021 Artica Soluciones Tecnologicas
|
||||
# http://www.pandorafms.com
|
||||
|
@ -1,5 +1,5 @@
|
||||
package: pandorafms-agent-unix
|
||||
Version: 7.0NG.759-220211
|
||||
Version: 7.0NG.760-220309
|
||||
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.759-220211"
|
||||
pandora_version="7.0NG.760-220309"
|
||||
|
||||
echo "Test if you has the tools for to make the packages."
|
||||
whereis dpkg-deb | cut -d":" -f2 | grep dpkg-deb > /dev/null
|
||||
|
@ -31,7 +31,7 @@ fi
|
||||
if [ "$#" -ge 2 ]; then
|
||||
VERSION="$2"
|
||||
else
|
||||
VERSION="7.0NG.759"
|
||||
VERSION="7.0NG.760"
|
||||
fi
|
||||
|
||||
# Path for the generated DMG file
|
||||
|
@ -19,11 +19,11 @@
|
||||
<choice id="com.pandorafms.pandorafms_src" visible="false">
|
||||
<pkg-ref id="com.pandorafms.pandorafms_src"/>
|
||||
</choice>
|
||||
<pkg-ref id="com.pandorafms.pandorafms_src" version="7.0NG.759" onConclusion="none">pandorafms_src.pdk</pkg-ref>
|
||||
<pkg-ref id="com.pandorafms.pandorafms_src" version="7.0NG.760" onConclusion="none">pandorafms_src.pdk</pkg-ref>
|
||||
<choice id="com.pandorafms.pandorafms_uninstall" visible="true" customLocation="/Applications">
|
||||
<pkg-ref id="com.pandorafms.pandorafms_uninstall"/>
|
||||
</choice>
|
||||
<pkg-ref id="com.pandorafms.pandorafms_uninstall" version="7.0NG.759" onConclusion="none">pandorafms_uninstall.pdk</pkg-ref>
|
||||
<pkg-ref id="com.pandorafms.pandorafms_uninstall" version="7.0NG.760" onConclusion="none">pandorafms_uninstall.pdk</pkg-ref>
|
||||
<!-- <installation-check script="check()" />
|
||||
<script>
|
||||
<![CDATA[
|
||||
|
@ -5,9 +5,9 @@
|
||||
<key>CFBundleIconFile</key> <string>pandorafms.icns</string>
|
||||
<key>CFBundleIdentifier</key> <string>com.pandorafms.pandorafms_uninstall</string>
|
||||
|
||||
<key>CFBundleVersion</key> <string>7.0NG.759</string>
|
||||
<key>CFBundleGetInfoString</key> <string>7.0NG.759 Pandora FMS Agent uninstaller for MacOS by Artica ST on Aug 2020</string>
|
||||
<key>CFBundleShortVersionString</key> <string>7.0NG.759</string>
|
||||
<key>CFBundleVersion</key> <string>7.0NG.760</string>
|
||||
<key>CFBundleGetInfoString</key> <string>7.0NG.760 Pandora FMS Agent uninstaller for MacOS by Artica ST on Aug 2020</string>
|
||||
<key>CFBundleShortVersionString</key> <string>7.0NG.760</string>
|
||||
|
||||
<key>NSPrincipalClass</key><string>NSApplication</string>
|
||||
<key>NSMainNibFile</key><string>MainMenu</string>
|
||||
|
@ -1,5 +1,5 @@
|
||||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.759, GNU/Linux
|
||||
# Version 7.0NG.760, GNU/Linux
|
||||
# Licensed under GPL license v2,
|
||||
# Copyright (c) 2003-2021 Artica Soluciones Tecnologicas
|
||||
# http://www.pandorafms.com
|
||||
|
@ -1,5 +1,5 @@
|
||||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.759, FreeBSD Version
|
||||
# Version 7.0NG.760, FreeBSD Version
|
||||
# Licensed under GPL license v2,
|
||||
# Copyright (c) 2003-2021 Artica Soluciones Tecnologicas
|
||||
# http://www.pandorafms.com
|
||||
|
@ -1,5 +1,5 @@
|
||||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.759, HP-UX Version
|
||||
# Version 7.0NG.760, HP-UX Version
|
||||
# Licensed under GPL license v2,
|
||||
# Copyright (c) 2003-2021 Artica Soluciones Tecnologicas
|
||||
# http://www.pandorafms.com
|
||||
|
@ -1,5 +1,5 @@
|
||||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.759, GNU/Linux
|
||||
# Version 7.0NG.760, GNU/Linux
|
||||
# Licensed under GPL license v2,
|
||||
# Copyright (c) 2003-2021 Artica Soluciones Tecnologicas
|
||||
# http://www.pandorafms.com
|
||||
|
@ -1,5 +1,5 @@
|
||||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.759, GNU/Linux
|
||||
# Version 7.0NG.760, GNU/Linux
|
||||
# Licensed under GPL license v2,
|
||||
# Copyright (c) 2003-2021 Artica Soluciones Tecnologicas
|
||||
# http://www.pandorafms.com
|
||||
|
@ -1,5 +1,5 @@
|
||||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.759, NetBSD Version
|
||||
# Version 7.0NG.760, NetBSD Version
|
||||
# Licensed under GPL license v2,
|
||||
# Copyright (c) 2003-2021 Artica Soluciones Tecnologicas
|
||||
# http://www.pandorafms.com
|
||||
|
@ -1,5 +1,5 @@
|
||||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.759, Solaris Version
|
||||
# Version 7.0NG.760, Solaris Version
|
||||
# Licensed under GPL license v2,
|
||||
# Copyright (c) 2003-2021 Artica Soluciones Tecnologicas
|
||||
# http://www.pandorafms.com
|
||||
|
@ -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;
|
||||
@ -1014,8 +1014,8 @@ my $Sem = undef;
|
||||
# Semaphore used to control the number of threads
|
||||
my $ThreadSem = undef;
|
||||
|
||||
use constant AGENT_VERSION => '7.0NG.759';
|
||||
use constant AGENT_BUILD => '220211';
|
||||
use constant AGENT_VERSION => '7.0NG.760';
|
||||
use constant AGENT_BUILD => '220309';
|
||||
|
||||
# Agent log default file size maximum and instances
|
||||
use constant DEFAULT_MAX_LOG_SIZE => 600000;
|
||||
|
@ -2,8 +2,8 @@
|
||||
#Pandora FMS Linux Agent
|
||||
#
|
||||
%define name pandorafms_agent_unix
|
||||
%define version 7.0NG.759
|
||||
%define release 220211
|
||||
%define version 7.0NG.760
|
||||
%define release 220309
|
||||
|
||||
Summary: Pandora FMS Linux agent, PERL version
|
||||
Name: %{name}
|
||||
|
@ -2,8 +2,8 @@
|
||||
#Pandora FMS Linux Agent
|
||||
#
|
||||
%define name pandorafms_agent_unix
|
||||
%define version 7.0NG.759
|
||||
%define release 220211
|
||||
%define version 7.0NG.760
|
||||
%define release 220309
|
||||
|
||||
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
|
||||
|
@ -9,8 +9,8 @@
|
||||
# Please see http://www.pandorafms.org. This code is licensed under GPL 2.0 license.
|
||||
# **********************************************************************
|
||||
|
||||
PI_VERSION="7.0NG.759"
|
||||
PI_BUILD="220211"
|
||||
PI_VERSION="7.0NG.760"
|
||||
PI_BUILD="220309"
|
||||
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
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Base config file for Pandora FMS Windows Agent
|
||||
# (c) 2006-2021 Artica Soluciones Tecnologicas
|
||||
# Version 7.0NG.759
|
||||
# Version 7.0NG.760
|
||||
# This program is Free Software, you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public Licence as published by the Free Software
|
||||
# Foundation; either version 2 of the Licence or any later version
|
||||
|
@ -3,7 +3,7 @@ AllowLanguageSelection
|
||||
{Yes}
|
||||
|
||||
AppName
|
||||
{Pandora FMS Windows Agent v7.0NG.759}
|
||||
{Pandora FMS Windows Agent v7.0NG.760}
|
||||
|
||||
ApplicationID
|
||||
{17E3D2CF-CA02-406B-8A80-9D31C17BD08F}
|
||||
@ -186,7 +186,7 @@ UpgradeApplicationID
|
||||
{}
|
||||
|
||||
Version
|
||||
{220211}
|
||||
{220309}
|
||||
|
||||
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.759 Build 220211")
|
||||
#define PANDORA_VERSION ("7.0NG.760 Build 220309")
|
||||
|
||||
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.759(Build 220211))"
|
||||
VALUE "ProductVersion", "(7.0NG.760(Build 220309))"
|
||||
VALUE "FileVersion", "1.0.0.0"
|
||||
END
|
||||
END
|
||||
|
@ -1,5 +1,5 @@
|
||||
package: pandorafms-console
|
||||
Version: 7.0NG.759-220211
|
||||
Version: 7.0NG.760-220309
|
||||
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.759-220211"
|
||||
pandora_version="7.0NG.760-220309"
|
||||
|
||||
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%;';
|
||||
|
@ -1120,7 +1120,7 @@ function resource_registration_extension_main()
|
||||
}
|
||||
|
||||
echo '<div class=notify>';
|
||||
echo __('This extension makes registering resource templates easier.').' '.__('Here you can upload a resource template in .ptr format.').' '.__('Please refer to our documentation for more information on how to obtain and use %s resources.', get_product_name()).' '.'<br> <br>'.__('You can get more resurces in our <a href="http://pandorafms.com/Library/Library/">Public Resource Library</a>');
|
||||
echo __('This extension makes registering resource templates easier.').' '.__('Here you can upload a resource template in .ptr format.').' '.__('Please refer to our documentation for more information on how to obtain and use %s resources.', get_product_name()).' '.'<br> <br>'.__('You can get more resurces in our <a href="https://pandorafms.com/Library/Library/">Public Resource Library</a>');
|
||||
echo '</div>';
|
||||
|
||||
echo '<br /><br />';
|
||||
|
@ -1,17 +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`;
|
||||
ALTER TABLE `tautoconfig` ADD COLUMN `disabled` TINYINT DEFAULT 0;
|
||||
|
||||
SOURCE procedures/alertEvents.sql;
|
||||
CALL `migrateEventRanges`();
|
||||
DROP PROCEDURE `migrateEventRanges`;
|
||||
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;
|
||||
|
||||
|
||||
-- ---------------------------------------------------------------------
|
||||
@ -2187,6 +2202,7 @@ CREATE TABLE IF NOT EXISTS `tautoconfig` (
|
||||
`name` varchar(100) NOT NULL,
|
||||
`order` int(11) NOT NULL DEFAULT '0',
|
||||
`description` text,
|
||||
`disabled` TINYINT,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
@ -4122,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
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -144,7 +144,7 @@ if ($prediction_available) {
|
||||
$modules['predictionserver'] = __('Create a new prediction server module');
|
||||
}
|
||||
|
||||
if (is_metaconsole() === true || $web_available === '1') {
|
||||
if (is_metaconsole() === true || $web_available >= '1') {
|
||||
$modules['webserver'] = __('Create a new web Server module');
|
||||
}
|
||||
|
||||
@ -238,7 +238,7 @@ echo '</table>';
|
||||
if (!$config['disable_help']) {
|
||||
echo '<div class="disable_help">';
|
||||
echo '<strong>';
|
||||
echo "<a class='color-black-grey invert_filter' target='_blank' href='http://pandorafms.com/Library/Library/'>".__('Get more modules on Monitoring Library').'</a>';
|
||||
echo "<a class='color-black-grey invert_filter' target='_blank' href='https://pandorafms.com/Library/Library/'>".__('Get more modules on Monitoring Library').'</a>';
|
||||
echo '</strong>';
|
||||
echo '</div>';
|
||||
}
|
||||
|
@ -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';
|
||||
}
|
||||
} else if ($downtimes === false) {
|
||||
// No downtimes cause the user performed a search.
|
||||
else if (!$downtimes) {
|
||||
// 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>';
|
||||
}
|
||||
} else {
|
||||
// Has downtimes.
|
||||
else {
|
||||
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>';
|
||||
|
||||
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>';
|
||||
|
@ -468,21 +468,12 @@ foreach ($listConnectionTemp as $connectionTemp) {
|
||||
}
|
||||
|
||||
$table->data[1][0] = __('Add Map connection').$iconError;
|
||||
$table->data[1][1] = "<table class='no-class' border='0' id='map_connection'>
|
||||
<tr>
|
||||
<td >
|
||||
".html_print_select($listConnection, 'map_connection_list', '', '', '', '0', true)."
|
||||
</td>
|
||||
<td >
|
||||
<a href='javascript: addConnectionMap();'>".html_print_image(
|
||||
$table->data[1][1] = ".html_print_select($listConnection, 'map_connection_list', '', '', '', '0', true)."
|
||||
< / td > < td > < a href = 'javascript: addConnectionMap();' > ".html_print_image(
|
||||
'images/add.png',
|
||||
true,
|
||||
['class' => 'invert_filter']
|
||||
)."</a>
|
||||
<input type='hidden' name='map_connection_list' value='' id='map_connection_list' />
|
||||
<input type='hidden' name='layer_list' value='' id='layer_list' />
|
||||
</td>
|
||||
</tr> ".gis_add_conection_maps_in_form($map_connection_list).'
|
||||
)." < / a > < input type = 'hidden' name = 'map_connection_list' value = '' id = 'map_connection_list' / > < input type = 'hidden' name = 'layer_list' value = '' id = 'layer_list' / > < / td > < / tr > (".gis_add_conection_maps_in_form($map_connection_list).'
|
||||
</table>';
|
||||
$own_info = get_user_info($config['id_user']);
|
||||
|
||||
@ -558,9 +549,9 @@ $table->data = [];
|
||||
$table->data[0][0] = '<h4>'.__('List of layers').'</h4>';
|
||||
$table->data[0][1] = '<div class="right">'.html_print_button(__('New layer'), 'new_layer', false, 'newLayer();', 'class="sub add "', true).'</div>';
|
||||
|
||||
$table->data[1][0] = '<table class="databox" border="0" cellpadding="4" cellspacing="4" id="list_layers"></table>';
|
||||
$table->data[1][1] = '<div id="form_layer" class="invisible">
|
||||
<table id="form_layer_table" class="" border="0" cellpadding="4" cellspacing="4">
|
||||
$table->data[1][0] = '<table class="databox' border='0' cellpadding='4' cellspacing='4' id='list_layers"></table>';
|
||||
$table->data[1][1] = '<div id="form_layer' class='invisible'>
|
||||
<table id='form_layer_table' class="" border='0' cellpadding='4' cellspacing='4">
|
||||
<tr>
|
||||
<td>'.__('Layer name').':</td>
|
||||
<td>'.html_print_input_text('layer_name_form', '', '', 20, 40, true).'</td>
|
||||
@ -603,7 +594,7 @@ $table->data[1][1] .= '</td>
|
||||
<tr>
|
||||
<td colspan="4">
|
||||
<h4>'.__('List of Agents to be shown in the layer').'</h4>
|
||||
<table class="databox" border="0" cellpadding="4" cellspacing="4" id="list_agents">
|
||||
<table class="databox' border='0' cellpadding='4' cellspacing='4' id='list_agents">
|
||||
</table>
|
||||
</td>
|
||||
</tr>';
|
||||
@ -637,18 +628,18 @@ $table->data[1][1] .= '<tr><td colspan="4"><hr /></td></tr>
|
||||
<td colspan="3">'.$agent_for_group_input.'</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="4" align="right">'.$add_group_btn.'</td>
|
||||
<td colspan="4' align='right">'.$add_group_btn.'</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="4">
|
||||
<h4>'.__('List of groups to be shown in the layer').'</h4>
|
||||
<table class="databox" border="0" cellpadding="4" cellspacing="4" id="list_groups">
|
||||
<table class="databox' border='0' cellpadding='4' cellspacing='4' id='list_groups">
|
||||
</table>
|
||||
</td>
|
||||
</tr>';
|
||||
|
||||
$table->data[1][1] .= '<tr>
|
||||
<td align="right" colspan="4">'.html_print_button(__('Save Layer'), 'save_layer', false, 'javascript:saveNewLayer();', 'class="sub wand"', true).'
|
||||
<td align="right' colspan='4">'.html_print_button(__('Save Layer'), 'save_layer', false, 'javascript:saveNewLayer();', 'class="sub wand"', true).'
|
||||
'.html_print_input_hidden('current_edit_layer_id', '', true).'
|
||||
</td>
|
||||
</tr>
|
||||
@ -658,7 +649,7 @@ $table->data[1][1] .= '<tr>
|
||||
html_print_table($table);
|
||||
|
||||
|
||||
echo '<div class="action-buttons" style="width: '.$table->width.'">';
|
||||
echo '<div class="action - buttons' style=')width: '.$table->width.'">';
|
||||
switch ($action) {
|
||||
case 'save_new':
|
||||
case 'edit_map':
|
||||
@ -683,12 +674,12 @@ echo '</form>';
|
||||
// -------------------------INI CHUNKS---------------------------------------
|
||||
?>
|
||||
|
||||
<table style="visibility: hidden;">
|
||||
<tbody id="chunk_map_connection">
|
||||
<tr class="row_0">
|
||||
<table style="visibility: hidden;('>
|
||||
<tbody id='chunk_map_connection'>
|
||||
<tr class='row_0">
|
||||
<td><?php html_print_input_text('map_connection_name', $map_name, '', 20, 40, false, true); ?></td>
|
||||
<td><?php html_print_radio_button_extended('map_connection_default', '', '', true, false, 'changeDefaultConection(this.value)', ''); ?></td>
|
||||
<td><a id="delete_row" href="none">
|
||||
<td><a id="delete_row' href='none">
|
||||
<?php
|
||||
html_print_image(
|
||||
'images/cross.png',
|
||||
@ -711,36 +702,43 @@ ui_require_jquery_file('cluetip');
|
||||
ui_require_jquery_file('pandora.controls');
|
||||
ui_require_jquery_file('json');
|
||||
?>
|
||||
<script type="text/javascript">
|
||||
<script type="text / javascript'>
|
||||
|
||||
function active_button_add_agent() {
|
||||
$("#button-add_agent").prop("disabled", false);
|
||||
$(')
|
||||
// button-add_agent").prop("disabled", false);
|
||||
}
|
||||
|
||||
function addAgentClick (event) {
|
||||
var $layerFormAgentIdInput = $("#hidden-agent_id");
|
||||
var $layerFormAgentAliasInput = $("#text-agent_alias");
|
||||
|
||||
function addAgentClick(event)
|
||||
{
|
||||
var $layerFormAgentIdInput = $('#hidden-agent_id');
|
||||
var $layerFormAgentAliasInput = $('#text-agent_alias');
|
||||
|
||||
var agentId = Number.parseInt($layerFormAgentIdInput.val());
|
||||
var agentAlias = $layerFormAgentAliasInput.val();
|
||||
var layerId = $("input#hidden-current_edit_layer_id").val();
|
||||
var layerId = $('input#hidden-current_edit_layer_id').val();
|
||||
|
||||
if (Number.isNaN(agentId) || agentId === 0 || agentAlias.length === 0) return;
|
||||
if (Number.isNaN(agentId) || agentId === 0 || agentAlias.length === 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
addAgentRow(layerId, agentId, agentAlias);
|
||||
|
||||
// Clear agent inputs
|
||||
$layerFormAgentIdInput.val("");
|
||||
$layerFormAgentAliasInput.val("");
|
||||
$layerFormAgentIdInput.val('');
|
||||
$layerFormAgentAliasInput.val('');
|
||||
|
||||
$("#button-add_agent").prop("disabled", true);
|
||||
$('#button-add_agent').prop('disabled', true);
|
||||
}
|
||||
|
||||
function toggleAddGroupBtn () {
|
||||
var groupId = Number.parseInt($("select#layer_group_id").val());
|
||||
|
||||
function toggleAddGroupBtn()
|
||||
{
|
||||
var groupId = Number.parseInt($('select#layer_group_id').val());
|
||||
var existGroupId = $("table#list_groups tr.groups_list_item[data-group-id='" + groupId + "']").length > 0;
|
||||
var agentId = Number.parseInt($("input#hidden-agent_id_for_data").val());
|
||||
var agentAlias = $("input#text-agent_alias_for_data").val();
|
||||
var agentId = Number.parseInt($('input#hidden-agent_id_for_data').val());
|
||||
var agentAlias = $('input#text-agent_alias_for_data').val();
|
||||
|
||||
var enabled = (
|
||||
!existGroupId
|
||||
@ -751,17 +749,19 @@ function toggleAddGroupBtn () {
|
||||
&& agentAlias.length > 0
|
||||
);
|
||||
|
||||
$("#button-add_group").prop("disabled", !enabled);
|
||||
$('#button-add_group').prop('disabled', !enabled);
|
||||
}
|
||||
|
||||
function addGroupClick (event) {
|
||||
var $layerFormGroupIdInput = $("select#layer_group_id");
|
||||
var $layerFormAgentIdInput = $("input#hidden-agent_id_for_data");
|
||||
var $layerFormAgentAliasInput = $("input#text-agent_alias_for_data");
|
||||
|
||||
var layerId = $("input#hidden-current_edit_layer_id").val();
|
||||
function addGroupClick(event)
|
||||
{
|
||||
var $layerFormGroupIdInput = $('select#layer_group_id');
|
||||
var $layerFormAgentIdInput = $('input#hidden-agent_id_for_data');
|
||||
var $layerFormAgentAliasInput = $('input#text-agent_alias_for_data');
|
||||
|
||||
var layerId = $('input#hidden-current_edit_layer_id').val();
|
||||
var groupId = Number.parseInt($layerFormGroupIdInput.val());
|
||||
var groupName = $layerFormGroupIdInput.find(":selected").text();
|
||||
var groupName = $layerFormGroupIdInput.find(':selected').text();
|
||||
var agentId = Number.parseInt($layerFormAgentIdInput.val());
|
||||
var agentAlias = $layerFormAgentAliasInput.val();
|
||||
|
||||
@ -774,46 +774,61 @@ function addGroupClick (event) {
|
||||
&& agentAlias.length > 0
|
||||
);
|
||||
|
||||
if (!valid) return;
|
||||
if (!valid) {
|
||||
return;
|
||||
}
|
||||
|
||||
addGroupRow(layerId, groupId, groupName, agentId, agentAlias);
|
||||
|
||||
// Clear inputs
|
||||
// $layerFormGroupIdInput.val(0);
|
||||
$layerFormAgentIdInput.val("");
|
||||
$layerFormAgentAliasInput.val("");
|
||||
$layerFormAgentIdInput.val('');
|
||||
$layerFormAgentAliasInput.val('');
|
||||
|
||||
$("#button-add_group").prop("disabled", true);
|
||||
$('#button-add_group').prop('disabled', true);
|
||||
}
|
||||
|
||||
function moveLayerRowUpOnClick (event) {
|
||||
|
||||
function moveLayerRowUpOnClick(event)
|
||||
{
|
||||
var $row = $(event.currentTarget).parent().parent();
|
||||
$row.insertBefore($row.prev());
|
||||
}
|
||||
|
||||
function moveLayerRowDownOnClick (event) {
|
||||
|
||||
function moveLayerRowDownOnClick(event)
|
||||
{
|
||||
var $row = $(event.currentTarget).parent().parent();
|
||||
$row.insertAfter($row.next());
|
||||
}
|
||||
|
||||
function removeLayerRowOnClick (event) {
|
||||
|
||||
function removeLayerRowOnClick(event)
|
||||
{
|
||||
var $layerRow = $(event.currentTarget).parent().parent();
|
||||
var layerRowId = $layerRow.find("input.layer_id").val();
|
||||
var layerEditorId = $("input#hidden-current_edit_layer_id").val();
|
||||
if (layerRowId == layerEditorId) hideLayerEditor();
|
||||
var layerRowId = $layerRow.find('input.layer_id').val();
|
||||
var layerEditorId = $('input#hidden-current_edit_layer_id').val();
|
||||
if (layerRowId == layerEditorId) {
|
||||
hideLayerEditor();
|
||||
}
|
||||
|
||||
// Remove row
|
||||
$(event.currentTarget).parent().parent().remove();
|
||||
}
|
||||
|
||||
function hideLayerEditor () {
|
||||
|
||||
function hideLayerEditor()
|
||||
{
|
||||
// Clean editor
|
||||
cleanLayerEditor();
|
||||
// Hide editor
|
||||
$("div#form_layer").hide();
|
||||
$('div#form_layer').hide();
|
||||
}
|
||||
|
||||
function showLayerEditor (layerId) {
|
||||
var $layerSaveBtn = $("input#button-save_layer");
|
||||
|
||||
function showLayerEditor(layerId)
|
||||
{
|
||||
var $layerSaveBtn = $('input#button-save_layer');
|
||||
|
||||
// Clean editor
|
||||
cleanLayerEditor();
|
||||
@ -837,33 +852,39 @@ function showLayerEditor (layerId) {
|
||||
}
|
||||
|
||||
// Show editor (if hidden)
|
||||
$("div#form_layer").show();
|
||||
$('div#form_layer').show();
|
||||
}
|
||||
|
||||
function getLayerData (layerId) {
|
||||
var $layerRow = $("tr#layer_row_" + layerId);
|
||||
var layerName = $layerRow.find("input.layer_name").val();
|
||||
var layerVisible = $layerRow.find("input.layer_visible").val() == 1;
|
||||
var layerAgentsFromGroup = $layerRow.find("input.layer_agents_from_group").val();
|
||||
var layerAgents = $layerRow.find("input.layer_agent_alias").map(function () {
|
||||
|
||||
function getLayerData(layerId)
|
||||
{
|
||||
var $layerRow = $('tr#layer_row_' + layerId);
|
||||
var layerName = $layerRow.find('input.layer_name').val();
|
||||
var layerVisible = $layerRow.find('input.layer_visible').val() == 1;
|
||||
var layerAgentsFromGroup = $layerRow.find('input.layer_agents_from_group').val();
|
||||
var layerAgents = $layerRow.find('input.layer_agent_alias').map(
|
||||
function () {
|
||||
return {
|
||||
"id": $(this).data("agent-id"),
|
||||
"alias": $(this).val()
|
||||
'id': $(this).data('agent-id'),
|
||||
'alias': $(this).val()
|
||||
};
|
||||
}).get();
|
||||
var layerGroups = $layerRow.find("input.layer_group_id").map(function () {
|
||||
}
|
||||
).get();
|
||||
var layerGroups = $layerRow.find('input.layer_group_id').map(
|
||||
function () {
|
||||
var groupId = $(this).val();
|
||||
var groupName = $(this).siblings("input.layer_group_name[data-group-id='" + groupId + "']").val();
|
||||
var agentId = $(this).siblings("input.layer_agent_id_for_data[data-group-id='" + groupId + "']").val();
|
||||
var agentAlias = $(this).siblings("input.layer_agent_alias_for_data[data-group-id='" + groupId + "']").val();
|
||||
var groupName = $(this).siblings(("input.layer_group_name[data-group-id='" + groupId + "']")).val();
|
||||
var agentId = $(this).siblings(("input.layer_agent_id_for_data[data-group-id='" + groupId + "']")).val();
|
||||
var agentAlias = $(this).siblings(("input.layer_agent_alias_for_data[data-group-id='" + groupId + "']")).val();
|
||||
|
||||
return {
|
||||
"id": groupId,
|
||||
"name": groupName,
|
||||
"agentId": agentId,
|
||||
"agentAlias": agentAlias
|
||||
'id': groupId,
|
||||
'name': groupName,
|
||||
'agentId': agentId,
|
||||
'agentAlias': agentAlias
|
||||
};
|
||||
}).get();
|
||||
}
|
||||
).get();
|
||||
|
||||
return {
|
||||
id: layerId,
|
||||
@ -875,142 +896,185 @@ function getLayerData (layerId) {
|
||||
}
|
||||
}
|
||||
|
||||
function setLayerEditorData (data) {
|
||||
if (data == null) data = {};
|
||||
|
||||
function setLayerEditorData(data)
|
||||
{
|
||||
if (data == null) {
|
||||
data = {};
|
||||
}
|
||||
|
||||
// Set defaults
|
||||
data = {
|
||||
id: data.id || 0,
|
||||
name: data.name || "",
|
||||
name: data.name || '',
|
||||
visible: data.visible != null ? !!data.visible : true,
|
||||
agentsFromGroup: data.agentsFromGroup || -1,
|
||||
agents: data.agents || [],
|
||||
groups: data.groups || []
|
||||
}
|
||||
|
||||
var $layerFormIdInput = $("input#hidden-current_edit_layer_id");
|
||||
var $layerFormNameInput = $("input#text-layer_name_form");
|
||||
var $layerFormVisibleCheckbox = $("input#checkbox-layer_visible_form");
|
||||
var $layerFormAgentsFromGroupSelect = $("#layer_group_form");
|
||||
var $layerFormAgentInput = $("input#text-agent_alias");
|
||||
var $layerFormAgentButton = $("input#button-add_agent");
|
||||
var $layerFormAgentsListItems = $("tr.agents_list_item");
|
||||
var $layerFormGroupsListItems = $("tr.groups_list_item");
|
||||
var $layerFormIdInput = $('input#hidden-current_edit_layer_id');
|
||||
var $layerFormNameInput = $('input#text-layer_name_form');
|
||||
var $layerFormVisibleCheckbox = $('input#checkbox-layer_visible_form');
|
||||
var $layerFormAgentsFromGroupSelect = $('#layer_group_form');
|
||||
var $layerFormAgentInput = $('input#text-agent_alias');
|
||||
var $layerFormAgentButton = $('input#button-add_agent');
|
||||
var $layerFormAgentsListItems = $('tr.agents_list_item');
|
||||
var $layerFormGroupsListItems = $('tr.groups_list_item');
|
||||
|
||||
$layerFormIdInput.val(data.id);
|
||||
$layerFormNameInput.val(data.name);
|
||||
$layerFormVisibleCheckbox.prop("checked", data.visible);
|
||||
$(`#layer_group_form option[value=${data.agentsFromGroup}]`).attr('selected', 'selected');
|
||||
$layerFormVisibleCheckbox.prop('checked', data.visible);
|
||||
$(`#layer_group_form option[value=${data.agentsFromGroup
|
||||
}]`).attr('selected', 'selected');
|
||||
|
||||
|
||||
$(`#layer_group_form`).trigger('change');
|
||||
$layerFormAgentInput.val("");
|
||||
$layerFormAgentButton.prop("disabled", true);
|
||||
$layerFormAgentInput.val('');
|
||||
$layerFormAgentButton.prop('disabled', true);
|
||||
$layerFormAgentsListItems.remove();
|
||||
$layerFormGroupsListItems.remove();
|
||||
|
||||
var $tableAgents = $("table#list_agents");
|
||||
data.agents.forEach(function (agent) {
|
||||
var $tableAgents = $('table#list_agents');
|
||||
data.agents.foreach (function (agent) {
|
||||
addAgentRow(data.id, agent.id, agent.alias);
|
||||
});
|
||||
|
||||
var $tableGroups = $("table#list_groups");
|
||||
data.groups.forEach(function (group) {
|
||||
addGroupRow(data.id, group.id, group.name, group.agentId, group.agentAlias);
|
||||
});
|
||||
}) {
|
||||
}
|
||||
|
||||
function newLayer () {
|
||||
var $tableGroups = $('table#list_groups');
|
||||
data.groups.foreach (function (group) {
|
||||
addGroupRow(data.id, group.id, group.name, group.agentId, group.agentAlias);
|
||||
}) {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
function newLayer()
|
||||
{
|
||||
showLayerEditor(null);
|
||||
}
|
||||
|
||||
function saveNewLayer () {
|
||||
var $layerFormNameInput = $("input#text-layer_name_form");
|
||||
var $layerFormVisibleCheckbox = $("input#checkbox-layer_visible_form");
|
||||
var $layerFormAgentsFromGroupSelect = $("select#layer_group_form");
|
||||
var $layerFormAgentsListItems = $("tr.agents_list_item > td > span.agent_alias");
|
||||
var $layerFormGroupsListItems = $("tr.groups_list_item");
|
||||
var newLayerId = "new_" + ($("tr.layer_row").length + 1);
|
||||
|
||||
addLayerRow(newLayerId, {
|
||||
function saveNewLayer()
|
||||
{
|
||||
var $layerFormNameInput = $('input#text-layer_name_form');
|
||||
var $layerFormVisibleCheckbox = $('input#checkbox-layer_visible_form');
|
||||
var $layerFormAgentsFromGroupSelect = $('select#layer_group_form');
|
||||
var $layerFormAgentsListItems = $('tr.agents_list_item > td > span.agent_alias');
|
||||
var $layerFormGroupsListItems = $('tr.groups_list_item');
|
||||
var newLayerId = ('new_' + ($('tr.layer_row').length + 1));
|
||||
|
||||
addLayerRow(
|
||||
newLayerId,
|
||||
{
|
||||
id: newLayerId,
|
||||
name: $layerFormNameInput.val(),
|
||||
visible: $layerFormVisibleCheckbox.prop("checked"),
|
||||
visible: $layerFormVisibleCheckbox.prop('checked'),
|
||||
agentsFromGroup: $layerFormAgentsFromGroupSelect.val(),
|
||||
agents: $layerFormAgentsListItems.map(function () {
|
||||
agents: $layerFormAgentsListItems.map(
|
||||
function () {
|
||||
return {
|
||||
"id": $(this).data("agent-id"),
|
||||
"alias": $(this).text()
|
||||
'id': $(this).data('agent-id'),
|
||||
'alias': $(this).text()
|
||||
};
|
||||
}).get(),
|
||||
groups: $layerFormGroupsListItems.map(function () {
|
||||
}
|
||||
).get(),
|
||||
groups: $layerFormGroupsListItems.map(
|
||||
function () {
|
||||
return {
|
||||
"id": $(this).data("group-id"),
|
||||
"name": $(this).data("group-name"),
|
||||
"agentId": $(this).data("agent-id"),
|
||||
"agentAlias": $(this).data("agent-alias")
|
||||
'id': $(this).data('group-id'),
|
||||
'name': $(this).data('group-name'),
|
||||
'agentId': $(this).data('agent-id'),
|
||||
'agentAlias': $(this).data('agent-alias')
|
||||
};
|
||||
}).get()
|
||||
});
|
||||
}
|
||||
).get()
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
function cleanLayerEditor () {
|
||||
|
||||
function cleanLayerEditor()
|
||||
{
|
||||
// Clear editor events
|
||||
unbindLayerEditorEvents();
|
||||
// Add default data to the editor
|
||||
setLayerEditorData();
|
||||
}
|
||||
|
||||
function bindLayerEditorEvents (layerId) {
|
||||
var $layerFormNameInput = $("input#text-layer_name_form");
|
||||
var $layerFormVisibleCheckbox = $("input#checkbox-layer_visible_form");
|
||||
var $layerFormAgentsFromGroupSelect = $("select#layer_group_form");
|
||||
|
||||
var $layerRow = $("tr#layer_row_" + layerId);
|
||||
function bindLayerEditorEvents(layerId)
|
||||
{
|
||||
var $layerFormNameInput = $('input#text-layer_name_form');
|
||||
var $layerFormVisibleCheckbox = $('input#checkbox-layer_visible_form');
|
||||
var $layerFormAgentsFromGroupSelect = $('select#layer_group_form');
|
||||
|
||||
if ($layerRow.length === 0) return;
|
||||
var $layerRow = $('tr#layer_row_' + layerId);
|
||||
|
||||
$layerFormNameInput.bind("change", function (event) {
|
||||
var name = event.currentTarget.value;
|
||||
$layerRow.find("span.layer_name").html(name);
|
||||
$layerRow.find("input.layer_name").val(name);
|
||||
});
|
||||
$layerFormVisibleCheckbox.bind("click", function (event) {
|
||||
var visible = $(event.currentTarget).prop("checked");
|
||||
$layerRow.find("input.layer_visible").val(visible ? 1 : 0);
|
||||
});
|
||||
$layerFormAgentsFromGroupSelect.bind("change", function (event) {
|
||||
var group = event.currentTarget.value;
|
||||
$layerRow.find("input.layer_agents_from_group").val(group);
|
||||
});
|
||||
if ($layerRow.length === 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
function unbindLayerEditorEvents () {
|
||||
var $layerFormNameInput = $("input#text-layer_name_form");
|
||||
var $layerFormVisibleCheckbox = $("input#checkbox-layer_visible_form");
|
||||
var $layerFormAgentsFromGroupSelect = $("select#layer_group_form");
|
||||
$layerFormNameInput.bind(
|
||||
'change',
|
||||
function (event) {
|
||||
var name = event.currentTarget.value;
|
||||
$layerRow.find('span.layer_name').html(name);
|
||||
$layerRow.find('input.layer_name').val(name);
|
||||
}
|
||||
);
|
||||
$layerFormVisibleCheckbox.bind(
|
||||
'click',
|
||||
function (event) {
|
||||
var visible = $(event.currentTarget).prop('checked');
|
||||
$layerRow.find('input.layer_visible').val(visible ? 1 : 0);
|
||||
}
|
||||
);
|
||||
$layerFormAgentsFromGroupSelect.bind(
|
||||
'change',
|
||||
function (event) {
|
||||
var group = event.currentTarget.value;
|
||||
$layerRow.find('input.layer_agents_from_group').val(group);
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
$layerFormNameInput.unbind("change");
|
||||
$layerFormVisibleCheckbox.unbind("click");
|
||||
|
||||
function unbindLayerEditorEvents()
|
||||
{
|
||||
var $layerFormNameInput = $('input#text-layer_name_form');
|
||||
var $layerFormVisibleCheckbox = $('input#checkbox-layer_visible_form');
|
||||
var $layerFormAgentsFromGroupSelect = $('select#layer_group_form');
|
||||
|
||||
$layerFormNameInput.unbind('change');
|
||||
$layerFormVisibleCheckbox.unbind('click');
|
||||
$layerFormAgentsFromGroupSelect.val('-1');
|
||||
}
|
||||
|
||||
function getAgentRow (layerId, agentId, agentAlias) {
|
||||
var $row = $("<tr class=\"agents_list_item\" />");
|
||||
var $nameCol = $("<td />");
|
||||
var $deleteCol = $("<td />");
|
||||
|
||||
var $agentAlias = $("<span class=\"agent_alias\" data-agent-id=\"" + agentId + "\">" + agentAlias + "</span>");
|
||||
function getAgentRow(layerId, agentId, agentAlias)
|
||||
{
|
||||
var $row = $('<tr class="agents_list_item" />');
|
||||
var $nameCol = $('<td />');
|
||||
var $deleteCol = $('<td />');
|
||||
|
||||
var $agentAlias = $('<span class="agent_alias" data-agent-id="' + agentId + '">' + agentAlias + '</span>');
|
||||
var $removeBtn = $('<a class="delete_row" href="javascript:" <?php echo html_print_image('images / cross.png', false, ['class' => 'invert_filter']); ?> </a>');
|
||||
|
||||
$removeBtn.click(function (event) {
|
||||
var $layerRow = $("tr#layer_row_" + layerId);
|
||||
$removeBtn.click(
|
||||
function (event) {
|
||||
var $layerRow = $('tr#layer_row_' + layerId);
|
||||
|
||||
if ($layerRow.length > 0) {
|
||||
$layerRow.find("input.layer_agent_id[data-agent-id='" + agentId + "']").remove();
|
||||
$layerRow.find("input.layer_agent_alias[data-agent-id='" + agentId + "']").remove();
|
||||
$layerRow.find(("input.layer_agent_id[data-agent-id='" + agentId + "']")).remove();
|
||||
$layerRow.find(("input.layer_agent_alias[data-agent-id='" + agentId + "']")).remove();
|
||||
}
|
||||
|
||||
var $agentListItemRow = $(event.currentTarget).parent().parent();
|
||||
$agentListItemRow.remove();
|
||||
});
|
||||
}
|
||||
);
|
||||
|
||||
$nameCol.append($agentAlias);
|
||||
$deleteCol.append($removeBtn);
|
||||
@ -1020,55 +1084,64 @@ function getAgentRow (layerId, agentId, agentAlias) {
|
||||
return $row;
|
||||
}
|
||||
|
||||
function addAgentRow (layerId, agentId, agentAlias) {
|
||||
if (agentId == null || agentId == 0 || agentAlias.length === 0) return;
|
||||
|
||||
var $layerRow = $("tr#layer_row_" + layerId);
|
||||
if ($layerRow && $layerRow.find("input.layer_agent_id[value='" + agentId + "']").length === 0) {
|
||||
$layerRow
|
||||
.find("td:first-child")
|
||||
.append(getLayerAgentIdInput(layerId, agentId))
|
||||
.append(getLayerAgentAliasInput(layerId, agentId, agentAlias));
|
||||
function addAgentRow(layerId, agentId, agentAlias)
|
||||
{
|
||||
if (agentId == null || agentId == 0 || agentAlias.length === 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
$("table#list_agents").append(getAgentRow(layerId, agentId, agentAlias));
|
||||
var $layerRow = $('tr#layer_row_' + layerId);
|
||||
if ($layerRow && $layerRow.find(("input.layer_agent_id[value='" + agentId + "']")).length === 0) {
|
||||
$layerRow.find('td:first-child').append(getLayerAgentIdInput(layerId, agentId)).append(getLayerAgentAliasInput(layerId, agentId, agentAlias));
|
||||
}
|
||||
|
||||
function getLayerAgentIdInput (layerId, agentId) {
|
||||
return $("<input class=\"layer_agent_id\" type=\"hidden\" data-agent-id=\"" + agentId + "\" name=\"layers[" + layerId + "][agents][" + agentId + "][id]\" value=\"" + agentId + "\">");
|
||||
$('table#list_agents').append(getAgentRow(layerId, agentId, agentAlias));
|
||||
}
|
||||
|
||||
function getLayerAgentAliasInput (layerId, agentId, agentAlias) {
|
||||
return $("<input class=\"layer_agent_alias\" type=\"hidden\" data-agent-id=\"" + agentId + "\" name=\"layers[" + layerId + "][agents][" + agentId + "][alias]\" value=\"" + agentAlias + "\">");
|
||||
|
||||
function getLayerAgentIdInput(layerId, agentId)
|
||||
{
|
||||
return $('<input class="layer_agent_id" type="hidden" data-agent-id="' + agentId + '" name="layers[' + layerId + '][agents][' + agentId + '][id]" value="' + agentId + '">');
|
||||
}
|
||||
|
||||
function getGroupRow (layerId, groupId, groupName, agentId, agentAlias) {
|
||||
var $row = $("<tr class=\"groups_list_item\" data-group-id=\"" + groupId + "\" data-group-name=\"" + groupName + "\" data-agent-id=\"" + agentId + "\" data-agent-alias=\"" + agentAlias + "\" />");
|
||||
var $nameCol = $("<td />");
|
||||
var $deleteCol = $("<td />");
|
||||
|
||||
var $groupName = $("<span class=\"group_desc\">"
|
||||
function getLayerAgentAliasInput(layerId, agentId, agentAlias)
|
||||
{
|
||||
return $('<input class="layer_agent_alias" type="hidden" data-agent-id="' + agentId + '" name="layers[' + layerId + '][agents][' + agentId + '][alias]" value="' + agentAlias + '">');
|
||||
}
|
||||
|
||||
|
||||
function getGroupRow(layerId, groupId, groupName, agentId, agentAlias)
|
||||
{
|
||||
var $row = $('<tr class="groups_list_item" data-group-id="' + groupId + '" data-group-name="' + groupName + '" data-agent-id="' + agentId + '" data-agent-alias="' + agentAlias + '" />');
|
||||
var $nameCol = $('<td />');
|
||||
var $deleteCol = $('<td />');
|
||||
|
||||
var $groupName = $('<span class="group_desc">'
|
||||
+ groupName
|
||||
+ " ("
|
||||
+ ' ('
|
||||
+ "<?php echo __('Using data from'); ?> "
|
||||
+ "<i>" + agentAlias + "</i>"
|
||||
+ ")"
|
||||
+ "</span>");
|
||||
+ '<i>' + agentAlias + '</i>'
|
||||
+ ')'
|
||||
+ '</span>');
|
||||
var $removeBtn = $('<a class="delete_row" href="javascript:;"><?php echo html_print_image('images / cross.png', true, ['class' => 'invert_filter']); ?></a>');
|
||||
|
||||
$removeBtn.click(function (event) {
|
||||
var $layerRow = $("tr#layer_row_" + layerId);
|
||||
$removeBtn.click(
|
||||
function (event) {
|
||||
var $layerRow = $('tr#layer_row_' + layerId);
|
||||
|
||||
if ($layerRow.length > 0) {
|
||||
$layerRow.find("input.layer_group_id[data-group-id='" + groupId + "']").remove();
|
||||
$layerRow.find("input.layer_group_name[data-group-id='" + groupId + "']").remove();
|
||||
$layerRow.find("input.layer_agent_id_for_data[data-group-id='" + groupId + "']").remove();
|
||||
$layerRow.find("input.layer_agent_alias_for_data[data-group-id='" + groupId + "']").remove();
|
||||
$layerRow.find(("input.layer_group_id[data-group-id='" + groupId + "']")).remove();
|
||||
$layerRow.find(("input.layer_group_name[data-group-id='" + groupId + "']")).remove();
|
||||
$layerRow.find(("input.layer_agent_id_for_data[data-group-id='" + groupId + "']")).remove();
|
||||
$layerRow.find(("input.layer_agent_alias_for_data[data-group-id='" + groupId + "']")).remove();
|
||||
}
|
||||
|
||||
var $groupListItemRow = $(event.currentTarget).parent().parent();
|
||||
$groupListItemRow.remove();
|
||||
});
|
||||
}
|
||||
);
|
||||
|
||||
$nameCol.append($groupName);
|
||||
$deleteCol.append($removeBtn);
|
||||
@ -1078,132 +1151,144 @@ function getGroupRow (layerId, groupId, groupName, agentId, agentAlias) {
|
||||
return $row;
|
||||
}
|
||||
|
||||
function addGroupRow (layerId, groupId, groupName, agentId, agentAlias) {
|
||||
if (
|
||||
groupId == null ||
|
||||
groupId == 0 ||
|
||||
groupName.length === 0 ||
|
||||
agentId == null ||
|
||||
agentId == 0 ||
|
||||
agentAlias.length === 0
|
||||
) return;
|
||||
|
||||
var $layerRow = $("tr#layer_row_" + layerId);
|
||||
if ($layerRow && $layerRow.find("input.layer_group_id[value='" + groupId + "']").length === 0) {
|
||||
$layerRow
|
||||
.find("td:first-child")
|
||||
.append(getLayerGroupIdInput(layerId, groupId))
|
||||
.append(getLayerGroupNameInput(layerId, groupId, groupName))
|
||||
.append(getLayerAgentIdForDataInput(layerId, groupId, agentId))
|
||||
.append(getLayerAgentAliasForDataInput(layerId, groupId, agentAlias));
|
||||
function addGroupRow(layerId, groupId, groupName, agentId, agentAlias)
|
||||
{
|
||||
if (groupId == null
|
||||
|| groupId == 0
|
||||
|| groupName.length === 0
|
||||
|| agentId == null
|
||||
|| agentId == 0
|
||||
|| agentAlias.length === 0
|
||||
) {
|
||||
return;
|
||||
}
|
||||
|
||||
$("table#list_groups").append(getGroupRow(layerId, groupId, groupName, agentId, agentAlias));
|
||||
var $layerRow = $('tr#layer_row_' + layerId);
|
||||
if ($layerRow && $layerRow.find(("input.layer_group_id[value='" + groupId + "']")).length === 0) {
|
||||
$layerRow.find('td:first-child').append(getLayerGroupIdInput(layerId, groupId)).append(getLayerGroupNameInput(layerId, groupId, groupName)).append(getLayerAgentIdForDataInput(layerId, groupId, agentId)).append(getLayerAgentAliasForDataInput(layerId, groupId, agentAlias));
|
||||
}
|
||||
|
||||
function getLayerGroupIdInput (layerId, groupId) {
|
||||
return $("<input class=\"layer_group_id\" type=\"hidden\" data-group-id=\"" + groupId + "\" name=\"layers[" + layerId + "][groups][" + groupId + "][id]\" value=\"" + groupId + "\">");
|
||||
$('table#list_groups').append(getGroupRow(layerId, groupId, groupName, agentId, agentAlias));
|
||||
}
|
||||
|
||||
function getLayerGroupNameInput (layerId, groupId, groupName) {
|
||||
return $("<input class=\"layer_group_name\" type=\"hidden\" data-group-id=\"" + groupId + "\" name=\"layers[" + layerId + "][groups][" + groupId + "][name]\" value=\"" + groupName + "\">");
|
||||
|
||||
function getLayerGroupIdInput(layerId, groupId)
|
||||
{
|
||||
return $('<input class="layer_group_id" type="hidden" data-group-id="' + groupId + '" name="layers[' + layerId + '][groups][' + groupId + '][id]" value="' + groupId + '">');
|
||||
}
|
||||
|
||||
function getLayerAgentIdForDataInput (layerId, groupId, agentId) {
|
||||
return $("<input class=\"layer_agent_id_for_data\" type=\"hidden\" data-group-id=\"" + groupId + "\" name=\"layers[" + layerId + "][groups][" + groupId + "][agent_id]\" value=\"" + agentId + "\">");
|
||||
|
||||
function getLayerGroupNameInput(layerId, groupId, groupName)
|
||||
{
|
||||
return $('<input class="layer_group_name" type="hidden" data-group-id="' + groupId + '" name="layers[' + layerId + '][groups][' + groupId + '][name]" value="' + groupName + '">');
|
||||
}
|
||||
|
||||
function getLayerAgentAliasForDataInput (layerId, groupId, agentAlias) {
|
||||
return $("<input class=\"layer_agent_alias_for_data\" type=\"hidden\" data-group-id=\"" + groupId + "\" name=\"layers[" + layerId + "][groups][" + groupId + "][agent_alias]\" value=\"" + agentAlias + "\">");
|
||||
|
||||
function getLayerAgentIdForDataInput(layerId, groupId, agentId)
|
||||
{
|
||||
return $('<input class="layer_agent_id_for_data" type="hidden" data-group-id="' + groupId + '" name="layers[' + layerId + '][groups][' + groupId + '][agent_id]" value="' + agentId + '">');
|
||||
}
|
||||
|
||||
function getLayerRow (layerId, layerData) {
|
||||
var $row = $("<tr id=\"layer_row_" + layerId + "\" class=\"layer_row\" />");
|
||||
var $nameCol = $("<td />");
|
||||
var $sortCol = $("<td />");
|
||||
var $editCol = $("<td />");
|
||||
var $deleteCol = $("<td />");
|
||||
|
||||
var $layerIdInput = $("<input class=\"layer_id\" type=\"hidden\" name=\"layer_ids[]\" value=\"" + layerId + "\">");
|
||||
var $layerNameInput = $("<input class=\"layer_name\" type=\"hidden\" name=\"layers[" + layerId + "][name]\" value=\"" + layerData.name + "\">");
|
||||
var $layerVisibleInput = $("<input class=\"layer_visible\" type=\"hidden\" name=\"layers[" + layerId + "][visible]\" value=\"" + (layerData.visible ? 1 : 0) + "\">");
|
||||
var $layerAgentsFromGroupInput = $("<input class=\"layer_agents_from_group\" type=\"hidden\" name=\"layers[" + layerId + "][agents_from_group]\" value=\"" + layerData.agentsFromGroup + "\">");
|
||||
function getLayerAgentAliasForDataInput(layerId, groupId, agentAlias)
|
||||
{
|
||||
return $('<input class="layer_agent_alias_for_data" type="hidden" data-group-id="' + groupId + '" name="layers[' + layerId + '][groups][' + groupId + '][agent_alias]" value="' + agentAlias + '">');
|
||||
}
|
||||
|
||||
var $layerName = $("<span class=\"layer_name\">" + layerData.name + "</span>");
|
||||
var $sortUpBtn = $("<a class=\"up_arrow\" href=\"javascript:;\" />");
|
||||
var $sortDownBtn = $("<a class=\"down_arrow\" href=\"javascript:;\" />");
|
||||
|
||||
function getLayerRow(layerId, layerData)
|
||||
{
|
||||
var $row = $('<tr id="layer_row_' + layerId + '" class="layer_row" />');
|
||||
var $nameCol = $('<td />');
|
||||
var $sortCol = $('<td />');
|
||||
var $editCol = $('<td />');
|
||||
var $deleteCol = $('<td />');
|
||||
|
||||
var $layerIdInput = $('<input class="layer_id" type="hidden" name="layer_ids[]" value="' + layerId + '">');
|
||||
var $layerNameInput = $('<input class="layer_name" type="hidden" name="layers[' + layerId + '][name]" value="' + layerData.name + '">');
|
||||
var $layerVisibleInput = $('<input class="layer_visible" type="hidden" name="layers[' + layerId + '][visible]" value="' + (layerData.visible ? 1 : 0) + '">');
|
||||
var $layerAgentsFromGroupInput = $('<input class="layer_agents_from_group" type="hidden" name="layers[' + layerId + '][agents_from_group]" value="' + layerData.agentsFromGroup + '">');
|
||||
|
||||
var $layerName = $('<span class="layer_name">' + layerData.name + '</span>');
|
||||
var $sortUpBtn = $('<a class="up_arrow" href="javascript:;" />');
|
||||
var $sortDownBtn = $('<a class="down_arrow" href="javascript:;" />');
|
||||
var $editBtn = $('<a class="edit_layer" href="javascript:;"><?php echo html_print_image('images / config.png', true, ['class' => 'invert_filter']); ?></a>');
|
||||
var $removeBtn = $('<a class="delete_row" href="javascript:;"><?php echo html_print_image('images / cross.png', true, ['class' => 'invert_filter']); ?></a>');
|
||||
|
||||
$sortUpBtn.click(moveLayerRowUpOnClick);
|
||||
$sortDownBtn.click(moveLayerRowDownOnClick);
|
||||
$editBtn.click(function () { showLayerEditor(layerId); });
|
||||
$editBtn.click(
|
||||
function () {
|
||||
showLayerEditor(layerId);
|
||||
}
|
||||
);
|
||||
$removeBtn.click(removeLayerRowOnClick);
|
||||
|
||||
$nameCol
|
||||
.append($layerName)
|
||||
.append($layerIdInput)
|
||||
.append($layerNameInput)
|
||||
.append($layerVisibleInput)
|
||||
.append($layerAgentsFromGroupInput);
|
||||
$nameCol.append($layerName).append($layerIdInput).append($layerNameInput).append($layerVisibleInput).append($layerAgentsFromGroupInput);
|
||||
|
||||
if (layerData.agents && layerData.agents.length > 0) {
|
||||
layerData.agents.forEach(function (agent) {
|
||||
layerData.agents.foreach (function (agent) {
|
||||
$nameCol.append(getLayerAgentIdInput(layerId, agent.id));
|
||||
$nameCol.append(getLayerAgentAliasInput(layerId, agent.id, agent.alias));
|
||||
});
|
||||
}) {
|
||||
}
|
||||
}
|
||||
|
||||
if (layerData.groups && layerData.groups.length > 0) {
|
||||
layerData.groups.forEach(function (group) {
|
||||
layerData.groups.foreach (function (group) {
|
||||
$nameCol.append(getLayerGroupIdInput(layerId, group.id));
|
||||
$nameCol.append(getLayerGroupNameInput(layerId, group.id, group.name));
|
||||
$nameCol.append(getLayerAgentIdForDataInput(layerId, group.id, group.agentId));
|
||||
$nameCol.append(getLayerAgentAliasForDataInput(layerId, group.id, group.agentAlias));
|
||||
});
|
||||
}) {
|
||||
}
|
||||
}
|
||||
|
||||
$sortCol
|
||||
.append($sortUpBtn)
|
||||
.append($sortDownBtn);
|
||||
$editCol
|
||||
.append($editBtn);
|
||||
$deleteCol
|
||||
.append($removeBtn);
|
||||
$sortCol.append($sortUpBtn).append($sortDownBtn);
|
||||
$editCol.append($editBtn);
|
||||
$deleteCol.append($removeBtn);
|
||||
|
||||
$row
|
||||
.append($nameCol)
|
||||
.append($sortCol)
|
||||
.append($editCol)
|
||||
.append($deleteCol);
|
||||
$row.append($nameCol).append($sortCol).append($editCol).append($deleteCol);
|
||||
|
||||
return $row;
|
||||
}
|
||||
|
||||
function addLayerRow (layerId, layerData) {
|
||||
$("table#list_layers").append(getLayerRow(layerId, layerData));
|
||||
|
||||
function addLayerRow(layerId, layerData)
|
||||
{
|
||||
$('table#list_layers').append(getLayerRow(layerId, layerData));
|
||||
showLayerEditor(layerId);
|
||||
}
|
||||
|
||||
function hightlightRow (layerId) {
|
||||
var highlightColor = "#E9F3D2";
|
||||
$("tr.layer_row").css("background", "");
|
||||
$("tr#layer_row_" + layerId).css("background", highlightColor);
|
||||
|
||||
function hightlightRow(layerId)
|
||||
{
|
||||
var highlightColor = '#E9F3D2';
|
||||
$('tr.layer_row').css('background', '');
|
||||
$('tr#layer_row_' + layerId).css('background', highlightColor);
|
||||
}
|
||||
|
||||
function existInvalidLayerNames () {
|
||||
|
||||
function existInvalidLayerNames()
|
||||
{
|
||||
var exist = false;
|
||||
$("table#list_layers input.layer_name").each(function () {
|
||||
$('table#list_layers input.layer_name').each(
|
||||
function () {
|
||||
if ($(this).val().trim().length === 0) {
|
||||
exist = true;
|
||||
return false; // Break jQuery object each
|
||||
return false;
|
||||
// Break jQuery object each
|
||||
}
|
||||
});
|
||||
}
|
||||
);
|
||||
|
||||
return exist;
|
||||
}
|
||||
|
||||
function onFormSubmit (event) {
|
||||
|
||||
function onFormSubmit(event)
|
||||
{
|
||||
// Validate layer names
|
||||
if (existInvalidLayerNames()) {
|
||||
event.preventDefault();
|
||||
@ -1211,25 +1296,31 @@ function onFormSubmit (event) {
|
||||
alert("<?php echo __('Empty layer names are not supported'); ?>");
|
||||
return false;
|
||||
}
|
||||
|
||||
// Save connection list
|
||||
$('#map_connection_list').val(connectionMaps.toString());
|
||||
}
|
||||
|
||||
function onLayerGroupIdChange (event) {
|
||||
|
||||
function onLayerGroupIdChange(event)
|
||||
{
|
||||
// Clear agent inputs
|
||||
$("input#hidden-agent_id_for_data").val(0);
|
||||
$("input#text-agent_alias_for_data").val("");
|
||||
$('input#hidden-agent_id_for_data').val(0);
|
||||
$('input#text-agent_alias_for_data').val('');
|
||||
toggleAddGroupBtn();
|
||||
}
|
||||
|
||||
|
||||
// Bind events
|
||||
$("form#form_setup").submit(onFormSubmit);
|
||||
$("input#button-add_agent").click(addAgentClick);
|
||||
$("select#layer_group_id").change(onLayerGroupIdChange);
|
||||
$("input#button-add_group").click(addGroupClick);
|
||||
$('form#form_setup').submit(onFormSubmit);
|
||||
$('input#button-add_agent').click(addAgentClick);
|
||||
$('select#layer_group_id').change(onLayerGroupIdChange);
|
||||
$('input#button-add_group').click(addGroupClick);
|
||||
|
||||
// Populate layer list
|
||||
var layers = <?php echo json_encode($layer_list); ?>;
|
||||
var layers = < ? php echo json_encode($layer_list);
|
||||
?>
|
||||
;
|
||||
layers.forEach(function (layer) {
|
||||
$("table#list_layers").append(
|
||||
getLayerRow(layer["id"], {
|
||||
|
@ -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']);
|
||||
|
@ -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">';
|
||||
|
@ -31,6 +31,7 @@
|
||||
global $config;
|
||||
global $statusProcessInDB;
|
||||
|
||||
use PandoraFMS\Agent;
|
||||
use PandoraFMS\User;
|
||||
|
||||
check_login();
|
||||
@ -630,18 +631,7 @@ switch ($activeTab) {
|
||||
'message' => $message,
|
||||
];
|
||||
} else {
|
||||
// One item per module
|
||||
if (empty($name_modules)) {
|
||||
$statusProcessInDB = [
|
||||
'flag' => true,
|
||||
'message' => ui_print_error_message(
|
||||
__('No modules selected'),
|
||||
'',
|
||||
true
|
||||
),
|
||||
];
|
||||
} else {
|
||||
if (defined('METACONSOLE')) {
|
||||
if (is_metaconsole() === true) {
|
||||
$agents_ids = [];
|
||||
foreach ($id_agents as $id_agent_id) {
|
||||
$server_and_agent = explode('|', $id_agent_id);
|
||||
@ -661,13 +651,10 @@ switch ($activeTab) {
|
||||
} else {
|
||||
$agents[0] = $id_agents;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
foreach ($agents as $id_server => $id_agents) {
|
||||
// Any module
|
||||
if ($name_modules[0] == '0') {
|
||||
// Any module.
|
||||
if (empty($name_modules) === true || $name_modules[0] === '0') {
|
||||
$message .= visual_map_process_wizard_add_agents(
|
||||
$id_agents,
|
||||
$image,
|
||||
@ -705,19 +692,14 @@ switch ($activeTab) {
|
||||
} else {
|
||||
foreach ($name_modules as $mod) {
|
||||
foreach ($id_agents as $ag) {
|
||||
$id_module = agents_get_modules(
|
||||
$ag,
|
||||
['id_agente_modulo'],
|
||||
['nombre' => $mod]
|
||||
);
|
||||
$agent = new Agent($ag);
|
||||
$id_module = $agent->searchModules(
|
||||
['nombre' => $mod],
|
||||
1
|
||||
)->toArray()['id_agente_modulo'];
|
||||
|
||||
|
||||
|
||||
if (empty($id_module)) {
|
||||
if (empty($id_module) === true) {
|
||||
continue;
|
||||
} else {
|
||||
$id_module = reset($id_module);
|
||||
$id_module = $id_module['id_agente_modulo'];
|
||||
}
|
||||
|
||||
$id_modules[] = $id_module;
|
||||
|
@ -533,7 +533,7 @@ echo '</div>';
|
||||
echo '</form>';
|
||||
|
||||
// Trick for it have a traduct text for javascript.
|
||||
echo '<span id="any_text" class="invisible">'.__('Any').'</span>';
|
||||
echo '<span id="any_text" class="invisible">'.__('None').'</span>';
|
||||
echo '<span id="none_text" class="invisible">'.__('None').'</span>';
|
||||
echo '<span id="loading_text" class="invisible">'.__('Loading...').'</span>';
|
||||
?>
|
||||
|
@ -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');
|
||||
|
@ -101,7 +101,7 @@ $output .= '<p id="description_task">';
|
||||
$output .= __($str);
|
||||
$output .= '<br><br>';
|
||||
$output .= __('You can get more plugins in our');
|
||||
$output .= '<a href="http://pandorafms.com/Library/Library/">';
|
||||
$output .= '<a href="https://pandorafms.com/Library/Library/">';
|
||||
$output .= ' '.__('Public Resource Library');
|
||||
$output .= '</a>';
|
||||
$output .= '</p>';
|
||||
|
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