Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d5476b4269 | ||
|
|
bddc196e25 | ||
|
|
e3d1679f86 | ||
|
|
34f33772d0 |
@@ -1,5 +1,7 @@
|
|||||||
# functions
|
# functions
|
||||||
function/update_function.sql
|
function/update_function.sql
|
||||||
|
function/random_string.sql
|
||||||
|
function/edit_set_access_uid.sql
|
||||||
# generic tables
|
# generic tables
|
||||||
table/edit_temp_files.sql
|
table/edit_temp_files.sql
|
||||||
table/edit_generic.sql
|
table/edit_generic.sql
|
||||||
@@ -18,9 +20,11 @@ table/edit_user.sql
|
|||||||
table/edit_log.sql
|
table/edit_log.sql
|
||||||
table/edit_access.sql
|
table/edit_access.sql
|
||||||
table/edit_access_user.sql
|
table/edit_access_user.sql
|
||||||
|
table/edit_access_data.sql
|
||||||
# all triggers (after all tables have been created)
|
# all triggers (after all tables have been created)
|
||||||
trigger/trg_edit_access_right.sql
|
trigger/trg_edit_access_right.sql
|
||||||
trigger/trg_edit_access.sql
|
trigger/trg_edit_access.sql
|
||||||
|
trigger/trg_edit_access_data.sql
|
||||||
trigger/trg_edit_access_user.sql
|
trigger/trg_edit_access_user.sql
|
||||||
trigger/trg_edit_generic.sql
|
trigger/trg_edit_generic.sql
|
||||||
trigger/trg_edit_group.sql
|
trigger/trg_edit_group.sql
|
||||||
@@ -33,3 +37,6 @@ trigger/trg_edit_scheme.sql
|
|||||||
trigger/trg_edit_user.sql
|
trigger/trg_edit_user.sql
|
||||||
trigger/trg_edit_visible_group.sql
|
trigger/trg_edit_visible_group.sql
|
||||||
trigger/trg_edit_menu_group.sql
|
trigger/trg_edit_menu_group.sql
|
||||||
|
trigger/trg_set_edit_access_uid.sql
|
||||||
|
# insert data
|
||||||
|
data/edit_tables.sql
|
||||||
|
|||||||
141
4dev/database/data/edit_tables.sql
Executable file
141
4dev/database/data/edit_tables.sql
Executable file
@@ -0,0 +1,141 @@
|
|||||||
|
-- edit tables insert data in order
|
||||||
|
|
||||||
|
-- edit visible group
|
||||||
|
DELETE FROM edit_page_visible_group;
|
||||||
|
INSERT INTO edit_page_visible_group VALUES (1, 1);
|
||||||
|
INSERT INTO edit_page_visible_group VALUES (2, 1);
|
||||||
|
INSERT INTO edit_page_visible_group VALUES (3, 1);
|
||||||
|
INSERT INTO edit_page_visible_group VALUES (4, 1);
|
||||||
|
INSERT INTO edit_page_visible_group VALUES (5, 1);
|
||||||
|
INSERT INTO edit_page_visible_group VALUES (6, 1);
|
||||||
|
INSERT INTO edit_page_visible_group VALUES (7, 1);
|
||||||
|
|
||||||
|
-- edit menu group
|
||||||
|
DELETE FROM edit_menu_group;
|
||||||
|
INSERT INTO edit_menu_group (name, flag, order_number) VALUES ('Admin Menu', 'admin', 1);
|
||||||
|
INSERT INTO edit_menu_group (name, flag, order_number) VALUES ('Admin Data Popup Menu', 'AdminDataPopup', 2);
|
||||||
|
|
||||||
|
-- edit page
|
||||||
|
DELETE FROM edit_page;
|
||||||
|
INSERT INTO edit_page (filename, name, order_number, online, menu) VALUES ('edit_pages.php', 'Edit Pages', 1, 1, 1);
|
||||||
|
INSERT INTO edit_page (filename, name, order_number, online, menu) VALUES ('edit_users.php', 'Edit Users', 2, 1, 1);
|
||||||
|
INSERT INTO edit_page (filename, name, order_number, online, menu) VALUES ('edit_languages.php', 'Edit Languages', 3, 1, 1);
|
||||||
|
INSERT INTO edit_page (filename, name, order_number, online, menu) VALUES ('edit_schemes.php', 'Edit Schemes', 4, 1, 1);
|
||||||
|
INSERT INTO edit_page (filename, name, order_number, online, menu) VALUES ('edit_groups.php', 'Edit Groups', 5, 1, 1);
|
||||||
|
INSERT INTO edit_page (filename, name, order_number, online, menu) VALUES ('edit_visible_group.php', 'Edit Visible Groups', 6, 1, 1);
|
||||||
|
INSERT INTO edit_page (filename, name, order_number, online, menu) VALUES ('edit_menu_group.php', 'Edit Menu Groups', 7, 1, 1);
|
||||||
|
INSERT INTO edit_page (filename, name, order_number, online, menu) VALUES ('edit_access.php', 'Edit Access', 8, 1, 1);
|
||||||
|
INSERT INTO edit_page (filename, name, order_number, online, menu) VALUES ('edit_order.php', 'Edit Order', 9, 1, 0);
|
||||||
|
|
||||||
|
-- edit page menu group
|
||||||
|
DELETE FROM edit_page_menu_group;
|
||||||
|
INSERT INTO edit_page_menu_group VALUES (1, 1);
|
||||||
|
INSERT INTO edit_page_menu_group VALUES (2, 1);
|
||||||
|
INSERT INTO edit_page_menu_group VALUES (3, 1);
|
||||||
|
INSERT INTO edit_page_menu_group VALUES (4, 1);
|
||||||
|
INSERT INTO edit_page_menu_group VALUES (5, 1);
|
||||||
|
INSERT INTO edit_page_menu_group VALUES (6, 1);
|
||||||
|
INSERT INTO edit_page_menu_group VALUES (7, 1);
|
||||||
|
|
||||||
|
-- edit access right
|
||||||
|
DELETE FROM edit_access_right;
|
||||||
|
INSERT INTO edit_access_right (name, level, type) VALUES ('Default', -1, 'default');
|
||||||
|
INSERT INTO edit_access_right (name, level, type) VALUES ('No Access', 0, 'none');
|
||||||
|
INSERT INTO edit_access_right (name, level, type) VALUES ('Read', 20, 'read');
|
||||||
|
INSERT INTO edit_access_right (name, level, type) VALUES ('Translator', 30, 'mod_trans');
|
||||||
|
INSERT INTO edit_access_right (name, level, type) VALUES ('Modify', 40, 'mod');
|
||||||
|
INSERT INTO edit_access_right (name, level, type) VALUES ('Create/Write', 60, 'write');
|
||||||
|
INSERT INTO edit_access_right (name, level, type) VALUES ('Delete', 80, 'del');
|
||||||
|
INSERT INTO edit_access_right (name, level, type) VALUES ('Site Admin', 90, 'siteadmin');
|
||||||
|
INSERT INTO edit_access_right (name, level, type) VALUES ('Admin', 100, 'admin');
|
||||||
|
|
||||||
|
-- edit scheme
|
||||||
|
INSERT INTO edit_scheme (name, header_color, enabled) VALUES ('Default Scheme', 'E0E2FF', 1);
|
||||||
|
INSERT INTO edit_scheme (name, header_color, enabled) VALUES ('Admin', 'CC7E7E', 1);
|
||||||
|
INSERT INTO edit_scheme (name, header_color, enabled) VALUES ('Visitor', 'B0C4B3', 1);
|
||||||
|
INSERT INTO edit_scheme (name, header_color, enabled) VALUES ('User', '1E789E', 1);
|
||||||
|
|
||||||
|
-- edit language
|
||||||
|
INSERT INTO edit_language (short_name, long_name, iso_name, order_number, enabled, lang_default) VALUES ('en', 'English', 'UTF-8', 1, 1, 1);
|
||||||
|
INSERT INTO edit_language (short_name, long_name, iso_name, order_number, enabled, lang_default) VALUES ('ja', 'Japanese', 'UTF-8', 2, 1, 0);
|
||||||
|
|
||||||
|
-- edit group
|
||||||
|
INSERT INTO edit_group (name, enabled, edit_scheme_id, edit_access_right_id) VALUES ('Admin', 1,
|
||||||
|
(SELECT edit_scheme_id FROM edit_scheme WHERE name = 'Admin'),
|
||||||
|
(SELECT edit_access_right_id FROM edit_access_right WHERE type = 'admin')
|
||||||
|
);
|
||||||
|
INSERT INTO edit_group (name, enabled, edit_scheme_id, edit_access_right_id) VALUES ('User', 1,
|
||||||
|
(SELECT edit_scheme_id FROM edit_scheme WHERE name = 'User'),
|
||||||
|
(SELECT edit_access_right_id FROM edit_access_right WHERE type = 'write')
|
||||||
|
);
|
||||||
|
|
||||||
|
-- edit page access
|
||||||
|
INSERT INTO edit_page_access (enabled, edit_group_id, edit_page_id, edit_access_right_id) VALUES (1,
|
||||||
|
(SELECT edit_group_id FROM edit_group WHERE name = 'Admin'),
|
||||||
|
1,
|
||||||
|
(SELECT edit_access_right_id FROM edit_access_right WHERE type = 'admin')
|
||||||
|
);
|
||||||
|
INSERT INTO edit_page_access (enabled, edit_group_id, edit_page_id, edit_access_right_id) VALUES (1,
|
||||||
|
(SELECT edit_group_id FROM edit_group WHERE name = 'Admin'),
|
||||||
|
2,
|
||||||
|
(SELECT edit_access_right_id FROM edit_access_right WHERE type = 'admin')
|
||||||
|
);
|
||||||
|
INSERT INTO edit_page_access (enabled, edit_group_id, edit_page_id, edit_access_right_id) VALUES (1,
|
||||||
|
(SELECT edit_group_id FROM edit_group WHERE name = 'Admin'),
|
||||||
|
3,
|
||||||
|
(SELECT edit_access_right_id FROM edit_access_right WHERE type = 'admin')
|
||||||
|
);
|
||||||
|
INSERT INTO edit_page_access (enabled, edit_group_id, edit_page_id, edit_access_right_id) VALUES (1,
|
||||||
|
(SELECT edit_group_id FROM edit_group WHERE name = 'Admin'),
|
||||||
|
4,
|
||||||
|
(SELECT edit_access_right_id FROM edit_access_right WHERE type = 'admin')
|
||||||
|
);
|
||||||
|
INSERT INTO edit_page_access (enabled, edit_group_id, edit_page_id, edit_access_right_id) VALUES (1,
|
||||||
|
(SELECT edit_group_id FROM edit_group WHERE name = 'Admin'),
|
||||||
|
5,
|
||||||
|
(SELECT edit_access_right_id FROM edit_access_right WHERE type = 'admin')
|
||||||
|
);
|
||||||
|
INSERT INTO edit_page_access (enabled, edit_group_id, edit_page_id, edit_access_right_id) VALUES (1,
|
||||||
|
(SELECT edit_group_id FROM edit_group WHERE name = 'Admin'),
|
||||||
|
6,
|
||||||
|
(SELECT edit_access_right_id FROM edit_access_right WHERE type = 'admin'
|
||||||
|
);
|
||||||
|
INSERT INTO edit_page_access (enabled, edit_group_id, edit_page_id, edit_access_right_id) VALUES (1,
|
||||||
|
(SELECT edit_group_id FROM edit_group WHERE name = 'Admin'),
|
||||||
|
7,
|
||||||
|
(SELECT edit_access_right_id FROM edit_access_right WHERE type = 'admin'
|
||||||
|
);
|
||||||
|
INSERT INTO edit_page_access (enabled, edit_group_id, edit_page_id, edit_access_right_id) VALUES (1,
|
||||||
|
(SELECT edit_group_id FROM edit_group WHERE name = 'Admin'),
|
||||||
|
8,
|
||||||
|
(SELECT edit_access_right_id FROM edit_access_right WHERE type = 'admin')
|
||||||
|
);
|
||||||
|
INSERT INTO edit_page_access (enabled, edit_group_id, edit_page_id, edit_access_right_id) VALUES (1,
|
||||||
|
(SELECT edit_group_id FROM edit_group WHERE name = 'Admin'),
|
||||||
|
9,
|
||||||
|
(SELECT edit_access_right_id FROM edit_access_right WHERE type = 'admin')
|
||||||
|
);
|
||||||
|
|
||||||
|
-- edit user
|
||||||
|
-- inserts admin user so basic users can be created
|
||||||
|
DELETE FROM edit_user;
|
||||||
|
INSERT INTO edit_user (username, password, enabled, debug, db_debug, email, protected, admin, edit_language_id, edit_group_id, edit_scheme_id, edit_access_right_id) VALUES ('admin', 'admin', 1, 1, 1, '', 1, 1,
|
||||||
|
(SELECT edit_language_id FROM edit_language WHERE short_name = 'en'),
|
||||||
|
(SELECT edit_group_id FROM edit_group WHERE name = 'Admin'),
|
||||||
|
(SELECT edit_scheme_id FROM edit_scheme WHERE name = 'Admin')
|
||||||
|
(SELECT edit_access_right_id FROM edit_access_right WHERE type = 'admin')
|
||||||
|
);
|
||||||
|
|
||||||
|
-- edit access
|
||||||
|
DELETE FROM edit_access;
|
||||||
|
INSERT INTO edit_access (name, enabled, protected) VALUES ('Admin Access', 't', 1);
|
||||||
|
INSERT INTO edit_access (name, enabled, protected) VALUES ('User Access', 't', 1);
|
||||||
|
|
||||||
|
-- edit access user
|
||||||
|
DELETE FROM edit_access_user;
|
||||||
|
INSERT INTO edit_access_user (edit_default, edit_access_id, edit_user_id, edit_access_right_id) VALUES (1,
|
||||||
|
(SELECT edit_access_id FROM edit_access WHERE uid = 'AdminAccess')
|
||||||
|
(SELECT edit_user_id FROM edit_user WHERE username = 'admin')
|
||||||
|
(SELECT edit_access_right_id FROM edit_access_right WHERE type = 'admin')
|
||||||
|
);
|
||||||
|
|
||||||
18
4dev/database/function/random_string.sql
Executable file
18
4dev/database/function/random_string.sql
Executable file
@@ -0,0 +1,18 @@
|
|||||||
|
-- create random string with length X
|
||||||
|
|
||||||
|
CREATE FUNCTION random_string(randomLength int)
|
||||||
|
RETURNS text AS $$
|
||||||
|
SELECT array_to_string(
|
||||||
|
ARRAY(
|
||||||
|
SELECT substring(
|
||||||
|
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789',
|
||||||
|
trunc(random() * 62)::int + 1,
|
||||||
|
1
|
||||||
|
)
|
||||||
|
FROM generate_series(1, randomLength) AS gs(x)
|
||||||
|
),
|
||||||
|
''
|
||||||
|
)
|
||||||
|
$$ LANGUAGE SQL
|
||||||
|
RETURNS NULL ON NULL INPUT
|
||||||
|
VOLATILE; -- LEAKPROOF;
|
||||||
15
4dev/database/function/set_edit_generic.sql
Normal file
15
4dev/database/function/set_edit_generic.sql
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
-- adds the created or updated date tags
|
||||||
|
|
||||||
|
CREATE OR REPLACE FUNCTION set_edit_generic() RETURNS TRIGGER AS '
|
||||||
|
DECLARE
|
||||||
|
random_length INT = 12; -- that should be long enough
|
||||||
|
BEGIN
|
||||||
|
IF TG_OP = ''INSERT'' THEN
|
||||||
|
NEW.date_created := ''now'';
|
||||||
|
NEW.cuid := random_string(random_length);
|
||||||
|
ELSIF TG_OP = ''UPDATE'' THEN
|
||||||
|
NEW.date_updated := ''now'';
|
||||||
|
END IF;
|
||||||
|
RETURN NEW;
|
||||||
|
END;
|
||||||
|
' LANGUAGE 'plpgsql';
|
||||||
@@ -3,7 +3,7 @@
|
|||||||
CREATE OR REPLACE FUNCTION set_generic() RETURNS TRIGGER AS '
|
CREATE OR REPLACE FUNCTION set_generic() RETURNS TRIGGER AS '
|
||||||
BEGIN
|
BEGIN
|
||||||
IF TG_OP = ''INSERT'' THEN
|
IF TG_OP = ''INSERT'' THEN
|
||||||
NEW.date_created := ''now'';
|
NEW.cuid := random_string(random_length);
|
||||||
ELSIF TG_OP = ''UPDATE'' THEN
|
ELSIF TG_OP = ''UPDATE'' THEN
|
||||||
NEW.date_updated := ''now'';
|
NEW.date_updated := ''now'';
|
||||||
END IF;
|
END IF;
|
||||||
|
|||||||
@@ -15,6 +15,3 @@ CREATE TABLE edit_access (
|
|||||||
enabled BOOLEAN DEFAULT 'true',
|
enabled BOOLEAN DEFAULT 'true',
|
||||||
protected INT
|
protected INT
|
||||||
) INHERITS (edit_generic) WITHOUT OIDS;
|
) INHERITS (edit_generic) WITHOUT OIDS;
|
||||||
|
|
||||||
DELETE FROM edit_access;
|
|
||||||
INSERT INTO edit_access (name, enabled, protected) VALUES ('Admin Access', 't', 1);
|
|
||||||
|
|||||||
@@ -14,14 +14,3 @@ CREATE TABLE edit_access_right (
|
|||||||
type VARCHAR,
|
type VARCHAR,
|
||||||
UNIQUE (level,type)
|
UNIQUE (level,type)
|
||||||
) INHERITS (edit_generic) WITHOUT OIDS;
|
) INHERITS (edit_generic) WITHOUT OIDS;
|
||||||
|
|
||||||
DELETE FROM edit_access_right;
|
|
||||||
INSERT INTO edit_access_right (name, level, type) VALUES ('Default', -1, 'default');
|
|
||||||
INSERT INTO edit_access_right (name, level, type) VALUES ('No Access', 0, 'none');
|
|
||||||
INSERT INTO edit_access_right (name, level, type) VALUES ('Read', 20, 'read');
|
|
||||||
INSERT INTO edit_access_right (name, level, type) VALUES ('Translator', 30, 'mod_trans');
|
|
||||||
INSERT INTO edit_access_right (name, level, type) VALUES ('Modify', 40, 'mod');
|
|
||||||
INSERT INTO edit_access_right (name, level, type) VALUES ('Create/Write', 60, 'write');
|
|
||||||
INSERT INTO edit_access_right (name, level, type) VALUES ('Delete', 80, 'del');
|
|
||||||
INSERT INTO edit_access_right (name, level, type) VALUES ('Site Admin', 90, 'siteadmin');
|
|
||||||
INSERT INTO edit_access_right (name, level, type) VALUES ('Admin', 100, 'admin');
|
|
||||||
|
|||||||
@@ -17,6 +17,3 @@ CREATE TABLE edit_access_user (
|
|||||||
FOREIGN KEY (edit_user_id) REFERENCES edit_user (edit_user_id) MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE,
|
FOREIGN KEY (edit_user_id) REFERENCES edit_user (edit_user_id) MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE,
|
||||||
FOREIGN KEY (edit_access_right_id) REFERENCES edit_access_right (edit_access_right_id) MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE
|
FOREIGN KEY (edit_access_right_id) REFERENCES edit_access_right (edit_access_right_id) MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE
|
||||||
) INHERITS (edit_generic) WITHOUT OIDS;
|
) INHERITS (edit_generic) WITHOUT OIDS;
|
||||||
|
|
||||||
DELETE FROM edit_access_user;
|
|
||||||
INSERT INTO edit_access_user (edit_default, edit_access_id, edit_user_id, edit_access_right_id) VALUES (1, 1, 1, 8);
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
-- DROP TABLE edit_generic;
|
-- DROP TABLE edit_generic;
|
||||||
CREATE TABLE edit_generic (
|
CREATE TABLE edit_generic (
|
||||||
eg_status INT,
|
cuid VARCHAR,
|
||||||
date_created TIMESTAMP WITHOUT TIME ZONE DEFAULT clock_timestamp(),
|
date_created TIMESTAMP WITHOUT TIME ZONE DEFAULT clock_timestamp(),
|
||||||
date_updated TIMESTAMP WITHOUT TIME ZONE
|
date_updated TIMESTAMP WITHOUT TIME ZONE
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -15,5 +15,3 @@ CREATE TABLE edit_group (
|
|||||||
FOREIGN KEY (edit_scheme_id) REFERENCES edit_scheme (edit_scheme_id) MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE,
|
FOREIGN KEY (edit_scheme_id) REFERENCES edit_scheme (edit_scheme_id) MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE,
|
||||||
FOREIGN KEY (edit_access_right_id) REFERENCES edit_access_right (edit_access_right_id) MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE
|
FOREIGN KEY (edit_access_right_id) REFERENCES edit_access_right (edit_access_right_id) MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE
|
||||||
) INHERITS (edit_generic) WITHOUT OIDS;
|
) INHERITS (edit_generic) WITHOUT OIDS;
|
||||||
|
|
||||||
INSERT INTO edit_group (name, enabled, edit_scheme_id, edit_access_right_id) VALUES ('Admin', 1, 2, 8);
|
|
||||||
|
|||||||
@@ -16,5 +16,3 @@ CREATE TABLE edit_language (
|
|||||||
enabled SMALLINT NOT NULL DEFAULT 0,
|
enabled SMALLINT NOT NULL DEFAULT 0,
|
||||||
lang_default SMALLINT NOT NULL DEFAULT 0
|
lang_default SMALLINT NOT NULL DEFAULT 0
|
||||||
) INHERITS (edit_generic) WITHOUT OIDS;
|
) INHERITS (edit_generic) WITHOUT OIDS;
|
||||||
|
|
||||||
INSERT INTO edit_language (short_name, long_name, iso_name, order_number, enabled, lang_default) VALUES ('en', 'English', 'UTF-8', 1, 1, 1);
|
|
||||||
|
|||||||
@@ -13,6 +13,4 @@ CREATE TABLE edit_menu_group (
|
|||||||
order_number INT NOT NULL
|
order_number INT NOT NULL
|
||||||
) INHERITS (edit_generic) WITHOUT OIDS;
|
) INHERITS (edit_generic) WITHOUT OIDS;
|
||||||
|
|
||||||
DELETE FROM edit_menu_group;
|
|
||||||
INSERT INTO edit_menu_group (name, flag, order_number) VALUES ('Admin Menu', 'admin', 1);
|
|
||||||
INSERT INTO edit_menu_group (name, flag, order_number) VALUES ('Admin Data Popup Menu', 'AdminDataPopup', 2);
|
|
||||||
|
|||||||
@@ -17,14 +17,3 @@ CREATE TABLE edit_page (
|
|||||||
popup_x SMALLINT,
|
popup_x SMALLINT,
|
||||||
popup_y SMALLINT
|
popup_y SMALLINT
|
||||||
) INHERITS (edit_generic) WITHOUT OIDS;
|
) INHERITS (edit_generic) WITHOUT OIDS;
|
||||||
|
|
||||||
DELETE FROM edit_page;
|
|
||||||
INSERT INTO edit_page (filename, name, order_number, online, menu) VALUES ('edit_pages.php', 'Edit Pages', 1, 1, 1);
|
|
||||||
INSERT INTO edit_page (filename, name, order_number, online, menu) VALUES ('edit_users.php', 'Edit Users', 2, 1, 1);
|
|
||||||
INSERT INTO edit_page (filename, name, order_number, online, menu) VALUES ('edit_languages.php', 'Edit Languages', 3, 1, 1);
|
|
||||||
INSERT INTO edit_page (filename, name, order_number, online, menu) VALUES ('edit_schemes.php', 'Edit Schemes', 4, 1, 1);
|
|
||||||
INSERT INTO edit_page (filename, name, order_number, online, menu) VALUES ('edit_groups.php', 'Edit Groups', 5, 1, 1);
|
|
||||||
INSERT INTO edit_page (filename, name, order_number, online, menu) VALUES ('edit_visible_group.php', 'Edit Visible Groups', 6, 1, 1);
|
|
||||||
INSERT INTO edit_page (filename, name, order_number, online, menu) VALUES ('edit_menu_group.php', 'Edit Menu Groups', 7, 1, 1);
|
|
||||||
INSERT INTO edit_page (filename, name, order_number, online, menu) VALUES ('edit_access.php', 'Edit Access', 8, 1, 1);
|
|
||||||
INSERT INTO edit_page (filename, name, order_number, online, menu) VALUES ('edit_order.php', 'Edit Order', 9, 1, 0);
|
|
||||||
|
|||||||
@@ -17,12 +17,4 @@ CREATE TABLE edit_page_access (
|
|||||||
FOREIGN KEY (edit_access_right_id) REFERENCES edit_access_right (edit_access_right_id) MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE
|
FOREIGN KEY (edit_access_right_id) REFERENCES edit_access_right (edit_access_right_id) MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE
|
||||||
) INHERITS (edit_generic) WITHOUT OIDS;
|
) INHERITS (edit_generic) WITHOUT OIDS;
|
||||||
|
|
||||||
INSERT INTO edit_page_access (enabled, edit_group_id, edit_page_id, edit_access_right_id) VALUES (1, 1, 1, 8);
|
|
||||||
INSERT INTO edit_page_access (enabled, edit_group_id, edit_page_id, edit_access_right_id) VALUES (1, 1, 2, 8);
|
|
||||||
INSERT INTO edit_page_access (enabled, edit_group_id, edit_page_id, edit_access_right_id) VALUES (1, 1, 3, 8);
|
|
||||||
INSERT INTO edit_page_access (enabled, edit_group_id, edit_page_id, edit_access_right_id) VALUES (1, 1, 4, 8);
|
|
||||||
INSERT INTO edit_page_access (enabled, edit_group_id, edit_page_id, edit_access_right_id) VALUES (1, 1, 5, 8);
|
|
||||||
INSERT INTO edit_page_access (enabled, edit_group_id, edit_page_id, edit_access_right_id) VALUES (1, 1, 6, 8);
|
|
||||||
INSERT INTO edit_page_access (enabled, edit_group_id, edit_page_id, edit_access_right_id) VALUES (1, 1, 7, 8);
|
|
||||||
INSERT INTO edit_page_access (enabled, edit_group_id, edit_page_id, edit_access_right_id) VALUES (1, 1, 8, 8);
|
|
||||||
INSERT INTO edit_page_access (enabled, edit_group_id, edit_page_id, edit_access_right_id) VALUES (1, 1, 9, 8);
|
|
||||||
|
|||||||
@@ -12,12 +12,3 @@ CREATE TABLE edit_page_menu_group (
|
|||||||
FOREIGN KEY (edit_page_id) REFERENCES edit_page (edit_page_id) MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE,
|
FOREIGN KEY (edit_page_id) REFERENCES edit_page (edit_page_id) MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE,
|
||||||
FOREIGN KEY (edit_menu_group_id) REFERENCES edit_menu_group (edit_menu_group_id) MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE
|
FOREIGN KEY (edit_menu_group_id) REFERENCES edit_menu_group (edit_menu_group_id) MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE
|
||||||
);
|
);
|
||||||
|
|
||||||
DELETE FROM edit_page_menu_group;
|
|
||||||
INSERT INTO edit_page_menu_group VALUES (1, 1);
|
|
||||||
INSERT INTO edit_page_menu_group VALUES (2, 1);
|
|
||||||
INSERT INTO edit_page_menu_group VALUES (3, 1);
|
|
||||||
INSERT INTO edit_page_menu_group VALUES (4, 1);
|
|
||||||
INSERT INTO edit_page_menu_group VALUES (5, 1);
|
|
||||||
INSERT INTO edit_page_menu_group VALUES (6, 1);
|
|
||||||
INSERT INTO edit_page_menu_group VALUES (7, 1);
|
|
||||||
|
|||||||
@@ -12,12 +12,3 @@ CREATE TABLE edit_page_visible_group (
|
|||||||
FOREIGN KEY (edit_page_id) REFERENCES edit_page (edit_page_id) MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE,
|
FOREIGN KEY (edit_page_id) REFERENCES edit_page (edit_page_id) MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE,
|
||||||
FOREIGN KEY (edit_visible_group_id) REFERENCES edit_visible_group (edit_visible_group_id) MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE
|
FOREIGN KEY (edit_visible_group_id) REFERENCES edit_visible_group (edit_visible_group_id) MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE
|
||||||
);
|
);
|
||||||
|
|
||||||
DELETE FROM edit_page_visible_group;
|
|
||||||
INSERT INTO edit_page_visible_group VALUES (1, 1);
|
|
||||||
INSERT INTO edit_page_visible_group VALUES (2, 1);
|
|
||||||
INSERT INTO edit_page_visible_group VALUES (3, 1);
|
|
||||||
INSERT INTO edit_page_visible_group VALUES (4, 1);
|
|
||||||
INSERT INTO edit_page_visible_group VALUES (5, 1);
|
|
||||||
INSERT INTO edit_page_visible_group VALUES (6, 1);
|
|
||||||
INSERT INTO edit_page_visible_group VALUES (7, 1);
|
|
||||||
|
|||||||
@@ -14,7 +14,3 @@ CREATE TABLE edit_scheme (
|
|||||||
css_file VARCHAR,
|
css_file VARCHAR,
|
||||||
template VARCHARs
|
template VARCHARs
|
||||||
) INHERITS (edit_generic) WITHOUT OIDS;
|
) INHERITS (edit_generic) WITHOUT OIDS;
|
||||||
|
|
||||||
INSERT INTO edit_scheme (name, header_color, enabled) VALUES ('Default Scheme', 'E0E2FF', 1);
|
|
||||||
INSERT INTO edit_scheme (name, header_color, enabled) VALUES ('Admin', 'CC7E7E', 1);
|
|
||||||
INSERT INTO edit_scheme (name, header_color, enabled) VALUES ('Visitor', 'B0C4B3', 1);
|
|
||||||
|
|||||||
@@ -8,8 +8,13 @@
|
|||||||
-- DROP TABLE edit_user;
|
-- DROP TABLE edit_user;
|
||||||
CREATE TABLE edit_user (
|
CREATE TABLE edit_user (
|
||||||
edit_user_id SERIAL PRIMARY KEY,
|
edit_user_id SERIAL PRIMARY KEY,
|
||||||
|
connect_edit_user_id INT, -- possible reference to other user
|
||||||
username VARCHAR UNIQUE,
|
username VARCHAR UNIQUE,
|
||||||
password VARCHAR,
|
password VARCHAR,
|
||||||
|
first_name VARCHAR,
|
||||||
|
last_name VARCHAR,
|
||||||
|
first_name_furigana VARCHAR,
|
||||||
|
last_name_furigana VARCHAR,
|
||||||
enabled SMALLINT NOT NULL DEFAULT 0,
|
enabled SMALLINT NOT NULL DEFAULT 0,
|
||||||
debug SMALLINT NOT NULL DEFAULT 0,
|
debug SMALLINT NOT NULL DEFAULT 0,
|
||||||
db_debug SMALLINT NOT NULL DEFAULT 0,
|
db_debug SMALLINT NOT NULL DEFAULT 0,
|
||||||
@@ -27,12 +32,9 @@ CREATE TABLE edit_user (
|
|||||||
locked SMALLINT DEFAULT 0,
|
locked SMALLINT DEFAULT 0,
|
||||||
password_change_date TIMESTAMP WITHOUT TIME ZONE, -- only when password is first set or changed
|
password_change_date TIMESTAMP WITHOUT TIME ZONE, -- only when password is first set or changed
|
||||||
password_change_interval INTERVAL, -- null if no change is needed, or d/m/y time interval
|
password_change_interval INTERVAL, -- null if no change is needed, or d/m/y time interval
|
||||||
|
FOREIGN KEY (connect_edit_user_id) REFERENCES edit_user (edit_user_id) MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE,
|
||||||
FOREIGN KEY (edit_language_id) REFERENCES edit_language (edit_language_id) MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE,
|
FOREIGN KEY (edit_language_id) REFERENCES edit_language (edit_language_id) MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE,
|
||||||
FOREIGN KEY (edit_group_id) REFERENCES edit_group (edit_group_id) MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE,
|
FOREIGN KEY (edit_group_id) REFERENCES edit_group (edit_group_id) MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE,
|
||||||
FOREIGN KEY (edit_scheme_id) REFERENCES edit_scheme (edit_scheme_id) MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE,
|
FOREIGN KEY (edit_scheme_id) REFERENCES edit_scheme (edit_scheme_id) MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE,
|
||||||
FOREIGN KEY (edit_access_right_id) REFERENCES edit_access_right (edit_access_right_id) MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE
|
FOREIGN KEY (edit_access_right_id) REFERENCES edit_access_right (edit_access_right_id) MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE
|
||||||
) INHERITS (edit_generic) WITHOUT OIDS;
|
) INHERITS (edit_generic) WITHOUT OIDS;
|
||||||
|
|
||||||
-- inserts admin user so basic users can be created
|
|
||||||
DELETE FROM edit_user;
|
|
||||||
INSERT INTO edit_user (username, password, enabled, debug, db_debug, email, protected, admin, edit_language_id, edit_group_id, edit_scheme_id, edit_access_right_id) VALUES ('admin', 'admin', 1, 1, 1, '', 1, 1, 1, 1, 2, 8);
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
-- DROP TRIGGER trg_edit_access ON edit_access;
|
DROP TRIGGER trg_edit_access ON edit_access;
|
||||||
CREATE TRIGGER trg_edit_access
|
CREATE TRIGGER trg_edit_access
|
||||||
BEFORE INSERT OR UPDATE ON edit_access
|
BEFORE INSERT OR UPDATE ON edit_access
|
||||||
FOR EACH ROW EXECUTE PROCEDURE set_generic();
|
FOR EACH ROW EXECUTE PROCEDURE set_edit_generic();
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
-- DROP TRIGGER trg_edit_access_data ON edit_access_data;
|
DROP TRIGGER trg_edit_access_data ON edit_access_data;
|
||||||
CREATE TRIGGER trg_edit_access_data
|
CREATE TRIGGER trg_edit_access_data
|
||||||
BEFORE INSERT OR UPDATE ON edit_access_data
|
BEFORE INSERT OR UPDATE ON edit_access_data
|
||||||
FOR EACH ROW EXECUTE PROCEDURE set_generic();
|
FOR EACH ROW EXECUTE PROCEDURE set_edit_generic();
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
-- DROP TRIGGER trg_edit_access_right ON edit_access_right;
|
DROP TRIGGER trg_edit_access_right ON edit_access_right;
|
||||||
CREATE TRIGGER trg_edit_access_right
|
CREATE TRIGGER trg_edit_access_right
|
||||||
BEFORE INSERT OR UPDATE ON edit_access_right
|
BEFORE INSERT OR UPDATE ON edit_access_right
|
||||||
FOR EACH ROW EXECUTE PROCEDURE set_generic();
|
FOR EACH ROW EXECUTE PROCEDURE set_edit_generic();
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
-- DROP TRIGGER trg_edit_access_user ON edit_access_user;
|
DROP TRIGGER trg_edit_access_user ON edit_access_user;
|
||||||
CREATE TRIGGER trg_edit_access_user
|
CREATE TRIGGER trg_edit_access_user
|
||||||
BEFORE INSERT OR UPDATE ON edit_access_user
|
BEFORE INSERT OR UPDATE ON edit_access_user
|
||||||
FOR EACH ROW EXECUTE PROCEDURE set_generic();
|
FOR EACH ROW EXECUTE PROCEDURE set_edit_generic();
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
-- DROP TRIGGER trg_edit_group ON edit_group;
|
DROP TRIGGER trg_edit_group ON edit_group;
|
||||||
CREATE TRIGGER trg_edit_group
|
CREATE TRIGGER trg_edit_group
|
||||||
BEFORE INSERT OR UPDATE ON edit_group
|
BEFORE INSERT OR UPDATE ON edit_group
|
||||||
FOR EACH ROW EXECUTE PROCEDURE set_generic();
|
FOR EACH ROW EXECUTE PROCEDURE set_edit_generic();
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
-- DROP TRIGGER trg_edit_language ON edit_language;
|
DROP TRIGGER trg_edit_language ON edit_language;
|
||||||
CREATE TRIGGER trg_edit_language
|
CREATE TRIGGER trg_edit_language
|
||||||
BEFORE INSERT OR UPDATE ON edit_language
|
BEFORE INSERT OR UPDATE ON edit_language
|
||||||
FOR EACH ROW EXECUTE PROCEDURE set_generic();
|
FOR EACH ROW EXECUTE PROCEDURE set_edit_generic();
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
-- DROP TRIGGER trg_edit_log ON edit_log;
|
DROP TRIGGER trg_edit_log ON edit_log;
|
||||||
CREATE TRIGGER trg_edit_log
|
CREATE TRIGGER trg_edit_log
|
||||||
BEFORE INSERT OR UPDATE ON edit_log
|
BEFORE INSERT OR UPDATE ON edit_log
|
||||||
FOR EACH ROW EXECUTE PROCEDURE set_generic();
|
FOR EACH ROW EXECUTE PROCEDURE set_edit_generic();
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
-- DROP TRIGGER trg_edit_visible_group ON edit_visible_group;
|
DROP TRIGGER trg_edit_menu_group ON edit_menu_group;
|
||||||
CREATE TRIGGER trg_edit_menu_group
|
CREATE TRIGGER trg_edit_menu_group
|
||||||
BEFORE INSERT OR UPDATE ON edit_menu_group
|
BEFORE INSERT OR UPDATE ON edit_menu_group
|
||||||
FOR EACH ROW EXECUTE PROCEDURE set_generic();
|
FOR EACH ROW EXECUTE PROCEDURE set_edit_generic();
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
-- DROP TRIGGER trg_edit_page ON edit_page;
|
DROP TRIGGER trg_edit_page ON edit_page;
|
||||||
CREATE TRIGGER trg_edit_page
|
CREATE TRIGGER trg_edit_page
|
||||||
BEFORE INSERT OR UPDATE ON edit_page
|
BEFORE INSERT OR UPDATE ON edit_page
|
||||||
FOR EACH ROW EXECUTE PROCEDURE set_generic();
|
FOR EACH ROW EXECUTE PROCEDURE set_edit_generic();
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
-- DROP TRIGGER trg_edit_page_access ON edit_page_access;
|
DROP TRIGGER trg_edit_page_access ON edit_page_access;
|
||||||
CREATE TRIGGER trg_edit_page_access
|
CREATE TRIGGER trg_edit_page_access
|
||||||
BEFORE INSERT OR UPDATE ON edit_page_access
|
BEFORE INSERT OR UPDATE ON edit_page_access
|
||||||
FOR EACH ROW EXECUTE PROCEDURE set_generic();
|
FOR EACH ROW EXECUTE PROCEDURE set_edit_generic();
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
-- DROP TRIGGER trg_edit_query_string ON edit_query_string;
|
DROP TRIGGER trg_edit_query_string ON edit_query_string;
|
||||||
CREATE TRIGGER trg_edit_query_string
|
CREATE TRIGGER trg_edit_query_string
|
||||||
BEFORE INSERT OR UPDATE ON edit_query_string
|
BEFORE INSERT OR UPDATE ON edit_query_string
|
||||||
FOR EACH ROW EXECUTE PROCEDURE set_generic();
|
FOR EACH ROW EXECUTE PROCEDURE set_edit_generic();
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
-- DROP TRIGGER trg_edit_scheme ON edit_scheme;
|
DROP TRIGGER trg_edit_scheme ON edit_scheme;
|
||||||
CREATE TRIGGER trg_edit_scheme
|
CREATE TRIGGER trg_edit_scheme
|
||||||
BEFORE INSERT OR UPDATE ON edit_scheme
|
BEFORE INSERT OR UPDATE ON edit_scheme
|
||||||
FOR EACH ROW EXECUTE PROCEDURE set_generic();
|
FOR EACH ROW EXECUTE PROCEDURE set_edit_generic();
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
-- DROP TRIGGER trg_edit_user ON edit_user;
|
DROP TRIGGER trg_edit_user ON edit_user;
|
||||||
CREATE TRIGGER trg_edit_user
|
CREATE TRIGGER trg_edit_user
|
||||||
BEFORE INSERT OR UPDATE ON edit_user
|
BEFORE INSERT OR UPDATE ON edit_user
|
||||||
FOR EACH ROW EXECUTE PROCEDURE set_generic();
|
FOR EACH ROW EXECUTE PROCEDURE set_edit_generic();
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
-- DROP TRIGGER trg_edit_visible_group ON edit_visible_group;
|
DROP TRIGGER trg_edit_visible_group ON edit_visible_group;
|
||||||
CREATE TRIGGER trg_edit_visible_group
|
CREATE TRIGGER trg_edit_visible_group
|
||||||
BEFORE INSERT OR UPDATE ON edit_visible_group
|
BEFORE INSERT OR UPDATE ON edit_visible_group
|
||||||
FOR EACH ROW EXECUTE PROCEDURE set_generic();
|
FOR EACH ROW EXECUTE PROCEDURE set_edit_generic();
|
||||||
|
|||||||
@@ -139,8 +139,11 @@ $PAGES = $_SESSION["PAGES"];
|
|||||||
|
|
||||||
//$form->debug('menu', $form->printAr($PAGES));
|
//$form->debug('menu', $form->printAr($PAGES));
|
||||||
|
|
||||||
// baue nav aus $PAGES ...
|
// build nav from $PAGES ...
|
||||||
for ($i = 0; $i < count($PAGES); $i ++) {
|
if (!is_array($PAGES)) {
|
||||||
|
$PAGES = array ();
|
||||||
|
}
|
||||||
|
for ($i = 0, $i_max = count($PAGES); $i < $i_max; $i ++) {
|
||||||
if ($PAGES[$i]["menu"] && $PAGES[$i]["online"]) {
|
if ($PAGES[$i]["menu"] && $PAGES[$i]["online"]) {
|
||||||
$menuarray[] = $PAGES[$i];
|
$menuarray[] = $PAGES[$i];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -367,6 +367,30 @@ input[type="text"]:focus, textarea:focus, select:focus {
|
|||||||
font-size: 8px;
|
font-size: 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* NEW VERSION with CSS key frame animation */
|
||||||
|
.progress {
|
||||||
|
width: 100px;
|
||||||
|
height: 100px;
|
||||||
|
background: rgba(255, 255, 255, 0.6);
|
||||||
|
border: 20px solid rgba(255, 255, 255 ,0.25);
|
||||||
|
border-left-color: rgba(3, 155, 229 ,1);
|
||||||
|
border-top-color: rgba(3, 155, 229 ,1);
|
||||||
|
border-radius: 50%;
|
||||||
|
display: inline-block;
|
||||||
|
animation: rotate 600ms infinite linear;
|
||||||
|
/* align */
|
||||||
|
left: 0;
|
||||||
|
top: 0;
|
||||||
|
position: absolute;
|
||||||
|
z-index: 100;
|
||||||
|
}
|
||||||
|
/* Animation for above progress */
|
||||||
|
@keyframes rotate {
|
||||||
|
to {
|
||||||
|
transform: rotate(1turn)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* ***************************** ADMIN EDIT INTERFACE COLORS ********************************* */
|
/* ***************************** ADMIN EDIT INTERFACE COLORS ********************************* */
|
||||||
/* set all colors here and not in the config file */
|
/* set all colors here and not in the config file */
|
||||||
/* for edit interface */
|
/* for edit interface */
|
||||||
|
|||||||
@@ -2,6 +2,8 @@
|
|||||||
code is taken and adapted from dokuwiki
|
code is taken and adapted from dokuwiki
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/* jshint esversion: 6 */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Some browser detection
|
* Some browser detection
|
||||||
*/
|
*/
|
||||||
@@ -207,3 +209,196 @@ function formatBytes(bytes)
|
|||||||
|
|
||||||
return parseFloat(Math.round(bytes * Math.pow(10, 2)) / Math.pow(10, 2)) + ['kB', 'MB', 'GB', 'TB', 'PB', 'EB'][i];
|
return parseFloat(Math.round(bytes * Math.pow(10, 2)) / Math.pow(10, 2)) + ['kB', 'MB', 'GB', 'TB', 'PB', 'EB'][i];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// *** DOM MANAGEMENT FUNCTIONS
|
||||||
|
// METHOD: cel [create element]
|
||||||
|
// PARAMS: tag: must set tag (div, span, etc)
|
||||||
|
// id: optional set for id, if input, select will be used for name
|
||||||
|
// content: text content inside, is skipped if sub elements exist
|
||||||
|
// css: array for css tags
|
||||||
|
// options: anything else (value, placeholder, OnClick, style)
|
||||||
|
// RETURN: object
|
||||||
|
// DESC : creates object for DOM element creation flow
|
||||||
|
const cel = (tag, id = '', content = '', css = [], options = {}) =>
|
||||||
|
element = {
|
||||||
|
tag: tag,
|
||||||
|
id: id,
|
||||||
|
name: options.name, // override name if set [name gets ignored in tree build anyway]
|
||||||
|
content: content,
|
||||||
|
css: css,
|
||||||
|
options: options,
|
||||||
|
sub: []
|
||||||
|
};
|
||||||
|
|
||||||
|
// METHOD: ael [attach element]
|
||||||
|
// PARAMS: base: object where to attach/search
|
||||||
|
// attach: the object to be attached
|
||||||
|
// id: optional id, if given search in base for this id and attach there
|
||||||
|
// RETURN: "none", technically there is no return needed
|
||||||
|
// DESC : attach a cel created object to another to create a basic DOM tree
|
||||||
|
function ael(base, attach, id = '')
|
||||||
|
{
|
||||||
|
if (id) {
|
||||||
|
// base id match already
|
||||||
|
if (base.id == id) {
|
||||||
|
base.sub.push(attach);
|
||||||
|
} else {
|
||||||
|
// sub check
|
||||||
|
if (base.sub.length > 0) {
|
||||||
|
base.sub.each(function(t) {
|
||||||
|
// recursive call to sub element
|
||||||
|
ael(t, attach, id);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
base.sub.push(attach);
|
||||||
|
}
|
||||||
|
return base;
|
||||||
|
}
|
||||||
|
|
||||||
|
// METHOD: rel [rese element]
|
||||||
|
// PARAMS: cel created element
|
||||||
|
// RETURN: "none", is self change, but returns base.sub
|
||||||
|
// DESC : resets the sub elements of the base element given
|
||||||
|
const rel = (base) => base.sub = [];
|
||||||
|
|
||||||
|
// METHOD: rcssel [remove a css from the element]
|
||||||
|
// PARAMS: element, style sheet to remove
|
||||||
|
// RETURN: "none", in place because of reference
|
||||||
|
// DESC : searches and removes style from css array
|
||||||
|
function rcssel(element, css)
|
||||||
|
{
|
||||||
|
let css_index = element.css.indexOf(css);
|
||||||
|
if (css_index > -1) {
|
||||||
|
element.css.splice(css_index, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// METHOD acssel [add css element]
|
||||||
|
// PARAMS: element, style sheet to add
|
||||||
|
// RETURN: "none", in place add because of reference
|
||||||
|
// DESC : adds a new style sheet to the element given
|
||||||
|
function acssel(element, css)
|
||||||
|
{
|
||||||
|
let css_index = element.css.indexOf(css);
|
||||||
|
if (css_index > -1) {
|
||||||
|
element.css.push(css);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// METHOD: phfo [produce html from object]
|
||||||
|
// PARAMS: object tree with dom element declarations
|
||||||
|
// RETURN: HTML string that can be used as innerHTML
|
||||||
|
// DESC : parses the object tree created with cel/ael
|
||||||
|
// and converts it into an HTML string that can
|
||||||
|
// be inserted into the page
|
||||||
|
function phfo(tree)
|
||||||
|
{
|
||||||
|
// holds the elements
|
||||||
|
let content = [];
|
||||||
|
// main part line
|
||||||
|
let line = '<' + tree.tag;
|
||||||
|
// first id, if set
|
||||||
|
if (tree.id) {
|
||||||
|
line += ' id="' + tree.id + '"';
|
||||||
|
// if anything input (input, textarea, select then add name too)
|
||||||
|
if (['input', 'textarea', 'select'].includes(tree.tag)) {
|
||||||
|
line += ' name="' + (tree.name ? tree.name : tree.id) + '"';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// second CSS
|
||||||
|
if (tree.css.length > 0) {
|
||||||
|
line += ' class="';
|
||||||
|
tree.css.each(function(t) {
|
||||||
|
line += t + ' ';
|
||||||
|
});
|
||||||
|
// strip last space
|
||||||
|
line = line.slice(0, -1);
|
||||||
|
line += '"';
|
||||||
|
}
|
||||||
|
// options is anything key = "data"
|
||||||
|
if (tree.options) {
|
||||||
|
// ignores id, name, class as key
|
||||||
|
for (const [key, item] of Object.entries(tree.options)) {
|
||||||
|
if (!['id', 'name', 'class'].includes(key)) {
|
||||||
|
line += ' ' + key + '="' + item + '"';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// finish open tag
|
||||||
|
line += '>';
|
||||||
|
// push finished line
|
||||||
|
content.push(line);
|
||||||
|
// dive into sub tree to attach sub nodes
|
||||||
|
// NOTES: we cannot have content (text) AND sub nodes at the same level
|
||||||
|
// NODE takes preference over content
|
||||||
|
if (tree.sub.length > 0) {
|
||||||
|
tree.sub.each(function(t) {
|
||||||
|
content.push(phfo(t));
|
||||||
|
});
|
||||||
|
} else if (tree.content) {
|
||||||
|
content.push(tree.content);
|
||||||
|
}
|
||||||
|
// if not input close
|
||||||
|
if (tree.tag != 'input') {
|
||||||
|
content.push('</' + tree.tag + '>');
|
||||||
|
}
|
||||||
|
// combine to string
|
||||||
|
return content.join('');
|
||||||
|
}
|
||||||
|
|
||||||
|
// BLOCK: html wrappers for quickly creating html data blocks
|
||||||
|
// METHOD: html_options
|
||||||
|
// PARAMS: name/id, array for the options, selected item uid
|
||||||
|
// options_only: if this is true, it will not print the select part
|
||||||
|
// return_string, return as string and not as element
|
||||||
|
// RETURN: html with build options block
|
||||||
|
// DESC : creates an select/options drop down block.
|
||||||
|
// the array needs to be key -> value format. key is for the option id and value is for the data output
|
||||||
|
function html_options(name, data, selected = '', options_only = false, return_string = false)
|
||||||
|
{
|
||||||
|
let content = [];
|
||||||
|
let element_select;
|
||||||
|
let element_option;
|
||||||
|
// set outside select, gets stripped on return if options only is true
|
||||||
|
element_select = cel('select', name);
|
||||||
|
// console.log('Call for %s, options: %s', name, options_only);
|
||||||
|
$H(data).each(function(t) {
|
||||||
|
console.log('options: key: %s, value: %s', t.key, t.value);
|
||||||
|
// basic options init
|
||||||
|
let options = {
|
||||||
|
'label': t.value,
|
||||||
|
'value': t.key
|
||||||
|
};
|
||||||
|
// add selected if matching
|
||||||
|
if (selected == t.key) {
|
||||||
|
options.selected = '';
|
||||||
|
}
|
||||||
|
// create the element option
|
||||||
|
element_option = cel('option', '', t.value, '', options);
|
||||||
|
// attach it to the select element
|
||||||
|
ael(element_select, element_option);
|
||||||
|
});
|
||||||
|
// if with select part, convert to text
|
||||||
|
if (!options_only) {
|
||||||
|
if (return_string) {
|
||||||
|
content.push(phfo(element_select));
|
||||||
|
return content.join('');
|
||||||
|
} else {
|
||||||
|
return element_select;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// strip select part
|
||||||
|
if (return_string) {
|
||||||
|
element.sub.each(function(t) {
|
||||||
|
content.push(phfo(t));
|
||||||
|
});
|
||||||
|
return content.join('');
|
||||||
|
} else {
|
||||||
|
return element_select.sub;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* END */
|
||||||
|
|||||||
@@ -3,3 +3,27 @@
|
|||||||
color: #a4a4a4;
|
color: #a4a4a4;
|
||||||
font-size: 8px;
|
font-size: 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* NEW VERSION with CSS key frame animation */
|
||||||
|
.progress {
|
||||||
|
width: 100px;
|
||||||
|
height: 100px;
|
||||||
|
background: rgba(255, 255, 255, 0.6);
|
||||||
|
border: 20px solid rgba(255, 255, 255 ,0.25);
|
||||||
|
border-left-color: rgba(3, 155, 229 ,1);
|
||||||
|
border-top-color: rgba(3, 155, 229 ,1);
|
||||||
|
border-radius: 50%;
|
||||||
|
display: inline-block;
|
||||||
|
animation: rotate 600ms infinite linear;
|
||||||
|
/* align */
|
||||||
|
left: 0;
|
||||||
|
top: 0;
|
||||||
|
position: absolute;
|
||||||
|
z-index: 100;
|
||||||
|
}
|
||||||
|
/* Animation for above progress */
|
||||||
|
@keyframes rotate {
|
||||||
|
to {
|
||||||
|
transform: rotate(1turn)
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -75,7 +75,9 @@ class Login extends \CoreLibs\DB\IO
|
|||||||
private $pw_change_deny_users = array (); // array of users for which the password change is forbidden
|
private $pw_change_deny_users = array (); // array of users for which the password change is forbidden
|
||||||
|
|
||||||
// if we have password change we need to define some rules
|
// if we have password change we need to define some rules
|
||||||
private $password_min_length = 8;
|
private $password_min_length = PASSWORD_MIN_LENGTH;
|
||||||
|
// max length is fixed as 255 (for input type max), if set highter, it will be set back to 255
|
||||||
|
private $password_max_length = PASSWORD_MAX_LENGTH;
|
||||||
// can have several regexes, if nothing set, all is ok
|
// can have several regexes, if nothing set, all is ok
|
||||||
private $password_valid_chars = array (
|
private $password_valid_chars = array (
|
||||||
// '^(?=.*\d)(?=.*[A-Za-z])[0-9A-Za-z!@#$%]{8,}$',
|
// '^(?=.*\d)(?=.*[A-Za-z])[0-9A-Za-z!@#$%]{8,}$',
|
||||||
@@ -119,6 +121,16 @@ class Login extends \CoreLibs\DB\IO
|
|||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// pre-check that password min/max lengths are inbetween 1 and 255;
|
||||||
|
if ($this->password_max_length > 255) {
|
||||||
|
echo "<b>Settings problem</b> PMaL<br>";
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
if ($this->password_min_length < 1) {
|
||||||
|
echo "<b>Settings problem</b> PMiL<br>";
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
$this->l = new \CoreLibs\Language\L10n($lang);
|
$this->l = new \CoreLibs\Language\L10n($lang);
|
||||||
|
|
||||||
// if we have a search path we need to set it, to use the correct DB to login
|
// if we have a search path we need to set it, to use the correct DB to login
|
||||||
@@ -729,12 +741,28 @@ class Login extends \CoreLibs\DB\IO
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// check for min length
|
// check for min length
|
||||||
if (strlen($password) < $this->password_min_length) {
|
if (strlen($password) < $this->password_min_length || strlen($password) > $this->password_max_length) {
|
||||||
$is_valid_password = false;
|
$is_valid_password = false;
|
||||||
}
|
}
|
||||||
return $is_valid_password;
|
return $is_valid_password;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// METHOD: loginSetPasswordMinLength
|
||||||
|
// PARAMS: set the minimum length
|
||||||
|
// RETURN: true/false on success
|
||||||
|
// DESC : sets the minium length and checks on valid
|
||||||
|
public function loginSetPasswordMinLength($length)
|
||||||
|
{
|
||||||
|
// check that numeric, positive numeric, not longer than max input string lenght
|
||||||
|
// and not short than min password length
|
||||||
|
if (is_numeric($length) && $length >= PASSWORD_MIN_LENGTH && $length <= $this->password_max_length) {
|
||||||
|
$this->password_min_length = $length;
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// METHOD: loginPasswordChange
|
// METHOD: loginPasswordChange
|
||||||
// WAS : login_password_change
|
// WAS : login_password_change
|
||||||
// PARAMS: none
|
// PARAMS: none
|
||||||
|
|||||||
@@ -1341,7 +1341,7 @@ class Basic
|
|||||||
// METHOD: compareDate
|
// METHOD: compareDate
|
||||||
// WAS : CompareDate
|
// WAS : CompareDate
|
||||||
// PARAMS: start_date, end_date (both: YYYY-MM-DD)
|
// PARAMS: start_date, end_date (both: YYYY-MM-DD)
|
||||||
// RETURN: -1 if the first date is smaller the last, 0 if both are equal, 1 if the end date is bigger than the last
|
// RETURN: -1 if the first date is smaller the last, 0 if both are equal, 1 if the first date is bigger than the last
|
||||||
// DESC : splits & checks date, wrap around for check_date function
|
// DESC : splits & checks date, wrap around for check_date function
|
||||||
public static function compareDate($start_date, $end_date)
|
public static function compareDate($start_date, $end_date)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1621,6 +1621,12 @@ class IO extends \CoreLibs\Basic
|
|||||||
if ($string == 'f' || $string == 'false') {
|
if ($string == 'f' || $string == 'false') {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
// fallback in case top is not t/f, default on set unset
|
||||||
|
if ($string) {
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
if ($string) {
|
if ($string) {
|
||||||
return 't';
|
return 't';
|
||||||
@@ -1656,7 +1662,7 @@ class IO extends \CoreLibs\Basic
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
$not_write_update_array = array ();
|
$not_write_update_array = array ();
|
||||||
return $this->dbWriteData_ext($write_array, $primary_key, $table, $not_write_array, $not_write_update_array, $data);
|
return $this->dbWriteDataExt($write_array, $primary_key, $table, $not_write_array, $not_write_update_array, $data);
|
||||||
}
|
}
|
||||||
|
|
||||||
// METHOD: dbWriteDataExt
|
// METHOD: dbWriteDataExt
|
||||||
|
|||||||
@@ -516,8 +516,8 @@ class Generate extends \CoreLibs\DB\Extended\ArrayIO
|
|||||||
}
|
}
|
||||||
} elseif (is_array($this->element_list[$element_list[$i]]["read_data"]) && $this->element_list[$element_list[$i]]["delete"]) {
|
} elseif (is_array($this->element_list[$element_list[$i]]["read_data"]) && $this->element_list[$element_list[$i]]["delete"]) {
|
||||||
// $this->debug('form_clean', "ID [$id] [$prfx.$pk_name]");
|
// $this->debug('form_clean', "ID [$id] [$prfx.$pk_name]");
|
||||||
// $this->debug('form_clean', "ID arr: ".$this->print_ar($_POST[$id]));
|
// $this->debug('form_clean', "ID arr: ".$this->printAr($_POST[$id]));
|
||||||
// $this->debug('form_clean', "PK arr: ".$this->print_ar($_POST[$prfx.$pk_name]));
|
// $this->debug('form_clean', "PK arr: ".$this->printAr($_POST[$prfx.$pk_name]));
|
||||||
for ($j = 0, $j_max = count($_POST[$prfx.$pk_name]); $j < $j_max; $j ++) {
|
for ($j = 0, $j_max = count($_POST[$prfx.$pk_name]); $j < $j_max; $j ++) {
|
||||||
if (!$_POST[$remove_name[$i]][$j] && $_POST[$prfx.$pk_name][$j]) {
|
if (!$_POST[$remove_name[$i]][$j] && $_POST[$prfx.$pk_name][$j]) {
|
||||||
$q = "DELETE FROM ".$element_list[$i]." WHERE ".$pk_name." = ".$_POST[$prfx.$pk_name][$j];
|
$q = "DELETE FROM ".$element_list[$i]." WHERE ".$pk_name." = ".$_POST[$prfx.$pk_name][$j];
|
||||||
@@ -975,7 +975,7 @@ class Generate extends \CoreLibs\DB\Extended\ArrayIO
|
|||||||
// $this->debug('edit_error_chk', "KEY: $prfx$key | count: ".count($_POST[$prfx.$key])." | M: $max");
|
// $this->debug('edit_error_chk', "KEY: $prfx$key | count: ".count($_POST[$prfx.$key])." | M: $max");
|
||||||
// $this->debug('edit_error_chk', "K: ".$_POST[$prfx.$key]." | ".$_POST[$prfx.$key][0]);
|
// $this->debug('edit_error_chk', "K: ".$_POST[$prfx.$key]." | ".$_POST[$prfx.$key][0]);
|
||||||
}
|
}
|
||||||
$this->debug('post_array', $this->print_ar($_POST));
|
$this->debug('post_array', $this->printAr($_POST));
|
||||||
# check each row
|
# check each row
|
||||||
for ($i = 0; $i < $max; $i ++) {
|
for ($i = 0; $i < $max; $i ++) {
|
||||||
// either one of the post pks is set, or the mandatory
|
// either one of the post pks is set, or the mandatory
|
||||||
@@ -1305,7 +1305,7 @@ class Generate extends \CoreLibs\DB\Extended\ArrayIO
|
|||||||
foreach ($reference_array["elements"] as $el_name => $data_array) {
|
foreach ($reference_array["elements"] as $el_name => $data_array) {
|
||||||
// this is only for reference_data part, at least one of the text fields need to be set for writing
|
// this is only for reference_data part, at least one of the text fields need to be set for writing
|
||||||
$blow_write = array ();
|
$blow_write = array ();
|
||||||
// $this->debug('edit_error_query', "QUERY: ".$this->print_ar($_POST));
|
// $this->debug('edit_error_query', "QUERY: ".$this->printAr($_POST));
|
||||||
// go through all submitted data
|
// go through all submitted data
|
||||||
// for ($i = 0; $i < count($_POST[$el_name]); $i ++)
|
// for ($i = 0; $i < count($_POST[$el_name]); $i ++)
|
||||||
for ($i = 0; $i < $max; $i ++) {
|
for ($i = 0; $i < $max; $i ++) {
|
||||||
@@ -1542,7 +1542,7 @@ class Generate extends \CoreLibs\DB\Extended\ArrayIO
|
|||||||
// generic data read in (counts for all rows)
|
// generic data read in (counts for all rows)
|
||||||
// visible list data output
|
// visible list data output
|
||||||
foreach ($this->element_list[$table_name]["elements"] as $el_name => $data_array) {
|
foreach ($this->element_list[$table_name]["elements"] as $el_name => $data_array) {
|
||||||
$this->debug('CFG', 'El: '.$el_name.' -> '.$this->print_ar($data_array));
|
$this->debug('CFG', 'El: '.$el_name.' -> '.$this->printAr($data_array));
|
||||||
// if the element name matches the read array, then set the table as a name prefix
|
// if the element name matches the read array, then set the table as a name prefix
|
||||||
$q_select[] = $el_name; // this is for reading the data
|
$q_select[] = $el_name; // this is for reading the data
|
||||||
// prefix the name for any further data parts
|
// prefix the name for any further data parts
|
||||||
@@ -1587,9 +1587,9 @@ class Generate extends \CoreLibs\DB\Extended\ArrayIO
|
|||||||
}
|
}
|
||||||
// $proto[$el_name] = $this->error ? $_POST[$el_name][(count($_POST[$el_name]) - 1)] : '';
|
// $proto[$el_name] = $this->error ? $_POST[$el_name][(count($_POST[$el_name]) - 1)] : '';
|
||||||
}
|
}
|
||||||
// $this->debug('CFG DATA', 'Data: '.$this->print_ar($data));
|
// $this->debug('CFG DATA', 'Data: '.$this->printAr($data));
|
||||||
// $this->debug('CFG PROTO', 'Proto: '.$this->print_ar($proto));
|
// $this->debug('CFG PROTO', 'Proto: '.$this->printAr($proto));
|
||||||
// $this->debug('CFG SELECT', 'Proto: '.$this->print_ar($q_select));
|
// $this->debug('CFG SELECT', 'Proto: '.$this->printAr($q_select));
|
||||||
// query for reading in the data
|
// query for reading in the data
|
||||||
$this->debug('edit_error', "ERR: ".$this->error);
|
$this->debug('edit_error', "ERR: ".$this->error);
|
||||||
// if we got a read data, build the read select for the read, and read out the "selected" data
|
// if we got a read data, build the read select for the read, and read out the "selected" data
|
||||||
|
|||||||
Reference in New Issue
Block a user