Skip to content

Commit 121d519

Browse files
authored
Merge pull request #171 from WEBcodeX1/v1.0
Release Version v1.0
2 parents 091bdfa + cf1d786 commit 121d519

51 files changed

Lines changed: 3205 additions & 296 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

database/04-sys-text.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ INSERT INTO webui.text (id, "group", value_de, value_en) VALUES ('TXT.SYS.ERROR.
1616
INSERT INTO webui.text (id, "group", value_de, value_en) VALUES ('TXT.SYS.ERROR.FORMVALIDATE.IP-PORT-EMPTY', 'error', 'Kein Wert angegeben', 'No value given');
1717
INSERT INTO webui.text (id, "group", value_de, value_en) VALUES ('TXT.SYS.ERROR.FORMVALIDATE.IP-PORT-RANGE', 'error', 'Der Wert des IP tcp/udp Ports muss zwischen 1 und 65535 liegen', 'The value of the IP tcp/udp ports must be between 1 and 65535');
1818
INSERT INTO webui.text (id, "group", value_de, value_en) VALUES ('TXT.SYS.ERROR.FORMVALIDATE.IPv6ADDRESS-QUADNIBBLE-COUNT', 'error', 'IPv6 Adress-Format fehlerhaft', 'IPv6 Address format invalid');
19-
INSERT INTO webui.text (id, "group", value_de, value_en) VALUES ('TXT.SYS.ERROR.FORMVALIDATE.IPv4ADDRESS-QUADNIBBLE-SYNTAX', 'error', 'IPv6 Hex-Format fehlerhaft', 'IPv6 hex format invalid');
19+
INSERT INTO webui.text (id, "group", value_de, value_en) VALUES ('TXT.SYS.ERROR.FORMVALIDATE.IPv6ADDRESS-QUADNIBBLE-SYNTAX', 'error', 'IPv6 Hex-Format fehlerhaft', 'IPv6 hex format invalid');
2020
INSERT INTO webui.text (id, "group", value_de, value_en) VALUES ('TXT.SYS.ERROR.FORMVALIDATE.DNSNAME-LENGTH', 'error', 'Ein DNS Eintrag muss mindestens 1 Zeichen enthalten', 'A dns record must contain at least 1 character');
2121
INSERT INTO webui.text (id, "group", value_de, value_en) VALUES ('TXT.SYS.ERROR.FORMVALIDATE.DNSNAME', 'error', 'Ein DNS Eintrag darf nur aus folgenden Zeichen bestehen: a-z, 0-9 und Bindestrich nicht zu Beginn und Ende des Eintrags', 'A dns record may only consist of the following characters: a-z, 0-9 and hyphen not at the end and beginning');
2222
INSERT INTO webui.text (id, "group", value_de, value_en) VALUES ('TXT.SYS.ERROR.FORMVALIDATE.MIN-VALUE', 'error', 'Der eingegebene Wert muss mindestens den folgenden Wert aufweisen:', 'The entered value must be at least the following value:');

debian/x0-app.postinst

Lines changed: 110 additions & 109 deletions
Original file line numberDiff line numberDiff line change
@@ -4,114 +4,115 @@
44

55
if [ "$1" = "configure" ]; then
66

7-
# system vars
8-
WEBSERVER_DIR="/var/www"
9-
GLOBAL_PYTHONDIR="/${WEBSERVER_DIR}/python"
10-
VHOST_PYTHONDIR="/${WEBSERVER_DIR}/vhosts/x0/python"
11-
12-
APP_DIR="/${WEBSERVER_DIR}/vhosts/x0"
13-
APP_PYTHONDIR="/${APP_DIR}/python"
14-
APP_STATICDIR="/${APP_DIR}/static"
15-
16-
ETC_SSL="/etc/ssl"
17-
ETC_SSL_APACHE="${ETC_SSL}/apache"
18-
19-
APACHE_GLOBAL_CONF="/etc/apache2/apache2.conf"
20-
APACHE_DEFAULT_VHOST_CONF="/etc/apache2/sites-enabled/000-default.conf"
21-
22-
CERT_CA_FILE="${ETC_SSL_APACHE}/x0-ca-cert.pem"
23-
CERT_CA_KEY_FILE="${ETC_SSL_APACHE}/x0-ca-cert-key.pem"
24-
CERT_FILE="${ETC_SSL_APACHE}/x0-cert.pem"
25-
CERT_KEY_FILE="${ETC_SSL_APACHE}/x0-cert-key.pem"
26-
CERT_CSR_FILE="${ETC_SSL_APACHE}/x0-csr.pem"
27-
28-
CERT_CA_PASSPHRASE="change4prod-ca"
29-
CERT_PASSPHRASE="change4prod"
30-
31-
DEMO_FQDN="x0-app.x0.localnet"
32-
33-
WEBSERVER_CONF_DIR="/etc/apache2"
34-
VHOST_CONFIG_FILE="vhost-x0.conf"
35-
36-
BASEDIR="/var/lib/x0"
37-
38-
TEST_CONFIG_DIR="${BASEDIR}/test/integration/config"
39-
EXAMPLE_CONFIG_DIR="${BASEDIR}/example"
40-
41-
# enable de_DE and en_US UTF-8 locale
42-
sed -i 's/^# de_DE.UTF-8 UTF-8$/de_DE.UTF-8 UTF-8/g' /etc/locale.gen
43-
sed -i 's/^# en_US.UTF-8 UTF-8$/en_US.UTF-8 UTF-8/g' /etc/locale.gen
44-
locale-gen
45-
46-
# remove default vhost config
47-
rm ${APACHE_DEFAULT_VHOST_CONF}
48-
49-
# create ssl /etc dir if not exists
50-
if [ ! -d ${ETC_SSL_APACHE} ]; then
51-
mkdir -p ${ETC_SSL_APACHE};
52-
fi
53-
54-
# generate apache ssl cert
55-
if [ ! -e ${CERT_FILE} ]; then
56-
openssl genrsa -des3 -out ${CERT_CA_KEY_FILE} -passout pass:${CERT_CA_PASSPHRASE} 4096
57-
openssl req -x509 -new -nodes -key ${CERT_CA_KEY_FILE} -sha512 -days 365 -out ${CERT_CA_FILE} -subj "/C=DE/ST=MA/O=clickIT/CN=ca.local" -passin pass:${CERT_CA_PASSPHRASE}
58-
openssl genrsa -out ${CERT_KEY_FILE} -passout pass:${CERT_PASSPHRASE} 4096
59-
openssl req -new -sha512 -key ${CERT_KEY_FILE} -subj "/C=DE/ST=MA/O=clickIT/CN=${DEMO_FQDN}" -out ${CERT_CSR_FILE} -passin pass:${CERT_PASSPHRASE}
60-
openssl x509 -req -in ${CERT_CSR_FILE} -CA ${CERT_CA_FILE} -CAkey ${CERT_CA_KEY_FILE} -CAcreateserial -out ${CERT_FILE} -days 365 -sha512 -passin pass:${CERT_CA_PASSPHRASE}
61-
fi
62-
63-
# enable apache2 ssl mod
64-
a2enmod ssl
65-
66-
# copy apache main config file
67-
cp ${BASEDIR}/config/apache2/apache2.conf /etc/apache2/apache2.conf
68-
69-
# copy apache virtualhost config
70-
cp ${BASEDIR}/conf/${VHOST_CONFIG_FILE} ${WEBSERVER_CONF_DIR}/sites-available/
71-
cp ${BASEDIR}/conf/wsgi.conf ${WEBSERVER_CONF_DIR}/mods-available/
72-
73-
# activate apache vhost
74-
ln -s ${WEBSERVER_CONF_DIR}/sites-available/${VHOST_CONFIG_FILE} ${WEBSERVER_CONF_DIR}/sites-enabled/${VHOST_CONFIG_FILE} || echo "Apache vhost conf already exists."
75-
76-
# install python-dbpool
77-
if [ "$(pip3 list | grep pgdbpool | cut -d ' ' -f1)" != "pgdbpool" ]; then
78-
pip3 install --no-index --no-build-isolation ${BASEDIR}/bin/pgdbpool-0.99.tar.gz --break-system-packages
79-
fi
80-
81-
# copy DB.py and DBMapping.py
82-
cp ${BASEDIR}/python/DB.py ${GLOBAL_PYTHONDIR}/
83-
cp ${BASEDIR}/python/DBMapping.py ${GLOBAL_PYTHONDIR}/
84-
85-
# copy favicon.ico
86-
cp ${BASEDIR}/image/favicon-32x32.png ${VHOST_PYTHONDIR}/favicon.ico
87-
88-
# process tests (copy to vhost subdir)
89-
ls ${TEST_CONFIG_DIR} | while read dirname; do
90-
echo "Processing tests-config (static):${dirname}"
91-
CONF_SQL_DIR="${TEST_CONFIG_DIR}/${dirname}/sql"
92-
CONF_STATIC_DIR="${TEST_CONFIG_DIR}/${dirname}/static"
93-
DST_TEST_DIR="${APP_DIR}/test/${dirname}"
94-
mkdir -p ${DST_TEST_DIR}
95-
cp ${CONF_STATIC_DIR}/* ${DST_TEST_DIR}/
96-
cp ${APP_DIR}/static/*.css ${DST_TEST_DIR}/
97-
done
98-
99-
# process examples (copy to vhost subdir)
100-
ls ${EXAMPLE_CONFIG_DIR} | while read dirname; do
101-
echo "Processing example-config (static):${dirname}"
102-
CONF_SQL_DIR="${EXAMPLE_CONFIG_DIR}/${dirname}/sql"
103-
CONF_STATIC_DIR="${EXAMPLE_CONFIG_DIR}/${dirname}/static"
104-
CONF_PYTHON_DIR="${EXAMPLE_CONFIG_DIR}/${dirname}/python"
105-
DST_EXAMPLE_DIR="${APP_DIR}/examples/${dirname}"
106-
mkdir -p ${DST_EXAMPLE_DIR}
107-
cp ${CONF_STATIC_DIR}/* ${DST_EXAMPLE_DIR}/
108-
cp ${CONF_PYTHON_DIR}/* ${APP_PYTHONDIR}/
109-
cp ${APP_DIR}/static/*.css ${DST_EXAMPLE_DIR}/
110-
cp -r ${APP_DIR}/static/fontawesome ${DST_EXAMPLE_DIR}/
111-
cp APP_PYTHONDIR
112-
done
113-
114-
# restart apache
115-
service apache2 restart
7+
# system vars
8+
WEBSERVER_DIR="/var/www"
9+
GLOBAL_PYTHONDIR="/${WEBSERVER_DIR}/python"
10+
VHOST_PYTHONDIR="/${WEBSERVER_DIR}/vhosts/x0/python"
11+
12+
APP_DIR="/${WEBSERVER_DIR}/vhosts/x0"
13+
APP_PYTHONDIR="/${APP_DIR}/python"
14+
APP_STATICDIR="/${APP_DIR}/static"
15+
16+
ETC_SSL="/etc/ssl"
17+
ETC_SSL_APACHE="${ETC_SSL}/apache"
18+
19+
APACHE_GLOBAL_CONF="/etc/apache2/apache2.conf"
20+
APACHE_DEFAULT_VHOST_CONF="/etc/apache2/sites-enabled/000-default.conf"
21+
22+
CERT_CA_FILE="${ETC_SSL_APACHE}/x0-ca-cert.pem"
23+
CERT_CA_KEY_FILE="${ETC_SSL_APACHE}/x0-ca-cert-key.pem"
24+
CERT_FILE="${ETC_SSL_APACHE}/x0-cert.pem"
25+
CERT_KEY_FILE="${ETC_SSL_APACHE}/x0-cert-key.pem"
26+
CERT_CSR_FILE="${ETC_SSL_APACHE}/x0-csr.pem"
27+
28+
CERT_CA_PASSPHRASE="change4prod-ca"
29+
CERT_PASSPHRASE="change4prod"
30+
31+
DEMO_FQDN="x0-app.x0.localnet"
32+
33+
WEBSERVER_CONF_DIR="/etc/apache2"
34+
VHOST_CONFIG_FILE="vhost-x0.conf"
35+
36+
BASEDIR="/var/lib/x0"
37+
38+
TEST_CONFIG_DIR="${BASEDIR}/test/integration/config"
39+
EXAMPLE_CONFIG_DIR="${BASEDIR}/example"
40+
41+
# enable de_DE and en_US UTF-8 locale
42+
sed -i 's/^# de_DE.UTF-8 UTF-8$/de_DE.UTF-8 UTF-8/g' /etc/locale.gen
43+
sed -i 's/^# en_US.UTF-8 UTF-8$/en_US.UTF-8 UTF-8/g' /etc/locale.gen
44+
locale-gen
45+
46+
# remove default vhost config
47+
rm ${APACHE_DEFAULT_VHOST_CONF}
48+
49+
# create ssl /etc dir if not exists
50+
if [ ! -d ${ETC_SSL_APACHE} ]; then
51+
mkdir -p ${ETC_SSL_APACHE};
52+
fi
53+
54+
# generate apache ssl cert
55+
if [ ! -e ${CERT_FILE} ]; then
56+
openssl genrsa -des3 -out ${CERT_CA_KEY_FILE} -passout pass:${CERT_CA_PASSPHRASE} 4096
57+
openssl req -x509 -new -nodes -key ${CERT_CA_KEY_FILE} -sha512 -days 365 -out ${CERT_CA_FILE} -subj "/C=DE/ST=MA/O=clickIT/CN=ca.local" -passin pass:${CERT_CA_PASSPHRASE}
58+
openssl genrsa -out ${CERT_KEY_FILE} -passout pass:${CERT_PASSPHRASE} 4096
59+
openssl req -new -sha512 -key ${CERT_KEY_FILE} -subj "/C=DE/ST=MA/O=clickIT/CN=${DEMO_FQDN}" -out ${CERT_CSR_FILE} -passin pass:${CERT_PASSPHRASE}
60+
openssl x509 -req -in ${CERT_CSR_FILE} -CA ${CERT_CA_FILE} -CAkey ${CERT_CA_KEY_FILE} -CAcreateserial -out ${CERT_FILE} -days 365 -sha512 -passin pass:${CERT_CA_PASSPHRASE}
61+
fi
62+
63+
# enable apache2 ssl mod
64+
a2enmod ssl
65+
66+
# copy apache main config file
67+
cp ${BASEDIR}/config/apache2/apache2.conf /etc/apache2/apache2.conf
68+
69+
# copy apache virtualhost config
70+
cp ${BASEDIR}/conf/${VHOST_CONFIG_FILE} ${WEBSERVER_CONF_DIR}/sites-available/
71+
cp ${BASEDIR}/conf/wsgi.conf ${WEBSERVER_CONF_DIR}/mods-available/
72+
73+
# activate apache vhost
74+
ln -s ${WEBSERVER_CONF_DIR}/sites-available/${VHOST_CONFIG_FILE} ${WEBSERVER_CONF_DIR}/sites-enabled/${VHOST_CONFIG_FILE} || echo "Apache vhost conf already exists."
75+
76+
# install python-dbpool
77+
if [ "$(pip3 list | grep pgdbpool | cut -d ' ' -f1)" != "pgdbpool" ]; then
78+
pip3 install --no-index --no-build-isolation ${BASEDIR}/bin/pgdbpool-0.99.tar.gz --break-system-packages
79+
fi
80+
81+
# copy DB.py and DBMapping.py
82+
cp ${BASEDIR}/python/DB.py ${GLOBAL_PYTHONDIR}/
83+
cp ${BASEDIR}/python/DBMapping.py ${GLOBAL_PYTHONDIR}/
84+
85+
# copy favicon.ico
86+
cp ${BASEDIR}/image/favicon-32x32.png ${VHOST_PYTHONDIR}/favicon.ico
87+
88+
# process tests (copy to vhost subdir)
89+
ls ${TEST_CONFIG_DIR} | while read dirname; do
90+
echo "Processing tests-config (static):${dirname}"
91+
CONF_SQL_DIR="${TEST_CONFIG_DIR}/${dirname}/sql"
92+
CONF_STATIC_DIR="${TEST_CONFIG_DIR}/${dirname}/static"
93+
DST_TEST_DIR="${APP_DIR}/test/${dirname}"
94+
mkdir -p ${DST_TEST_DIR}
95+
cp ${CONF_STATIC_DIR}/* ${DST_TEST_DIR}/
96+
cp ${APP_DIR}/static/*.css ${DST_TEST_DIR}/
97+
cp -r ${APP_DIR}/static/fontawesome ${DST_TEST_DIR}/
98+
done
99+
100+
# process examples (copy to vhost subdir)
101+
ls ${EXAMPLE_CONFIG_DIR} | while read dirname; do
102+
echo "Processing example-config (static):${dirname}"
103+
CONF_SQL_DIR="${EXAMPLE_CONFIG_DIR}/${dirname}/sql"
104+
CONF_STATIC_DIR="${EXAMPLE_CONFIG_DIR}/${dirname}/static"
105+
CONF_PYTHON_DIR="${EXAMPLE_CONFIG_DIR}/${dirname}/python"
106+
DST_EXAMPLE_DIR="${APP_DIR}/examples/${dirname}"
107+
mkdir -p ${DST_EXAMPLE_DIR}
108+
cp ${CONF_STATIC_DIR}/* ${DST_EXAMPLE_DIR}/
109+
cp ${CONF_PYTHON_DIR}/* ${APP_PYTHONDIR}/
110+
cp ${APP_DIR}/static/*.css ${DST_EXAMPLE_DIR}/
111+
cp -r ${APP_DIR}/static/fontawesome ${DST_EXAMPLE_DIR}/
112+
cp APP_PYTHONDIR
113+
done
114+
115+
# restart apache
116+
service apache2 restart
116117

117118
fi

test/integration/EXAMPLES_TESTS.md

Lines changed: 0 additions & 89 deletions
This file was deleted.
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
INSERT INTO webui.text (id, "group", value_en) VALUES ('TXT.MENU.INTEGRATIONTEST.SCREEN-TEST1', 'menu', 'Test Screen 1');
2-
INSERT INTO webui.text (id, "group", value_en) VALUES ('TXT.BUTTON', 'button', 'Button 1');
3-
INSERT INTO webui.text (id, "group", value_en) VALUES ('TXT.TEST.FORMVALIDATION.FORM-SECTION-HEADER', 'formfieldlist', 'Formlist Header');
4-
INSERT INTO webui.text (id, "group", value_en) VALUES ('TXT.TEST.FORMVALIDATION.FORM-SECTION-SUBHEADER', 'formfieldlist', 'Formlist Subheader');
1+
INSERT INTO webui.text (id, "group", value_de) VALUES ('TXT.MENU.INTEGRATIONTEST.SCREEN-TEST1', 'menu', 'Test Screen 1');
2+
INSERT INTO webui.text (id, "group", value_de) VALUES ('TXT.BUTTON', 'button', 'Button 1');
3+
INSERT INTO webui.text (id, "group", value_de) VALUES ('TXT.TEST.FORMVALIDATION.FORM-SECTION-HEADER', 'formfieldlist', 'Formlist Header');
4+
INSERT INTO webui.text (id, "group", value_de) VALUES ('TXT.TEST.FORMVALIDATION.FORM-SECTION-SUBHEADER', 'formfieldlist', 'Formlist Subheader');

test/integration/config/formfield-validation/sql/sys-config.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
INSERT INTO system.config (app_id, config_group, "value") VALUES ('test_formfield_validation', 'index_title', 'x0 JS-Framework Test');
22
INSERT INTO system.config (app_id, config_group, "value") VALUES ('test_formfield_validation', 'debug_level', '10');
3-
INSERT INTO system.config (app_id, config_group, "value") VALUES ('test_formfield_validation', 'display_language', 'en');
3+
INSERT INTO system.config (app_id, config_group, "value") VALUES ('test_formfield_validation', 'display_language', 'de');
44
INSERT INTO system.config (app_id, config_group, "value") VALUES ('test_formfield_validation', 'default_screen', 'Test1');
55
INSERT INTO system.config (app_id, config_group, "value") VALUES ('test_formfield_validation', 'parent_window_url', 'null');
66
INSERT INTO system.config (app_id, config_group, "value") VALUES ('test_formfield_validation', 'subdir', '/test/formfield-validation');
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
INSERT INTO webui.text (id, "group", value_de) VALUES ('TXT.MENU.TEST.INTEGRATION.FORMFIELD2.LINK1', 'menu-link', 'Link 1');
2+
INSERT INTO webui.text (id, "group", value_de) VALUES ('TXT.TEST.FORMVALIDATION2.FORM-SECTION-HEADER1', 'form-header', 'Test Formvalidation');
3+
INSERT INTO webui.text (id, "group", value_de) VALUES ('TXT.TEST.FORMVALIDATION.FORM-SECTION-SUBHEADER1', 'form-subheader', 'Functions');
4+
INSERT INTO webui.text (id, "group", value_de) VALUES ('TXT.TEST.FORMVALIDATION2.FORM-SECTION-HEADER2', 'form-header', 'Test Formvalidation');
5+
INSERT INTO webui.text (id, "group", value_de) VALUES ('TXT.TEST.FORMVALIDATION.FORM-SECTION-SUBHEADER2', 'form-subheader', 'Group Function Differ');
6+
INSERT INTO webui.text (id, "group", value_de) VALUES ('TXT.TEST.FORMVALIDATION2.FORM-SECTION-HEADER3', 'form-header', 'Test Formvalidation');
7+
INSERT INTO webui.text (id, "group", value_de) VALUES ('TXT.TEST.FORMVALIDATION.FORM-SECTION-SUBHEADER3', 'form-subheader', 'Group Function Date Period 1Year');
8+
INSERT INTO webui.text (id, "group", value_de) VALUES ('TXT.TEST-FORM2-BUTTON1', 'button', 'Validate 1');
9+
INSERT INTO webui.text (id, "group", value_de) VALUES ('TXT.TEST-FORM2-BUTTON2', 'button', 'Validate 2');
10+
INSERT INTO webui.text (id, "group", value_de) VALUES ('TXT.TEST-FORM2-BUTTON3', 'button', 'Validate 3');
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
INSERT INTO system.config (app_id, config_group, "value") VALUES ('test_formfield_validation2', 'index_title', 'x0 JS-Framework Test');
2+
INSERT INTO system.config (app_id, config_group, "value") VALUES ('test_formfield_validation2', 'debug_level', '10');
3+
INSERT INTO system.config (app_id, config_group, "value") VALUES ('test_formfield_validation2', 'display_language', 'de');
4+
INSERT INTO system.config (app_id, config_group, "value") VALUES ('test_formfield_validation2', 'default_screen', 'Test1');
5+
INSERT INTO system.config (app_id, config_group, "value") VALUES ('test_formfield_validation2', 'parent_window_url', 'null');
6+
INSERT INTO system.config (app_id, config_group, "value") VALUES ('test_formfield_validation2', 'subdir', '/test/formfield-validation2');
7+
INSERT INTO system.config (app_id, config_group, "value") VALUES ('test_formfield_validation2', 'config_file_menu', 'menu.json');
8+
INSERT INTO system.config (app_id, config_group, "value") VALUES ('test_formfield_validation2', 'config_file_object', 'object.json');
9+
INSERT INTO system.config (app_id, config_group, "value") VALUES ('test_formfield_validation2', 'config_file_skeleton', 'skeleton.json');
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
[
2+
{
3+
"Link1":
4+
{
5+
"RefID": "sysMenu"
6+
}
7+
}
8+
]

0 commit comments

Comments
 (0)