Feat: 1. User-level access added to Dogs, Command Categories, Locations, Button Shapes, Images, Distraction Types, Distraction Intensity Levels, Bribes, Response Quality Metrics, Obedience Levels. \n 2. New user (Founding Partner) creation setup in database and front-end but front-end not tested.

This commit is contained in:
2025-08-20 19:29:01 +01:00
parent e370e3a709
commit 07543994bf
42 changed files with 1164 additions and 1384 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -10,6 +10,7 @@ WHERE
CREATE TABLE IF NOT EXISTS fetchmetrics.DOG_Dog (
id_dog INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, id_temp INT
, name VARCHAR(250) NOT NULL
, appearance VARCHAR(1000)
, mass_kg DECIMAL(7, 3)

View File

@@ -1,6 +1,11 @@
USE fetchmetrics;
/*
Must remove existing Temp Ids from DOG_Command_Category before dropping table!
*/
SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning
FROM INFORMATION_SCHEMA.TABLES
WHERE

View File

@@ -10,6 +10,7 @@ WHERE
CREATE TABLE IF NOT EXISTS fetchmetrics.DOG_Command_Category (
id_command_category INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, id_temp INT
, code VARCHAR(250) NOT NULL
, name VARCHAR(250) NOT NULL
, active BIT NOT NULL DEFAULT 1

View File

@@ -1,6 +1,12 @@
USE fetchmetrics;
/*
Must remove existing Temp Ids from DOG_Command_Category before dropping table!
DROP TABLE fetchmetrics.DOG_Command_Category_Temp
*/
SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning
FROM INFORMATION_SCHEMA.TABLES
WHERE

View File

@@ -10,7 +10,8 @@ WHERE
CREATE TABLE IF NOT EXISTS fetchmetrics.DOG_Location (
id_location INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, id_locaiton_parent INT
, id_temp INT
, id_location_parent INT
, code VARCHAR(250) NOT NULL
, name VARCHAR(250) NOT NULL
, active BIT NOT NULL DEFAULT 1

View File

@@ -1,6 +1,13 @@
USE fetchmetrics;
/*
Must remove existing Temp Ids from DOG_Command_Category before dropping table!
DROP TABLE fetchmetrics.DOG_Location_Temp;
*/
SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning
FROM INFORMATION_SCHEMA.TABLES
WHERE

View File

@@ -10,6 +10,7 @@ WHERE
CREATE TABLE IF NOT EXISTS fetchmetrics.DOG_Button_Shape (
id_button_shape INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, id_temp INT
, code VARCHAR(250) NOT NULL
, name VARCHAR(250) NOT NULL
, notes TEXT

View File

@@ -1,6 +1,13 @@
USE fetchmetrics;
/*
Must remove existing Temp Ids from DOG_Button_Shape_Temp before dropping table!
DROP TABLE fetchmetrics.DOG_Button_Shape_Temp;
*/
SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning
FROM INFORMATION_SCHEMA.TABLES
WHERE

View File

@@ -10,6 +10,7 @@ WHERE
CREATE TABLE IF NOT EXISTS fetchmetrics.DOG_Image (
id_image INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, id_temp INT
, id_file_type INT NOT NULL
, CONSTRAINT FK_DOG_Image_id_file_type
FOREIGN KEY (id_file_type)

View File

@@ -1,6 +1,13 @@
USE fetchmetrics;
/*
Must remove existing Temp Ids from DOG_Image_Temp before dropping table!
DROP TABLE fetchmetrics.DOG_Image_Temp;
*/
SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning
FROM INFORMATION_SCHEMA.TABLES
WHERE

View File

@@ -10,6 +10,7 @@ WHERE
CREATE TABLE IF NOT EXISTS fetchmetrics.DOG_Distraction_Type (
id_type INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, id_temp INT
, code VARCHAR(250) NOT NULL
, name VARCHAR(250) NOT NULL
, active BIT NOT NULL DEFAULT 1

View File

@@ -1,6 +1,13 @@
USE fetchmetrics;
/*
Must remove existing Temp Ids from DOG_Distraction_Type_Temp before dropping table!
DROP TABLE fetchmetrics.DOG_Distraction_Type_Temp;
*/
SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning
FROM INFORMATION_SCHEMA.TABLES
WHERE

View File

@@ -10,6 +10,7 @@ WHERE
CREATE TABLE IF NOT EXISTS fetchmetrics.DOG_Distraction_Intensity_Level (
id_intensity_level INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, id_temp INT
, code VARCHAR(250) NOT NULL
, name VARCHAR(250) NOT NULL
, active BIT NOT NULL DEFAULT 1

View File

@@ -1,6 +1,13 @@
USE fetchmetrics;
/*
Must remove existing Temp Ids from DOG_Distraction_Type_Temp before dropping table!
DROP TABLE fetchmetrics.DOG_Distraction_Type_Temp;
*/
SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning
FROM INFORMATION_SCHEMA.TABLES
WHERE

View File

@@ -10,6 +10,7 @@ WHERE
CREATE TABLE IF NOT EXISTS fetchmetrics.DOG_Bribe (
id_bribe INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, id_temp INT
, code VARCHAR(250) NOT NULL
, name VARCHAR(250) NOT NULL
, active BIT NOT NULL DEFAULT 1

View File

@@ -1,6 +1,13 @@
USE fetchmetrics;
/*
Must remove existing Temp Ids from DOG_Bribe_Temp before dropping table!
DROP TABLE fetchmetrics.DOG_Bribe_Temp;
*/
SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning
FROM INFORMATION_SCHEMA.TABLES
WHERE

View File

@@ -10,6 +10,7 @@ WHERE
CREATE TABLE IF NOT EXISTS fetchmetrics.DOG_Response_Quality_Metric (
id_metric INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, id_temp INT
, id_unit_measurement INT NOT NULL
, CONSTRAINT FK_DOG_Response_Quality_Metric_id_unit_measurement
FOREIGN KEY (id_unit_measurement)

View File

@@ -1,6 +1,13 @@
USE fetchmetrics;
/*
Must remove existing Temp Ids from DOG_Response_Quality_Metric_Temp before dropping table!
DROP TABLE fetchmetrics.DOG_Response_Quality_Metric_Temp;
*/
SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning
FROM INFORMATION_SCHEMA.TABLES
WHERE

View File

@@ -10,6 +10,7 @@ WHERE
CREATE TABLE IF NOT EXISTS fetchmetrics.DOG_Obedience_Level (
id_obedience_level INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, id_temp INT
, code VARCHAR(250) NOT NULL
, name VARCHAR(250) NOT NULL
, active BIT NOT NULL DEFAULT 1

View File

@@ -1,6 +1,13 @@
USE fetchmetrics;
/*
Must remove existing Temp Ids from DOG_Obedience_Level_Temp before dropping table!
DROP TABLE fetchmetrics.DOG_Obedience_Level_Temp;
*/
SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning
FROM INFORMATION_SCHEMA.TABLES
WHERE

View File

@@ -0,0 +1,216 @@
USE fetchmetrics;
DROP PROCEDURE IF EXISTS p_dog_save_new_founding_partner;
DELIMITER //
CREATE PROCEDURE p_dog_save_new_founding_partner (
IN a_comment VARCHAR(500)
, IN a_guid BINARY(36)
, IN a_id_user_auth0 VARCHAR(256)
, IN a_email_user VARCHAR(256)
, IN a_debug BIT
)
BEGIN
DECLARE v_code_type_error_bad_data VARCHAR(100);
DECLARE v_id_access_level_edit INT;
DECLARE v_id_change_set INT;
DECLARE v_id_permission_product INT;
DECLARE v_id_permission_user_edit INT;
DECLARE v_id_role_manager INT;
DECLARE v_is_super_user BIT;
DECLARE v_id_type_error_bad_data INT;
DECLARE v_can_edit_user BIT;
DECLARE v_priority_access_level_admin INT;
DECLARE v_priority_access_level_none INT;
DECLARE v_priority_access_level_user INT;
DECLARE v_time_start TIMESTAMP(6);
DECLARE exit handler for SQLEXCEPTION
BEGIN
GET DIAGNOSTICS CONDITION 1
@sqlstate = RETURNED_SQLSTATE
, @errno = MYSQL_ERRNO
, @text = MESSAGE_TEXT
;
ROLLBACK;
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
display_order INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);
INSERT INTO tmp_Msg_Error (
id_type
, code
, msg
)
SELECT
MET.id_type
, @errno
, @text
FROM fetchmetrics.CORE_Msg_Error_Type MET
WHERE MET.code = 'MYSQL_ERROR'
;
SELECT *
FROM tmp_Msg_Error;
DROP TABLE IF EXISTS tmp_Msg_Error;
END;
SET v_time_start := CURRENT_TIMESTAMP(6);
SET v_code_type_error_bad_data := 'BAD_DATA';
SET v_id_type_error_bad_data := (SELECT ERROR_TYPE.id_type FROM fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_bad_data LIMIT 1);
SET v_id_access_level_edit := (SELECT ACCESS_LEVEL.id_access_level FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'EDIT' LIMIT 1);
SET v_id_permission_user_edit := (SELECT GROUP_CONCAT(PERMISSION.id_permission SEPARATOR ',') FROM fetchmetrics.DOG_Permission PERMISSION WHERE PERMISSION.code = 'USER_CREATE' LIMIT 1);
SET v_priority_access_level_admin := (SELECT ACCESS_LEVEL.priority FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'ADMIN' LIMIT 1);
SET v_priority_access_level_none := (SELECT ACCESS_LEVEL.priority FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'NONE' LIMIT 1);
SET v_id_role_manager := (SELECT ROLES.id_role FROM fetchmetrics.DOG_Role ROLES WHERE ROLES.code = 'COMPANY_MANAGER' LIMIT 1);
CALL fetchmetrics.p_core_validate_guid ( a_guid );
DROP TABLE IF EXISTS tmp_Msg_Error;
DROP TABLE IF EXISTS tmp_User_Save_User;
CREATE TABLE tmp_User_Save_User (
id_user INT NOT NULL
, id_role INT
, id_user_auth0 VARCHAR(250)
, firstname VARCHAR(250)
, surname VARCHAR(250)
, email VARCHAR(254)
, is_email_verified BIT DEFAULT 0
, is_super_user BIT DEFAULT 0
, active BIT DEFAULT 1
, name_error VARCHAR(1000)
);
CREATE TABLE tmp_Msg_Error (
display_order INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
id_type INT NOT NULL,
code VARCHAR(250) NOT NULL,
msg TEXT NOT NULL
);
IF NOT EXISTS (SELECT * FROM fetchmetrics.PH_Apply_Founding_Partner_Form AFPF WHERE AFPF.email = a_email_user) THEN
INSERT INTO tmp_Msg_Error (
id_type
, code
, msg
)
SELECT
MET.id_type
, MET.code
, 'Founding Partner not found.'
FROM fetchmetrics.CORE_Msg_Error_Type MET
WHERE MET.id_type = v_id_type_error_bad_data
;
END IF;
-- Get data from Temp table
INSERT INTO tmp_User_Save_User (
id_user
, id_user_auth0
, id_role
, email
, firstname
, surname
, name_error
)
VALUES (
-1 -- AS id_user
, a_id_user_auth0
, v_id_role_manager
, a_email_user
, (SELECT LEFT(AFPF.name_contact, LOCATE(' ', AFPF.name_contact) - 1) FROM fetchmetrics.PH_Apply_Founding_Partner_Form AFPF WHERE AFPF.email = a_email_user) -- AS firstname
, (SELECT SUBSTRING(AFPF.name_contact, LOCATE(' ', AFPF.name_contact) + 1) FROM fetchmetrics.PH_Apply_Founding_Partner_Form AFPF WHERE AFPF.email = a_email_user) -- AS surname
, COALESCE(a_email_user, a_id_user_auth0) -- AS name_error
);
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error LIMIT 1) THEN
START TRANSACTION;
INSERT INTO fetchmetrics.DOG_User (
id_user_auth0
, firstname
, surname
, email
, is_email_verified
, is_super_user
, active
)
SELECT
t_USER.id_user_auth0
, t_USER.firstname
, t_USER.surname
, t_USER.email
, t_USER.is_email_verified
, t_USER.is_super_user
, t_USER.active
FROM tmp_User_Save_User t_USER
;
UPDATE tmp_User_Save_User t_USER
INNER JOIN fetchmetrics.DOG_User USER ON t_USER.id_user_auth0 = USER.id_user_auth0
SET t_USER.id_user = USER.id_user
;
INSERT INTO fetchmetrics.DOG_User_Role_Link (
id_role
, id_user
, active
, id_user_created_by
, created_on
)
SELECT
t_USER.id_role
, t_USER.id_user
, 1 -- active
, t_USER.id_user AS created_by
, v_time_start AS created_on
FROM tmp_User_Save_User t_USER
;
COMMIT;
END IF;
# Errors
SELECT *
FROM tmp_Msg_Error t_ME
INNER JOIN fetchmetrics.CORE_Msg_Error_Type MET ON t_ME.id_type = MET.id_type
;
IF a_debug = 1 THEN
SELECT * from tmp_User_Save_User;
END IF;
DROP TABLE IF EXISTS tmp_Msg_Error;
DROP TABLE IF EXISTS tmp_User_Save_User;
IF a_debug = 1 THEN
CALL fetchmetrics.p_debug_timing_reporting ( v_time_start );
END IF;
END //
DELIMITER ;
SELECT *
FROM fetchmetrics.PH_Apply_Founding_Partner_Form;
SELECT *
FROM fetchmetrics.DOG_User;
CALL fetchmetrics.p_dog_save_new_founding_partner (
'Test' -- a_comment
, 'lipsandchipsanddipslipsandchipsanddi' -- a_guid
, 'nipples' -- id_user-auth0
, 'edwardmanic.ms@gmail.com' -- email -- 'teddy@demoltd.co.uk'
, 0 -- debug
);
SELECT *
FROM fetchmetrics.DOG_User;

View File

@@ -0,0 +1,459 @@
USE fetchmetrics;
DROP PROCEDURE IF EXISTS fetchmetrics.p_dog_save_dog;
DELIMITER //
CREATE PROCEDURE fetchmetrics.p_dog_save_dog (
IN a_comment VARCHAR(500),
IN a_guid BINARY(36),
IN a_id_user INT,
IN a_debug BIT
)
BEGIN
DECLARE v_can_admin BIT;
DECLARE v_can_create BIT;
DECLARE v_code_type_error_bad_data VARCHAR(100);
DECLARE v_id_access_level_edit INT;
DECLARE v_id_access_level_view INT;
DECLARE v_id_change_set INT;
DECLARE v_id_permission_dog_edit INT;
DECLARE v_id_type_error_bad_data INT;
DECLARE v_time_start TIMESTAMP(6);
DECLARE exit handler for SQLEXCEPTION
BEGIN
GET DIAGNOSTICS CONDITION 1
@sqlstate = RETURNED_SQLSTATE
, @errno = MYSQL_ERRNO
, @text = MESSAGE_TEXT
;
ROLLBACK;
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT
, code VARCHAR(250)
, msg TEXT NOT NULL
);
INSERT INTO tmp_Msg_Error (
id_type
, code
, msg
)
SELECT
MET.id_type
, @errno
, @text
FROM fetchmetrics.CORE_Msg_Error_Type MET
WHERE MET.code = 'MYSQL_ERROR'
;
SELECT
t_ERROR.id_error
, t_ERROR.id_type
, t_ERROR.code
, ERROR_TYPE.name
, ERROR_TYPE.description
, ERROR_TYPE.is_breaking_error
, ERROR_TYPE.background_colour
, ERROR_TYPE.text_colour
, t_ERROR.msg
FROM tmp_Msg_Error t_ERROR
INNER JOIN fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type
;
DROP TABLE IF EXISTS tmp_Msg_Error;
END;
SET SESSION group_concat_max_len=15000;
SET v_time_start := CURRENT_TIMESTAMP(6);
SET v_code_type_error_bad_data := 'BAD_DATA';
SET v_id_type_error_bad_data := (SELECT ERROR_TYPE.id_type FROM fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_bad_data LIMIT 1);
SET v_id_permission_dog_edit := (SELECT PERMISSION.id_permission FROM fetchmetrics.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_EDIT' LIMIT 1);
SET v_id_access_level_edit := (SELECT ACCESS_LEVEL.id_access_level FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'EDIT' LIMIT 1);
SET v_id_access_level_view := (SELECT ACCESS_LEVEL.id_access_level FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'VIEW' LIMIT 1);
CALL fetchmetrics.p_core_validate_guid ( a_guid );
DROP TABLE IF EXISTS tmp_Dog;
CREATE TEMPORARY TABLE tmp_Dog (
id_temp INT
, id_dog INT
, name VARCHAR(250)
, appearance VARCHAR(1000)
, mass_kg DECIMAL(7, 3)
, notes TEXT
, active BIT
, is_new BIT
, name_error VARCHAR(250)
);
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT
, code VARCHAR(250)
, msg TEXT NOT NULL
);
-- Get data from Temp table
INSERT INTO tmp_Dog (
id_temp
, id_dog
, name
, appearance
, mass_kg
, notes
, active
, is_new
)
SELECT
DOG_T.id_temp
, COALESCE(DOG.id_dog, DOG_T.id_dog) AS id_dog
, COALESCE(
DOG_T.name
, DOG.name
) AS name
, COALESCE(
DOG_T.appearance
, DOG.appearance
) AS appearance
, COALESCE(
DOG_T.mass_kg
, DOG.mass_kg
) AS mass_kg
, COALESCE(
DOG_T.notes
, DOG.notes
) AS notes
, COALESCE(DOG_T.active, 1) AS active
, CASE WHEN IFNULL(DOG_T.id_dog, 0) < 1 THEN 1 ELSE 0 END AS is_new
FROM fetchmetrics.DOG_Dog_Temp DOG_T
LEFT JOIN fetchmetrics.DOG_Dog DOG ON DOG_T.id_dog = DOG.id_dog
WHERE DOG_T.guid = a_guid
;
IF a_debug = 1 THEN
SELECT 'Dog_Temp records';
SELECT * FROM tmp_Dog;
SELECT COUNT(*) FROM tmp_Dog;
END IF;
-- Error names
UPDATE tmp_Dog t_DOG
SET t_DOG.name_error = COALESCE(t_DOG.code, t_DOG.name, t_DOG.id_dog, '(No Dog)')
;
IF a_debug = 1 THEN
SELECT 'After set name_error';
SELECT * FROM tmp_Dog;
SELECT COUNT(*) FROM tmp_Dog;
END IF;
/*
-- Missing Dog Ids
UPDATE tmp_Dog t_DOG
LEFT JOIN fetchmetrics.DOG_Dog DOG ON t_DOG.code = DOG.code
SET
t_DOG.id_dog = DOG.id_dog
, t_DOG.is_new = 0
WHERE
IFNULL(t_DOG.id_dog, 0) < 1
AND NOT ISNULL(DOG.id_dog)
;
IF a_debug = 1 THEN
SELECT 'After set missing id_dog';
SELECT * FROM tmp_Dog;
SELECT COUNT(*) FROM tmp_Dog;
END IF;
*/
-- Validation
-- Missing mandatory fields
-- name
IF EXISTS ( SELECT * FROM tmp_Dog t_DOG WHERE t_DOG.name IS NULL ) THEN
INSERT INTO tmp_Msg_Error (
id_type
, code
, msg
)
SELECT
v_id_type_error_bad_data
, v_code_type_error_bad_data
, CONCAT('The following Dog(s) do not have a valid Name: ', GROUP_CONCAT(t_DOG.name_error SEPARATOR ', ')) AS msg
FROM tmp_Dog t_DOG
WHERE t_DOG.name IS NULL
;
END IF;
-- Permissions
-- Can Create
CALL fetchmetrics.p_dog_calc_user_access(
a_guid
, 0 -- get_all_user
, 0 -- get_inactive_user
, a_id_user -- ids_user
, '' -- a_auth0_ids_user
, '' -- a_names_user
, '' -- a_emails_user
, 1 -- a_require_all_id_search_filters_met
, 1 -- a_require_any_id_search_filters_met
, 0 -- a_require_all_non_id_search_filters_met
, 0 -- a_require_any_non_id_search_filters_met
, v_id_permission_dog_edit -- ids_permission
, v_id_access_level_edit -- ids_access_level
, 0 -- a_show_errors
, 0 -- a_debug
);
SELECT
IFNULL(CU_T.has_access, 0)
INTO
v_can_create
FROM fetchmetrics.DOG_Calc_User_Access_Temp CU_T
WHERE CU_T.GUID = a_guid
LIMIT 1
;
CALL fetchmetrics.p_dog_clear_calc_user_access(
a_guid
, 0 -- a_debug
);
IF v_can_create = 0 THEN
DELETE t_ME
FROM tmp_Msg_Error t_ME
WHERE t_ME.id_type <> v_id_type_error_no_permission
;
INSERT INTO tmp_Msg_Error (
id_type
, code
, msg
)
VALUES (
v_id_type_error_no_permission
, v_code_type_error_no_permission
, 'You do not have permission to edit Dogs.'
)
;
END IF;
IF EXISTS (SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
IF a_debug = 1 THEN
SELECT * from tmp_Dog;
END IF;
DELETE FROM tmp_Dog;
END IF;
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
START TRANSACTION;
INSERT INTO fetchmetrics.DOG_Dog_Change_Set (
comment
, id_user_updated_last_by
, updated_last_on
)
VALUES (
a_comment
, a_id_user
, v_time_start
)
;
SET v_id_change_set := LAST_INSERT_ID();
UPDATE fetchmetrics.DOG_Dog DOG
INNER JOIN tmp_Dog t_DOG
ON DOG.id_dog = t_DOG.id_dog
AND t_DOG.is_new = 0
SET
DOG.name = t_DOG.name
, DOG.appearance = t_DOG.appearance
, DOG.mass_kg = t_DOG.mass_kg
, DOG.notes = t_DOG.notes
, DOG.active = t_DOG.active
, DOG.id_change_set = v_id_change_set
;
IF EXISTS (
SELECT *
FROM tmp_Dog t_DOG
WHERE
t_DOG.is_new = 1
AND t_DOG.active = 1
LIMIT 1
) THEN
INSERT INTO fetchmetrics.DOG_Dog (
id_temp
, name
, appearance
, mass_kg
, notes
, active
, id_user_created_by
, created_on
)
SELECT
t_DOG.id_temp AS id_temp
, t_DOG.name AS name
, t_DOG.appearance AS appearance
, t_DOG.mass_kg AS mass_kg
, t_DOG.notes AS notes
, t_DOG.active AS active
, a_id_user AS created_by
, v_time_start AS created_on
FROM tmp_Dog t_DOG
WHERE
t_DOG.is_new = 1
AND t_DOG.active = 1
;
UPDATE tmp_Dog t_DOG
INNER JOIN fetchmetrics.DOG_Dog DOG ON t_DOG.id_temp = DOG.id_temp
SET t_DOG.id_dog = DOG.id_dog
WHERE
t_DOG.is_new = 1
AND t_DOG.active = 1
;
INSERT INTO fetchmetrics.DOG_Dog_User_Link (
id_dog
, id_user
, id_access_level
, active
, id_user_created_by
, created_on
)
SELECT
t_DOG.id_dog
, a_id_user
, v_id_access_level_view
, 1 -- active
, a_id_user AS created_by
, v_time_start AS created_on
FROM tmp_Dog t_DOG
WHERE
t_DOG.is_new = 1
AND t_DOG.active = 1
;
END IF;
COMMIT;
END IF;
START TRANSACTION;
DELETE FROM fetchmetrics.DOG_Dog_Temp
WHERE GUID = a_guid
;
COMMIT;
-- Errors
SELECT
t_ERROR.id_error
, t_ERROR.id_type
, t_ERROR.code
, ERROR_TYPE.name
, ERROR_TYPE.description
, ERROR_TYPE.is_breaking_error
, ERROR_TYPE.background_colour
, ERROR_TYPE.text_colour
, t_ERROR.msg
FROM tmp_Msg_Error t_ERROR
INNER JOIN fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type
;
IF a_debug = 1 THEN
SELECT * FROM tmp_Dog;
END IF;
DROP TEMPORARY TABLE tmp_Dog;
DROP TEMPORARY TABLE tmp_Msg_Error;
IF a_debug = 1 THEN
CALL fetchmetrics.p_core_debug_timing_reporting ( v_time_start );
END IF;
END //
DELIMITER ;
/*
'ripplesipplenippletippledipplekipple'
DELETE FROM fetchmetrics.DOG_Dog_Audit WHERE id_dog > 740;
DELETE FROM fetchmetrics.DOG_Dog WHERE id_dog > 740;
* /
delete
from fetchmetrics.DOG_Dog_Temp
;
select
*
-- COUNT(*)
-- delete
from fetchmetrics.DOG_Dog_Temp
;
select COUNT(*)
from fetchmetrics.DOG_Dog_Temp
;
select
*
-- COUNT(*)
-- delete
from fetchmetrics.DOG_Dog
;
select COUNT(*)
from fetchmetrics.DOG_Dog
;
INSERT INTO fetchmetrics.DOG_Dog_Temp (
id_dog
, code
, name
, active
, guid
)
VALUES (
-1 -- id_dog
, 'ACTIVITIES' -- code
, 'A Sport Is Fun' -- name
, 1 -- active
, 'ripplesipplenippletippledipplekipple'
);
CALL fetchmetrics.p_dog_save_dog (
'nipples'
, 'ripplesipplenippletippledipplekipple'
, 1
, 1
);
select
*
-- COUNT(*)
-- delete
from fetchmetrics.DOG_Dog_Temp
;
select COUNT(*)
from fetchmetrics.DOG_Dog_Temp
;
select
*
-- COUNT(*)
-- delete
from fetchmetrics.DOG_Dog
;
select COUNT(*)
from fetchmetrics.DOG_Dog
;
*/

View File

@@ -15,8 +15,9 @@ BEGIN
DECLARE v_can_create BIT;
DECLARE v_code_type_error_bad_data VARCHAR(100);
DECLARE v_id_access_level_edit INT;
DECLARE v_id_access_level_view INT;
DECLARE v_id_change_set INT;
DECLARE v_id_permission_dog_new INT;
DECLARE v_id_permission_command_edit INT;
DECLARE v_id_type_error_bad_data INT;
DECLARE v_time_start TIMESTAMP(6);
@@ -72,8 +73,9 @@ BEGIN
SET v_time_start := CURRENT_TIMESTAMP(6);
SET v_code_type_error_bad_data := 'BAD_DATA';
SET v_id_type_error_bad_data := (SELECT ERROR_TYPE.id_type FROM fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_bad_data LIMIT 1);
SET v_id_permission_dog_new := (SELECT PERMISSION.id_permission FROM fetchmetrics.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_CREATE' LIMIT 1);
SET v_id_permission_command_edit := (SELECT PERMISSION.id_permission FROM fetchmetrics.DOG_Permission PERMISSION WHERE PERMISSION.code = 'COMMAND_EDIT' LIMIT 1);
SET v_id_access_level_edit := (SELECT ACCESS_LEVEL.id_access_level FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'EDIT' LIMIT 1);
SET v_id_access_level_view := (SELECT ACCESS_LEVEL.id_access_level FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'VIEW' LIMIT 1);
CALL fetchmetrics.p_core_validate_guid ( a_guid );
@@ -123,6 +125,7 @@ BEGIN
, COALESCE(
COMMAND_CATEGORY_T.code
, COMMAND_CATEGORY.code
, UPPER(COMMAND_CATEGORY_T.name)
) AS code
, COALESCE(
COMMAND_CATEGORY_T.name
@@ -361,7 +364,7 @@ BEGIN
, 1 -- a_require_any_id_search_filters_met
, 0 -- a_require_all_non_id_search_filters_met
, 0 -- a_require_any_non_id_search_filters_met
, v_id_permission_dog_new -- ids_permission
, v_id_permission_command_edit -- ids_permission
, v_id_access_level_edit -- ids_access_level
, 0 -- a_show_errors
, 0 -- a_debug
@@ -435,25 +438,64 @@ BEGIN
, COMMAND_CATEGORY.id_change_set = v_id_change_set
;
INSERT INTO fetchmetrics.DOG_Command_Category (
code
, name
, active
, id_user_created_by
, created_on
)
SELECT
t_COMMAND_CATEGORY.code AS code
, t_COMMAND_CATEGORY.name AS name
, t_COMMAND_CATEGORY.active AS active
, a_id_user AS created_by
, v_time_start AS created_on
FROM tmp_Command_Category t_COMMAND_CATEGORY
WHERE
t_COMMAND_CATEGORY.is_new = 1
AND t_COMMAND_CATEGORY.active = 1
;
IF EXISTS (
SELECT *
FROM tmp_Command_Category t_COMMAND_CATEGORY
WHERE
t_COMMAND_CATEGORY.is_new = 1
AND t_COMMAND_CATEGORY.active = 1
LIMIT 1
) THEN
INSERT INTO fetchmetrics.DOG_Command_Category (
id_temp
, code
, name
, active
, id_user_created_by
, created_on
)
SELECT
t_COMMAND_CATEGORY.id_temp AS id_temp
, t_COMMAND_CATEGORY.code AS code
, t_COMMAND_CATEGORY.name AS name
, t_COMMAND_CATEGORY.active AS active
, a_id_user AS created_by
, v_time_start AS created_on
FROM tmp_Command_Category t_COMMAND_CATEGORY
WHERE
t_COMMAND_CATEGORY.is_new = 1
AND t_COMMAND_CATEGORY.active = 1
;
UPDATE tmp_Command_Category t_COMMAND_CATEGORY
INNER JOIN fetchmetrics.DOG_Command_Category COMMAND_CATEGORY ON t_COMMAND_CATEGORY.id_temp = COMMAND_CATEGORY.id_temp
SET t_COMMAND_CATEGORY.id_command_category = COMMAND_CATEGORY.id_command_category
WHERE
t_COMMAND_CATEGORY.is_new = 1
AND t_COMMAND_CATEGORY.active = 1
;
INSERT INTO fetchmetrics.DOG_Command_Category_User_Link (
id_command_category
, id_user
, id_access_level
, active
, id_user_created_by
, created_on
)
SELECT
t_COMMAND_CATEGORY.id_command_category
, a_id_user
, v_id_access_level_view
, 1 -- active
, a_id_user AS created_by
, v_time_start AS created_on
FROM tmp_Command_Category t_COMMAND_CATEGORY
WHERE
t_COMMAND_CATEGORY.is_new = 1
AND t_COMMAND_CATEGORY.active = 1
;
END IF;
COMMIT;
END IF;
@@ -484,6 +526,7 @@ BEGIN
SELECT * FROM tmp_Command_Category;
END IF;
DROP TEMPORARY TABLE tmp_Command_Category_Copy;
DROP TEMPORARY TABLE tmp_Command_Category;
DROP TEMPORARY TABLE tmp_Msg_Error;

View File

@@ -78,20 +78,21 @@ BEGIN
FROM fetchmetrics.CORE_Msg_Error_Type MET
WHERE MET.code = 'MYSQL_ERROR'
;
SELECT
t_ERROR.id_error
, t_ERROR.id_type
, t_ERROR.code
, ERROR_TYPE.name
, ERROR_TYPE.description
, ERROR_TYPE.is_breaking_error
, ERROR_TYPE.background_colour
, ERROR_TYPE.text_colour
, t_ERROR.msg
FROM tmp_Msg_Error_Calc_Command t_ERROR
INNER JOIN fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type
;
IF a_show_errors = 1 THEN
SELECT
t_ERROR.id_error
, t_ERROR.id_type
, t_ERROR.code
, ERROR_TYPE.name
, ERROR_TYPE.description
, ERROR_TYPE.is_breaking_error
, ERROR_TYPE.background_colour
, ERROR_TYPE.text_colour
, t_ERROR.msg
FROM tmp_Msg_Error_Calc_Command t_ERROR
INNER JOIN fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type
;
END IF;
DROP TABLE IF EXISTS tmp_Msg_Error_Calc_Command;
END;
@@ -343,7 +344,7 @@ BEGIN
, v_id_permission_command_view -- ids_permission
, v_id_access_level_view -- ids_access_level
, 0 -- a_show_errors
, a_debug -- a_debug
, 0 -- a_debug
;
END IF;
@@ -362,7 +363,7 @@ BEGIN
, v_id_permission_command_view -- ids_permission
, v_id_access_level_view -- ids_access_level
, 0 -- a_show_errors
, a_debug -- a_debug
, 0 -- a_debug
);
INSERT INTO tmp_Calc_User_Access_Calc_Command (
@@ -410,7 +411,7 @@ BEGIN
-- Command Categories
IF v_has_filter_command_category_id = 1 THEN
CALL fetchmetrics.p_core_split(a_guid, a_ids_command_category, ',', a_debug);
CALL fetchmetrics.p_core_split(a_guid, a_ids_command_category, ',', 0);
SET sql_mode = '';
@@ -431,7 +432,7 @@ BEGIN
END IF;
IF v_has_filter_command_category_name = 1 THEN
CALL fetchmetrics.p_core_split(a_guid, a_names_command_category, ',', a_debug);
CALL fetchmetrics.p_core_split(a_guid, a_names_command_category, ',', 0);
SET sql_mode = '';
@@ -584,7 +585,7 @@ BEGIN
(
v_has_filter_command_category_name = 0
)
OR COMMAND_CATEGORY_FILTERS.does_meet_name_filter = 1
OR COMMAND_CATEGORY_FILTERS.does_meet_name_filter = 1
THEN 1 ELSE 0 END AS does_meet_non_id_filters
FROM fetchmetrics.DOG_Command_Category COMMAND_CATEGORY
LEFT JOIN Command_Category_Filters COMMAND_CATEGORY_FILTERS ON COMMAND_CATEGORY.id_command_category = COMMAND_CATEGORY_FILTERS.id_command_category
@@ -617,7 +618,7 @@ BEGIN
-- Commands
IF v_has_filter_command_id = 1 THEN
CALL fetchmetrics.p_core_split(a_guid, a_ids_command, ',', a_debug);
CALL fetchmetrics.p_core_split(a_guid, a_ids_command, ',', 0);
SET sql_mode = '';
@@ -638,7 +639,7 @@ BEGIN
END IF;
IF v_has_filter_command_name = 1 THEN
CALL fetchmetrics.p_core_split(a_guid, a_names_command, ',', a_debug);
CALL fetchmetrics.p_core_split(a_guid, a_names_command, ',', 0);
SET sql_mode = '';
@@ -659,7 +660,7 @@ BEGIN
END IF;
IF v_has_filter_command_hand_signal_default_description = 1 THEN
CALL fetchmetrics.p_core_split(a_guid, a_hand_signal_default_descriptions_command, ',', a_debug);
CALL fetchmetrics.p_core_split(a_guid, a_hand_signal_default_descriptions_command, ',', 0);
SET sql_mode = '';
@@ -680,7 +681,7 @@ BEGIN
END IF;
IF v_has_filter_command_notes = 1 THEN
CALL fetchmetrics.p_core_split(a_guid, a_notes_command, ',', a_debug);
CALL fetchmetrics.p_core_split(a_guid, a_notes_command, ',', 0);
SET sql_mode = '';
@@ -958,14 +959,13 @@ BEGIN
DELETE t_COMMAND
FROM tmp_Command_Calc_Command t_COMMAND
LEFT JOIN tmp_Command_Category_Calc_Command t_COMMAND_CATEGORY ON t_COMMAND.id_command_category = t_COMMAND_CATEGORY.id_command_category
LEFT JOIN fetchmetrics.DOG_Command_Category_User_Link COMMAND_CATEGORY_USER_LINK ON t_COMMAND_CATEGORY.id_command_category = COMMAND_CATEGORY_USER_LINK.id_command_category
LEFT JOIN tmp_Calc_User_Access_Calc_Command t_USER ON COMMAND_CATEGORY_USER_LINK.id_user = t_USER.id_user
LEFT JOIN tmp_Calc_User_Access_Calc_Command t_USER ON t_COMMAND_CATEGORY.id_user = t_USER.id_user
WHERE
(
a_require_all_id_search_filters_met = 1
AND (
t_COMMAND.does_meet_id_filters = 0
OR t_COMMAND_CATEGORY.does_meet_id_filters = 0
OR IFNULL(t_COMMAND_CATEGORY.does_meet_id_filters, 0) = 0
OR IFNULL(t_USER.does_meet_id_filters, 0) = 0
)
)
@@ -973,24 +973,24 @@ BEGIN
a_require_all_non_id_search_filters_met = 1
AND (
t_COMMAND.does_meet_non_id_filters = 0
OR t_COMMAND_CATEGORY.does_meet_non_id_filters = 0
OR IFNULL(t_COMMAND_CATEGORY.does_meet_non_id_filters, 0) = 0
OR IFNULL(t_USER.does_meet_non_id_filters, 0) = 0
)
)
OR (
a_require_any_id_search_filters_met = 1
AND t_COMMAND.does_meet_id_filters = 0
AND t_COMMAND_CATEGORY.does_meet_id_filters = 0
AND IFNULL(t_COMMAND_CATEGORY.does_meet_id_filters, 0) = 0
AND IFNULL(t_USER.does_meet_id_filters, 0) = 0
)
OR (
a_require_any_non_id_search_filters_met = 1
AND t_COMMAND.does_meet_non_id_filters = 0
AND t_COMMAND_CATEGORY.does_meet_non_id_filters = 0
AND IFNULL(t_COMMAND_CATEGORY.does_meet_non_id_filters, 0) = 0
AND IFNULL(t_USER.does_meet_non_id_filters, 0) = 0
)
;
/*
WITH
Category_And_Best_Command AS (
SELECT
@@ -1000,58 +1000,9 @@ BEGIN
FROM tmp_Command_Calc_Command t_COMMAND
GROUP BY t_COMMAND.id_command_category
)
/*
, Command_Category_Access AS (
SELECT
COMMAND_CATEGORY.id_command_category
, CASE WHEN
v_is_super_user = 1
OR (
t_USER.id_user IS NOT NULL
AND IFNULL(ACCESS_LEVEL.priority, v_priority_access_level_none) <= v_priority_access_level_view
)
THEN 1 ELSE 0 END AS can_user_access_command_category
, ROW_NUMBER() OVER (
PARTITION BY COMMAND_CATEGORY.id_command_category
ORDER BY CASE WHEN
v_is_super_user = 1
OR (
t_USER.id_user IS NOT NULL
AND IFNULL(ACCESS_LEVEL.priority, v_priority_access_level_none) <= v_priority_access_level_view
)
THEN 1 ELSE 0 END DESC
) AS index_link_in_command_category
, t_USER.does_meet_id_filters AS does_user_meet_id_filters
, t_USER.does_meet_non_id_filters AS does_user_meet_non_id_filters
FROM fetchmetrics.DOG_Command_Category COMMAND_CATEGORY
LEFT JOIN fetchmetrics.DOG_Command_Category_User_Link COMMAND_CATEGORY_USER_LINK
ON COMMAND_CATEGORY.id_command_category = COMMAND_CATEGORY_USER_LINK.id_command_category
AND (
(
a_get_inactive_command_category = 1
AND a_get_inactive_user = 1
)
OR COMMAND_CATEGORY_USER_LINK.active = 1
)
LEFT JOIN tmp_Calc_User_Access_Calc_Command t_USER
ON COMMAND_CATEGORY_USER_LINK.id_user = t_USER.id_user
AND (
a_get_inactive_user = 1
OR t_USER.active = 1
)
LEFT JOIN fetchmetrics.DOG_Access_Level ACCESS_LEVEL
ON COMMAND_CATEGORY_USER_LINK.id_access_level = ACCESS_LEVEL.id_access_level
AND ACCESS_LEVEL.active = 1
)
*/
SELECT *
DELETE t_COMMAND_CATEGORY -- SELECT *
FROM tmp_Command_Category_Calc_Command t_COMMAND_CATEGORY
LEFT JOIN Category_And_Best_Command CATEGORY_BEST ON t_COMMAND_CATEGORY.id_command_category = CATEGORY_BEST.id_command_category
/*
LEFT JOIN Command_Category_Access COMMAND_CATEGORY_ACCESS
ON t_COMMAND_CATEGORY.id_command_category = COMMAND_CATEGORY_ACCESS.id_command_category
AND COMMAND_CATEGORY_ACCESS.index_link_in_command_category = 1
*/
LEFT JOIN tmp_Calc_User_Access_Calc_Command t_USER ON t_COMMAND_CATEGORY.id_user = t_USER.id_user
WHERE
(
@@ -1083,16 +1034,14 @@ BEGIN
AND IFNULL(t_USER.does_meet_non_id_filters, 0) = 0
)
;
*/
END IF;
IF a_debug = 1 THEN
SELECT 'After filter Commands and Categories';
-- SELECT * FROM tmp_Command_Category_Calc_Command;
-- SELECT * FROM tmp_Command_Calc_Command;
END IF;
IF a_debug = 1 THEN
SELECT 'Before non-permitted data deletion';
SELECT '(&) Before non-permitted data deletion';
SELECT * FROM tmp_Command_Category_Calc_Command;
SELECT * FROM tmp_Command_Calc_Command;
SELECT * FROM tmp_Msg_Error_Calc_Command;

View File

@@ -450,26 +450,66 @@ BEGIN
, LOCATIONS.id_change_set = v_id_change_set
;
INSERT INTO fetchmetrics.DOG_Location (
id_location_parent
, code
, name
, active
, id_user_created_by
, created_on
)
SELECT
t_LOCATIONS.id_location_parent AS id_location_parent
, t_LOCATIONS.code AS code
, t_LOCATIONS.name AS name
, t_LOCATIONS.active AS active
, a_id_user AS created_by
, v_time_start AS created_on
FROM tmp_Location t_LOCATIONS
WHERE
t_LOCATIONS.is_new = 1
AND t_LOCATIONS.active = 1
;
IF EXISTS (
SELECT *
FROM tmp_Location t_LOCATIONS
WHERE
t_LOCATIONS.is_new = 1
AND t_LOCATIONS.active = 1
LIMIT 1
) THEN
INSERT INTO fetchmetrics.DOG_Location (
id_temp
, id_location_parent
, code
, name
, active
, id_user_created_by
, created_on
)
SELECT
t_LOCATIONS.id_temp
, t_LOCATIONS.id_location_parent AS id_location_parent
, t_LOCATIONS.code AS code
, t_LOCATIONS.name AS name
, t_LOCATIONS.active AS active
, a_id_user AS created_by
, v_time_start AS created_on
FROM tmp_Location t_LOCATIONS
WHERE
t_LOCATIONS.is_new = 1
AND t_LOCATIONS.active = 1
;
UPDATE tmp_Location t_LOCATIONS
INNER JOIN fetchmetrics.DOG_Location LOCATIONS ON t_LOCATIONS.id_temp = LOCATIONS.id_temp
SET t_LOCATIONS.id_location = LOCATIONS.id_location
WHERE
t_LOCATIONS.is_new = 1
AND t_LOCATIONS.active = 1
;
INSERT INTO fetchmetrics.DOG_Location_User_Link (
id_location
, id_user
, id_access_level
, active
, id_user_created_by
, created_on
)
SELECT
t_LOCATIONS.id_location
, a_id_user
, v_id_access_level_view
, 1 -- active
, a_id_user AS created_by
, v_time_start AS created_on
FROM tmp_Location t_LOCATIONS
WHERE
t_LOCATIONS.is_new = 1
AND t_LOCATIONS.active = 1
;
END IF;
COMMIT;
END IF;

View File

@@ -58,6 +58,8 @@ BEGIN
;
END;
SET a_id_user := NULLIF(a_id_user, 0);
SET v_time_start := CURRENT_TIMESTAMP(6);
SET v_code_type_error_bad_data := 'BAD_DATA';
SET v_id_type_error_bad_data := (SELECT id_type FROM fetchmetrics.CORE_Msg_Error_Type WHERE code = v_code_type_error_bad_data LIMIT 1);

View File

@@ -13,8 +13,9 @@ h2 {
.container.save.button-cancel {
position: fixed;
top: 10vh;
right: 10vh;
top: 1vh;
right: 5vh;
z-index: 2;
}
table.table-main tbody {

View File

@@ -3,6 +3,13 @@
display: none;
}
.container.save.button-cancel {
position: fixed;
top: 1vh;
right: 5vh;
z-index: 2;
}
.container-input {
margin: 0 auto;
}

View File

@@ -79,8 +79,9 @@ h2 {
.container.save.button-cancel {
position: fixed;
top: 10vh;
right: 10vh;
top: 1vh;
right: 5vh;
z-index: 2;
}
table.table-main tbody {

File diff suppressed because one or more lines are too long

View File

@@ -70,6 +70,13 @@
display: none;
}
.container.save.button-cancel {
position: fixed;
top: 1vh;
right: 5vh;
z-index: 2;
}
.container-input {
margin: 0 auto;
}

View File

@@ -1 +1 @@
{"version":3,"file":"css/user_company.bundle.css","mappings":";;AAEA;IACI,gBAAgB;IAChB,oBAAoB;IACpB,cAAc;AAClB;;;AAGA,iBAAiB;AACjB;IACI,sBAAsB;AAC1B;;AAEA,eAAe;AACf;IACI,gBAAgB;IAChB,cAAc;IACd,SAAS;IACT,SAAS;IACT,qBAAqB;IACrB,2BAA2B;IAC3B,aAAa;IACb,sBAAsB;IACtB,uBAAuB;IACvB,gBAAgB;IAChB,kBAAkB;IAClB,kBAAkB;IAClB,WAAW;IACX,yBAAyB;AAC7B;;;AAGA,WAAW;AACX;IACI,gBAAgB;IAChB,kBAAkB;IAClB,SAAS;IACT,eAAe;IACf,gBAAgB;IAChB,sCAAsC;IACtC,kBAAkB;IAClB,SAAS;IACT,WAAW;AACf;;AAEA;IACI;QACI,eAAe;QACf,mBAAmB;QACnB,eAAe;QACf,WAAW;QACX,eAAe;IACnB;IACA;QACI,eAAe;IACnB;IACA;QACI,cAAc;IAClB;AACJ;;AAEA;IACI,UAAU;IACV,SAAS;AACb,C;;;AChEA;IACI,aAAa;AACjB;;AAEA;IACI,cAAc;AAClB;AACA;IACI,gBAAgB;IAChB,gBAAgB;AACpB;;AAEA;IACI,YAAY;AAChB,C","sources":["webpack://app/./static/css/sections/dog.css","webpack://app/./static/css/pages/user/company.css"],"sourcesContent":["\n\n.container-input > input {\n padding: 0vh 1vh;\n border-radius: 0.5vh;\n max-width: 7vh;\n}\n\n\n/* Right column */\n.rightcolumn {\n min-width: fit-content;\n}\n\n/* Main Table */\n#pageBody {\n max-height: 88vh;\n padding: 0 5vw;\n margin: 0;\n border: 0;\n align-content: center;\n justify-content: flex-start;\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n overflow-y: auto;\n overflow-x: hidden;\n position: absolute;\n width: 90vw;\n color: var(--colour-text);\n}\n\n\n/* Footer */\n.footer {\n padding: 1vh 1vw;\n text-align: center;\n margin: 0;\n max-height: 5vh;\n overflow-y: auto;\n background-color: var(--colour-accent);\n position: absolute;\n bottom: 0;\n width: 98vw;\n}\n\n@media screen and (max-width: 400px) {\n .footer {\n max-height: 8vh;\n padding: 0.75vh 2vw;\n font-size: 10px; \n width: 96vw;\n max-width: 96vw;\n }\n .footer > h4 {\n font-size: 10px;\n }\n .footer > h5 {\n font-size: 9px;\n }\n}\n\n.footer > h4, h5 {\n padding: 0;\n margin: 0;\n}","\n#formFilters {\n display: none;\n}\n\n.container-input {\n margin: 0 auto;\n}\n.container-input input {\n max-width: 250px;\n padding: 1vh 1vw;\n}\n\n.container-input textarea {\n width: 300px;\n}"],"names":[],"sourceRoot":""}
{"version":3,"file":"css/user_company.bundle.css","mappings":";;AAEA;IACI,gBAAgB;IAChB,oBAAoB;IACpB,cAAc;AAClB;;;AAGA,iBAAiB;AACjB;IACI,sBAAsB;AAC1B;;AAEA,eAAe;AACf;IACI,gBAAgB;IAChB,cAAc;IACd,SAAS;IACT,SAAS;IACT,qBAAqB;IACrB,2BAA2B;IAC3B,aAAa;IACb,sBAAsB;IACtB,uBAAuB;IACvB,gBAAgB;IAChB,kBAAkB;IAClB,kBAAkB;IAClB,WAAW;IACX,yBAAyB;AAC7B;;;AAGA,WAAW;AACX;IACI,gBAAgB;IAChB,kBAAkB;IAClB,SAAS;IACT,eAAe;IACf,gBAAgB;IAChB,sCAAsC;IACtC,kBAAkB;IAClB,SAAS;IACT,WAAW;AACf;;AAEA;IACI;QACI,eAAe;QACf,mBAAmB;QACnB,eAAe;QACf,WAAW;QACX,eAAe;IACnB;IACA;QACI,eAAe;IACnB;IACA;QACI,cAAc;IAClB;AACJ;;AAEA;IACI,UAAU;IACV,SAAS;AACb,C;;;AChEA;IACI,aAAa;AACjB;;AAEA;IACI,eAAe;IACf,QAAQ;IACR,UAAU;IACV,UAAU;AACd;;AAEA;IACI,cAAc;AAClB;AACA;IACI,gBAAgB;IAChB,gBAAgB;AACpB;;AAEA;IACI,YAAY;AAChB,C","sources":["webpack://app/./static/css/sections/dog.css","webpack://app/./static/css/pages/user/company.css"],"sourcesContent":["\n\n.container-input > input {\n padding: 0vh 1vh;\n border-radius: 0.5vh;\n max-width: 7vh;\n}\n\n\n/* Right column */\n.rightcolumn {\n min-width: fit-content;\n}\n\n/* Main Table */\n#pageBody {\n max-height: 88vh;\n padding: 0 5vw;\n margin: 0;\n border: 0;\n align-content: center;\n justify-content: flex-start;\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n overflow-y: auto;\n overflow-x: hidden;\n position: absolute;\n width: 90vw;\n color: var(--colour-text);\n}\n\n\n/* Footer */\n.footer {\n padding: 1vh 1vw;\n text-align: center;\n margin: 0;\n max-height: 5vh;\n overflow-y: auto;\n background-color: var(--colour-accent);\n position: absolute;\n bottom: 0;\n width: 98vw;\n}\n\n@media screen and (max-width: 400px) {\n .footer {\n max-height: 8vh;\n padding: 0.75vh 2vw;\n font-size: 10px; \n width: 96vw;\n max-width: 96vw;\n }\n .footer > h4 {\n font-size: 10px;\n }\n .footer > h5 {\n font-size: 9px;\n }\n}\n\n.footer > h4, h5 {\n padding: 0;\n margin: 0;\n}","\n#formFilters {\n display: none;\n}\n\n.container.save.button-cancel {\n position: fixed;\n top: 1vh;\n right: 5vh;\n z-index: 2;\n}\n\n.container-input {\n margin: 0 auto;\n}\n.container-input input {\n max-width: 250px;\n padding: 1vh 1vw;\n}\n\n.container-input textarea {\n width: 300px;\n}"],"names":[],"sourceRoot":""}