From e131819f350497d8164f7795774ce857a7e301ef Mon Sep 17 00:00:00 2001 From: samuelgfeller Date: Thu, 25 Apr 2024 13:03:08 +0200 Subject: [PATCH] Updated comments & code cleanup [SLE-192] --- LICENCE.txt => LICENSE | 0 public/assets/error/ExpletusSans.ttf | Bin 65812 -> 0 bytes public/assets/error/error-details.css | 154 -------------- public/assets/error/error-details.js | 74 ------- public/assets/favicon.ico | Bin 125662 -> 0 bytes .../{default.js => initialization.js} | 0 public/favicon.ico | Bin 125662 -> 123168 bytes ...20_db_change_1359795189647891f_0c_989d.php | 73 ------- ...721_db_change_1316013665647f_42494524b.php | 40 ---- ...4558_db_change_536220501648848e_6254ad.php | 40 ---- ...04_db_change_14363394186526c_378afff_4.php | 124 ----------- ...55851_db_change_3897597653fd_2bba_05de.php | 28 --- ...219_db_change_861211597657836b_3e_7787.php | 25 --- ..._db_change_1527712828662a_71da_9af_9f.php} | 200 ++++++++++++------ resources/schema/schema.php | 175 +-------------- resources/schema/schema.sql | 12 +- 16 files changed, 154 insertions(+), 791 deletions(-) rename LICENCE.txt => LICENSE (100%) delete mode 100644 public/assets/error/ExpletusSans.ttf delete mode 100644 public/assets/error/error-details.css delete mode 100644 public/assets/error/error-details.js delete mode 100644 public/assets/favicon.ico rename public/assets/general/general-js/{default.js => initialization.js} (100%) delete mode 100644 resources/migrations/20230601124120_db_change_1359795189647891f_0c_989d.php delete mode 100644 resources/migrations/20230606142721_db_change_1316013665647f_42494524b.php delete mode 100644 resources/migrations/20230613104558_db_change_536220501648848e_6254ad.php delete mode 100644 resources/migrations/20231011154704_db_change_14363394186526c_378afff_4.php delete mode 100644 resources/migrations/20231030155851_db_change_3897597653fd_2bba_05de.php delete mode 100644 resources/migrations/20231212103219_db_change_861211597657836b_3e_7787.php rename resources/migrations/{20230112122452_db_change_178208678263bffc_14e_3711.php => 20240425150810_db_change_1527712828662a_71da_9af_9f.php} (82%) diff --git a/LICENCE.txt b/LICENSE similarity index 100% rename from LICENCE.txt rename to LICENSE diff --git a/public/assets/error/ExpletusSans.ttf b/public/assets/error/ExpletusSans.ttf deleted file mode 100644 index 1e4b56d9cc56947312469fc0e010ec8195bd6261..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 65812 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 APXGV_ diff --git a/public/assets/error/error-details.css b/public/assets/error/error-details.css deleted file mode 100644 index 55117ec5..00000000 --- a/public/assets/error/error-details.css +++ /dev/null @@ -1,154 +0,0 @@ -@font-face { - font-family: Poppins; - src: url(Poppins-Regular.ttf); - font-weight: normal; -} - -/*mobile first min-width sets base and content is adapted to computers.*/ -@media (min-width: 100px) { - - * { - overflow-wrap: anywhere; - } - - body { - margin: 0; - background: #ffd9d0; - font-family: Poppins, Geneva, AppleGothic, sans-serif; - } - - body.warning { - background: #ffead0; - } - - body.error { - background: #ffd9d0; - } - - #title-div { - padding: 5px 10%; - color: black; - background: tomato; - border-radius: 0 35px; - box-shadow: 0 0 17px tomato; - box-sizing: border-box; - margin: 30px 0; - font-size: 0.8em; - } - - #title-div h1 { - margin-top: 4px; - } - - #title-div.warning { - background: orange; - box-shadow: 0 0 17px orange; - } - - #title-div.error { - background: tomato; - box-shadow: 0 0 17px tomato; - } - - #first-path-chunk { - font-size: 0.7em; - } - - #trace-div { - font-size: 0.8em; - margin: auto auto 40px; - min-width: 350px; - padding: 20px; - background: #ff9e88; - border-radius: 0 35px; - box-shadow: 0 0 10px #ff856e; - width: 90%; - } - - #trace-div.warning { - background: #ffc588; - box-shadow: 0 0 10px #ffad6e; - } - - #trace-div.error { - background: #ff9e88; - box-shadow: 0 0 10px #ff856e; - } - - #trace-div h2 { - margin-top: 0; - padding-top: 19px; - text-align: center; - } - - #trace-div table { - border-collapse: collapse; - width: 100%; - overflow-x: auto; - } - - #trace-div table td, #trace-div table th { /*border-top: 6px solid red;*/ - padding: 8px; - text-align: left; - } - - #trace-div table tr td:nth-child(3) { - min-width: 100px; - } - - #num-th { - font-size: 1.3em; - color: #a46856; - margin-right: 50px; - } - - .non-vendor { - font-weight: bold; - font-size: 1.2em; - } - - .non-vendor .lineSpan { - font-weight: bold; - color: #b00000; - font-size: 1.1em; - } - - .is-vendor { - font-weight: normal; - } - - .args-span { - color: #395186; - cursor: pointer; - } - - #exception-name { - float: right - } - - .function-td { - font-size: 0.9em; - } -} - -@media (min-width: 641px) { - #trace-div { - width: 80%; - } -} -@media (min-width: 810px) { - #title-div { - margin: 30px; - } - #trace-div table tr td:first-child, #trace-div table tr th:first-child { - padding-left: 20px; - } - #title-div{ - font-size: 1em; - } -} -@media (min-width: 1000px) { - #trace-div { - font-size: 1em; - } -} \ No newline at end of file diff --git a/public/assets/error/error-details.js b/public/assets/error/error-details.js deleted file mode 100644 index 01d0416f..00000000 --- a/public/assets/error/error-details.js +++ /dev/null @@ -1,74 +0,0 @@ -window.onload = function () { - // Camel-wrap all stack trace file names - let elements = document.querySelectorAll('.stack-trace-file-name'); - elements.forEach(function (element) { - camelWrap(element); - }); - - // Show full details when clicking on an argument - // Select all spans with the class 'args-span' - var spans = document.querySelectorAll('.args-span'); - - // Add a click event listener to each span - spans.forEach(function (span) { - let spanExpanded = false; - let formatted; - span.addEventListener('click', function () { - // Get the full details from the data attribute - let fullDetails = this.getAttribute('data-full-details'); - // Display the full details and store the formatted text - if (!spanExpanded) { - formatted = this.innerText; - span.innerText = fullDetails; - } else { - span.innerText = formatted; - } - spanExpanded = !spanExpanded; - }); - }); -} - -/** - * This function is used to apply the camelWrapUnicode function to a given DOM node - * and then replace all zero-width spaces in the node's innerHTML with elements. - * The element represents a word break opportunity—a position within text where - * the browser may optionally break a line, though its line-breaking rules would not - * otherwise create a break at that location. - * - * @param {Node} node - The DOM node to which the camelWrapUnicode function should - * be applied and in whose innerHTML the zero-width spaces should be replaced - * with elements. - */ -function camelWrap(node) { - camelWrapUnicode(node); - node.innerHTML = node.innerHTML.replace(/\u200B/g, ""); -} - -/** - * This function is used to insert a zero-width space before each uppercase letter in - * a camelCase string. - * It does this by recursively traversing the DOM tree starting from the given node. - * For each text node it finds, it replaces the node's value with a new string where - * a zero-width space has been inserted before each uppercase letter. - * - * Source: http://heap.ch/blog/2016/01/19/camelwrap/ - * @param {Node} node - The node from where to start the DOM traversal. - */ -function camelWrapUnicode(node) { - // Start from the first child of the given node and continue to the next sibling until there are no more siblings. - for (node = node.firstChild; node; node = node.nextSibling) { - // If the current node is a text node, replace its value. - if (node.nodeType === Node.TEXT_NODE) { - // Replace the node's value with a new string where a zero-width space has been inserted before each uppercase letter. - // This is done by first matching any word character or colon that is repeated 18 or more times, and for each match, - // a new string is returned where a zero-width space has been inserted before each uppercase letter. - // The same is done by matching any dot character, but without the repetition requirement. - node.nodeValue = node.nodeValue.replace(/[\w:]{18,}/g, function (str) { - return str.replace(/([a-z])([A-Z])/g, "$1\u200B$2"); - }); - } else { - // If the current node is not a text node, continue the traversal from this node. - camelWrapUnicode(node); - } - } -} \ No newline at end of file diff --git a/public/assets/favicon.ico b/public/assets/favicon.ico deleted file mode 100644 index 472dc179c3d2d6e4ae823b1e32085748517e158b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 125662 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 diff --git a/public/assets/general/general-js/default.js b/public/assets/general/general-js/initialization.js similarity index 100% rename from public/assets/general/general-js/default.js rename to public/assets/general/general-js/initialization.js diff --git a/public/favicon.ico b/public/favicon.ico index 472dc179c3d2d6e4ae823b1e32085748517e158b..61f402267cd53d276e38705272f2d9289ca09dd7 100644 GIT binary patch literal 123168 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 diff --git a/resources/migrations/20230601124120_db_change_1359795189647891f_0c_989d.php b/resources/migrations/20230601124120_db_change_1359795189647891f_0c_989d.php deleted file mode 100644 index 8be8d186..00000000 --- a/resources/migrations/20230601124120_db_change_1359795189647891f_0c_989d.php +++ /dev/null @@ -1,73 +0,0 @@ -table('note', [ - 'id' => false, - 'primary_key' => ['id'], - 'engine' => 'InnoDB', - 'encoding' => 'utf8', - 'collation' => 'utf8_general_ci', - 'comment' => '', - 'row_format' => 'DYNAMIC', - ]) - ->changeColumn('updated_at', 'datetime', [ - 'null' => false, - 'default' => 'CURRENT_TIMESTAMP', - 'after' => 'hidden', - ]) - ->save(); - $this->table('client', [ - 'id' => false, - 'primary_key' => ['id'], - 'engine' => 'InnoDB', - 'encoding' => 'utf8mb4', - 'collation' => 'utf8mb4_unicode_ci', - 'comment' => 'Advisors help and consult clients', - 'row_format' => 'DYNAMIC', - ]) - ->changeColumn('updated_at', 'datetime', [ - 'null' => false, - 'default' => 'CURRENT_TIMESTAMP', - 'after' => 'assigned_at', - ]) - ->save(); - $this->table('user', [ - 'id' => false, - 'primary_key' => ['id'], - 'engine' => 'InnoDB', - 'encoding' => 'utf8mb4', - 'collation' => 'utf8mb4_unicode_ci', - 'comment' => '', - 'row_format' => 'DYNAMIC', - ]) - ->changeColumn('updated_at', 'datetime', [ - 'null' => true, - 'default' => 'CURRENT_TIMESTAMP', - 'after' => 'password_hash', - ]) - ->save(); - $this->table('user_activity', [ - 'id' => false, - 'primary_key' => ['id'], - 'engine' => 'InnoDB', - 'encoding' => 'utf8mb4', - 'collation' => 'utf8mb4_unicode_ci', - 'comment' => '', - 'row_format' => 'DYNAMIC', - ]) - ->save(); - $this->table('user_verification', [ - 'id' => false, - 'primary_key' => ['id'], - 'engine' => 'InnoDB', - 'encoding' => 'utf8mb4', - 'collation' => 'utf8mb4_unicode_ci', - 'comment' => '', - 'row_format' => 'DYNAMIC', - ]) - ->save(); - } -} diff --git a/resources/migrations/20230606142721_db_change_1316013665647f_42494524b.php b/resources/migrations/20230606142721_db_change_1316013665647f_42494524b.php deleted file mode 100644 index e5af1c60..00000000 --- a/resources/migrations/20230606142721_db_change_1316013665647f_42494524b.php +++ /dev/null @@ -1,40 +0,0 @@ -table('user', [ - 'id' => false, - 'primary_key' => ['id'], - 'engine' => 'InnoDB', - 'encoding' => 'utf8mb4', - 'collation' => 'utf8mb4_unicode_ci', - 'comment' => '', - 'row_format' => 'DYNAMIC', - ]) - ->addColumn('theme', 'enum', [ - 'null' => true, - 'default' => 'light', - 'limit' => 5, - 'values' => ['light', 'dark'], - 'after' => 'password_hash', - ]) - ->changeColumn('updated_at', 'datetime', [ - 'null' => true, - 'default' => 'CURRENT_TIMESTAMP', - 'after' => 'theme', - ]) - ->changeColumn('created_at', 'datetime', [ - 'null' => true, - 'default' => 'CURRENT_TIMESTAMP', - 'after' => 'updated_at', - ]) - ->changeColumn('deleted_at', 'datetime', [ - 'null' => true, - 'default' => null, - 'after' => 'created_at', - ]) - ->save(); - } -} diff --git a/resources/migrations/20230613104558_db_change_536220501648848e_6254ad.php b/resources/migrations/20230613104558_db_change_536220501648848e_6254ad.php deleted file mode 100644 index cd13f0fa..00000000 --- a/resources/migrations/20230613104558_db_change_536220501648848e_6254ad.php +++ /dev/null @@ -1,40 +0,0 @@ -table('user', [ - 'id' => false, - 'primary_key' => ['id'], - 'engine' => 'InnoDB', - 'encoding' => 'utf8mb4', - 'collation' => 'utf8mb4_unicode_ci', - 'comment' => '', - 'row_format' => 'DYNAMIC', - ]) - ->addColumn('language', 'enum', [ - 'null' => true, - 'default' => 'en_US', - 'limit' => 5, - 'values' => ['en_US', 'de_CH', 'fr_CH'], - 'after' => 'theme', - ]) - ->changeColumn('updated_at', 'datetime', [ - 'null' => true, - 'default' => 'CURRENT_TIMESTAMP', - 'after' => 'language', - ]) - ->changeColumn('created_at', 'datetime', [ - 'null' => true, - 'default' => 'CURRENT_TIMESTAMP', - 'after' => 'updated_at', - ]) - ->changeColumn('deleted_at', 'datetime', [ - 'null' => true, - 'default' => null, - 'after' => 'created_at', - ]) - ->save(); - } -} diff --git a/resources/migrations/20231011154704_db_change_14363394186526c_378afff_4.php b/resources/migrations/20231011154704_db_change_14363394186526c_378afff_4.php deleted file mode 100644 index e52ec86b..00000000 --- a/resources/migrations/20231011154704_db_change_14363394186526c_378afff_4.php +++ /dev/null @@ -1,124 +0,0 @@ -table('authentication_log', [ - 'id' => false, - 'primary_key' => ['id'], - 'engine' => 'InnoDB', - 'encoding' => 'utf8mb4', - 'collation' => 'utf8mb4_general_ci', - 'comment' => '', - 'row_format' => 'DYNAMIC', - ]) - ->addColumn('id', 'integer', [ - 'null' => false, - 'limit' => MysqlAdapter::INT_REGULAR, - 'identity' => true, - ]) - ->addColumn('user_id', 'integer', [ - 'null' => true, - 'default' => null, - 'limit' => MysqlAdapter::INT_REGULAR, - 'after' => 'id', - ]) - ->addColumn('email', 'string', [ - 'null' => true, - 'default' => null, - 'limit' => 254, - 'collation' => 'utf8mb4_general_ci', - 'encoding' => 'utf8mb4', - 'after' => 'user_id', - ]) - ->addColumn('ip_address', 'string', [ - 'null' => true, - 'default' => null, - 'limit' => 45, - 'collation' => 'utf8mb4_general_ci', - 'encoding' => 'utf8mb4', - 'after' => 'email', - ]) - ->addColumn('is_success', 'integer', [ - 'null' => true, - 'default' => null, - 'limit' => MysqlAdapter::INT_TINY, - 'after' => 'ip_address', - ]) - ->addColumn('created_at', 'datetime', [ - 'null' => true, - 'default' => 'CURRENT_TIMESTAMP', - 'after' => 'is_success', - ]) - ->addIndex(['user_id'], [ - 'name' => 'authentication_log_user_id_fk', - 'unique' => false, - ]) - ->create(); - $this->table('email_log', [ - 'id' => false, - 'primary_key' => ['id'], - 'engine' => 'InnoDB', - 'encoding' => 'utf8mb4', - 'collation' => 'utf8mb4_general_ci', - 'comment' => '', - 'row_format' => 'DYNAMIC', - ]) - ->addColumn('id', 'integer', [ - 'null' => false, - 'limit' => MysqlAdapter::INT_REGULAR, - 'identity' => true, - ]) - ->addColumn('user_id', 'integer', [ - 'null' => true, - 'default' => null, - 'limit' => MysqlAdapter::INT_REGULAR, - 'after' => 'id', - ]) - ->addColumn('from_email', 'string', [ - 'null' => true, - 'default' => null, - 'limit' => 254, - 'collation' => 'utf8mb4_general_ci', - 'encoding' => 'utf8mb4', - 'after' => 'user_id', - ]) - ->addColumn('to_email', 'string', [ - 'null' => true, - 'default' => null, - 'limit' => 254, - 'collation' => 'utf8mb4_general_ci', - 'encoding' => 'utf8mb4', - 'after' => 'from_email', - ]) - ->addColumn('other_recipient', 'string', [ - 'null' => true, - 'default' => null, - 'limit' => 1000, - 'collation' => 'utf8mb4_general_ci', - 'encoding' => 'utf8mb4', - 'after' => 'to_email', - ]) - ->addColumn('subject', 'string', [ - 'null' => true, - 'default' => null, - 'limit' => 998, - 'collation' => 'utf8mb4_general_ci', - 'encoding' => 'utf8mb4', - 'after' => 'other_recipient', - ]) - ->addColumn('created_at', 'datetime', [ - 'null' => true, - 'default' => 'CURRENT_TIMESTAMP', - 'after' => 'subject', - ]) - ->addIndex(['user_id'], [ - 'name' => 'email_log_user_id_fk', - 'unique' => false, - ]) - ->create(); - } -} diff --git a/resources/migrations/20231030155851_db_change_3897597653fd_2bba_05de.php b/resources/migrations/20231030155851_db_change_3897597653fd_2bba_05de.php deleted file mode 100644 index f6447a6e..00000000 --- a/resources/migrations/20231030155851_db_change_3897597653fd_2bba_05de.php +++ /dev/null @@ -1,28 +0,0 @@ -table('client', [ - 'id' => false, - 'primary_key' => ['id'], - 'engine' => 'InnoDB', - 'encoding' => 'utf8mb4', - 'collation' => 'utf8mb4_unicode_ci', - 'comment' => 'Advisors help and consult clients', - 'row_format' => 'DYNAMIC', - ]) - ->changeColumn('vigilance_level', 'enum', [ - 'null' => true, - 'default' => null, - 'limit' => 13, - 'values' => ['low', 'medium', 'high'], - 'after' => 'client_message', - ]) - ->save(); - $this->table('permission')->drop()->save(); - $this->table('user_request')->drop()->save(); - $this->table('user_role_to_permission')->drop()->save(); - } -} diff --git a/resources/migrations/20231212103219_db_change_861211597657836b_3e_7787.php b/resources/migrations/20231212103219_db_change_861211597657836b_3e_7787.php deleted file mode 100644 index 283b8d0a..00000000 --- a/resources/migrations/20231212103219_db_change_861211597657836b_3e_7787.php +++ /dev/null @@ -1,25 +0,0 @@ -table('client', [ - 'id' => false, - 'primary_key' => ['id'], - 'engine' => 'InnoDB', - 'encoding' => 'utf8mb4', - 'collation' => 'utf8mb4_unicode_ci', - 'comment' => 'Advisors help and consult clients', - 'row_format' => 'DYNAMIC', - ]) - ->changeColumn('vigilance_level', 'enum', [ - 'null' => true, - 'default' => null, - 'limit' => 6, - 'values' => ['low', 'medium', 'high'], - 'after' => 'client_message', - ]) - ->save(); - } -} diff --git a/resources/migrations/20230112122452_db_change_178208678263bffc_14e_3711.php b/resources/migrations/20240425150810_db_change_1527712828662a_71da_9af_9f.php similarity index 82% rename from resources/migrations/20230112122452_db_change_178208678263bffc_14e_3711.php rename to resources/migrations/20240425150810_db_change_1527712828662a_71da_9af_9f.php index 08daafc3..d26a0f3e 100644 --- a/resources/migrations/20230112122452_db_change_178208678263bffc_14e_3711.php +++ b/resources/migrations/20240425150810_db_change_1527712828662a_71da_9af_9f.php @@ -2,7 +2,7 @@ use Phinx\Db\Adapter\MysqlAdapter; -class DbChange178208678263bffc14e3711 extends Phinx\Migration\AbstractMigration +class DbChange1527712828662a71da9af9f extends Phinx\Migration\AbstractMigration { public function change() { @@ -52,8 +52,9 @@ public function change() 'after' => 'is_main', ]) ->addColumn('updated_at', 'datetime', [ - 'null' => false, - 'default' => 'CURRENT_TIMESTAMP', + 'null' => true, + 'default' => null, + 'update' => 'CURRENT_TIMESTAMP', 'after' => 'hidden', ]) ->addColumn('created_at', 'datetime', [ @@ -75,6 +76,120 @@ public function change() 'unique' => false, ]) ->create(); + $this->table('authentication_log', [ + 'id' => false, + 'primary_key' => ['id'], + 'engine' => 'InnoDB', + 'encoding' => 'utf8mb4', + 'collation' => 'utf8mb4_general_ci', + 'comment' => '', + 'row_format' => 'DYNAMIC', + ]) + ->addColumn('id', 'integer', [ + 'null' => false, + 'limit' => MysqlAdapter::INT_REGULAR, + 'identity' => true, + ]) + ->addColumn('user_id', 'integer', [ + 'null' => true, + 'default' => null, + 'limit' => MysqlAdapter::INT_REGULAR, + 'after' => 'id', + ]) + ->addColumn('email', 'string', [ + 'null' => true, + 'default' => null, + 'limit' => 254, + 'collation' => 'utf8mb4_general_ci', + 'encoding' => 'utf8mb4', + 'after' => 'user_id', + ]) + ->addColumn('ip_address', 'string', [ + 'null' => true, + 'default' => null, + 'limit' => 45, + 'collation' => 'utf8mb4_general_ci', + 'encoding' => 'utf8mb4', + 'after' => 'email', + ]) + ->addColumn('is_success', 'integer', [ + 'null' => true, + 'default' => null, + 'limit' => MysqlAdapter::INT_TINY, + 'after' => 'ip_address', + ]) + ->addColumn('created_at', 'datetime', [ + 'null' => true, + 'default' => 'CURRENT_TIMESTAMP', + 'after' => 'is_success', + ]) + ->addIndex(['user_id'], [ + 'name' => 'authentication_log_user_id_fk', + 'unique' => false, + ]) + ->create(); + $this->table('email_log', [ + 'id' => false, + 'primary_key' => ['id'], + 'engine' => 'InnoDB', + 'encoding' => 'utf8mb4', + 'collation' => 'utf8mb4_general_ci', + 'comment' => '', + 'row_format' => 'DYNAMIC', + ]) + ->addColumn('id', 'integer', [ + 'null' => false, + 'limit' => MysqlAdapter::INT_REGULAR, + 'identity' => true, + ]) + ->addColumn('user_id', 'integer', [ + 'null' => true, + 'default' => null, + 'limit' => MysqlAdapter::INT_REGULAR, + 'after' => 'id', + ]) + ->addColumn('from_email', 'string', [ + 'null' => true, + 'default' => null, + 'limit' => 254, + 'collation' => 'utf8mb4_general_ci', + 'encoding' => 'utf8mb4', + 'after' => 'user_id', + ]) + ->addColumn('to_email', 'string', [ + 'null' => true, + 'default' => null, + 'limit' => 254, + 'collation' => 'utf8mb4_general_ci', + 'encoding' => 'utf8mb4', + 'after' => 'from_email', + ]) + ->addColumn('other_recipient', 'string', [ + 'null' => true, + 'default' => null, + 'limit' => 1000, + 'collation' => 'utf8mb4_general_ci', + 'encoding' => 'utf8mb4', + 'after' => 'to_email', + ]) + ->addColumn('subject', 'string', [ + 'null' => true, + 'default' => null, + 'limit' => 998, + 'collation' => 'utf8mb4_general_ci', + 'encoding' => 'utf8mb4', + 'after' => 'other_recipient', + ]) + ->addColumn('created_at', 'datetime', [ + 'null' => true, + 'default' => 'CURRENT_TIMESTAMP', + 'after' => 'subject', + ]) + ->addIndex(['user_id'], [ + 'name' => 'email_log_user_id_fk', + 'unique' => false, + ]) + ->create(); $this->table('user_filter_setting', [ 'id' => false, 'primary_key' => ['user_id', 'filter_id', 'module'], @@ -209,7 +324,7 @@ public function change() ->addColumn('vigilance_level', 'enum', [ 'null' => true, 'default' => null, - 'limit' => 13, + 'limit' => 6, 'values' => ['low', 'medium', 'high'], 'after' => 'client_message', ]) @@ -232,8 +347,9 @@ public function change() 'after' => 'client_status_id', ]) ->addColumn('updated_at', 'datetime', [ - 'null' => false, - 'default' => 'CURRENT_TIMESTAMP', + 'null' => true, + 'default' => null, + 'update' => 'CURRENT_TIMESTAMP', 'after' => 'assigned_at', ]) ->addColumn('created_at', 'datetime', [ @@ -284,36 +400,6 @@ public function change() 'after' => 'name', ]) ->create(); - $this->table('permission', [ - 'id' => false, - 'primary_key' => ['id'], - 'engine' => 'InnoDB', - 'encoding' => 'utf8mb4', - 'collation' => 'utf8mb4_unicode_ci', - 'comment' => '', - 'row_format' => 'DYNAMIC', - ]) - ->addColumn('id', 'integer', [ - 'null' => false, - 'limit' => MysqlAdapter::INT_REGULAR, - 'identity' => true, - ]) - ->addColumn('action', 'string', [ - 'null' => false, - 'limit' => 200, - 'collation' => 'utf8mb4_unicode_ci', - 'encoding' => 'utf8mb4', - 'after' => 'id', - ]) - ->addColumn('module', 'string', [ - 'null' => false, - 'limit' => 100, - 'collation' => 'utf8mb4_unicode_ci', - 'encoding' => 'utf8mb4', - 'comment' => 'module where action takes place', - 'after' => 'action', - ]) - ->create(); $this->table('user', [ 'id' => false, 'primary_key' => ['id'], @@ -371,11 +457,26 @@ public function change() 'encoding' => 'utf8mb4', 'after' => 'email', ]) - ->addColumn('updated_at', 'datetime', [ + ->addColumn('theme', 'enum', [ 'null' => true, - 'default' => 'CURRENT_TIMESTAMP', + 'default' => 'light', + 'limit' => 5, + 'values' => ['light', 'dark'], 'after' => 'password_hash', ]) + ->addColumn('language', 'enum', [ + 'null' => true, + 'default' => 'en_US', + 'limit' => 5, + 'values' => ['en_US', 'de_CH', 'fr_CH'], + 'after' => 'theme', + ]) + ->addColumn('updated_at', 'datetime', [ + 'null' => true, + 'default' => null, + 'update' => 'CURRENT_TIMESTAMP', + 'after' => 'language', + ]) ->addColumn('created_at', 'datetime', [ 'null' => true, 'default' => 'CURRENT_TIMESTAMP', @@ -465,29 +566,6 @@ public function change() 'unique' => false, ]) ->create(); - $this->table('user_role_to_permission', [ - 'id' => false, - 'primary_key' => ['user_role_id', 'permission_id'], - 'engine' => 'InnoDB', - 'encoding' => 'utf8mb4', - 'collation' => 'utf8mb4_unicode_ci', - 'comment' => '', - 'row_format' => 'DYNAMIC', - ]) - ->addColumn('user_role_id', 'integer', [ - 'null' => false, - 'limit' => MysqlAdapter::INT_REGULAR, - ]) - ->addColumn('permission_id', 'integer', [ - 'null' => false, - 'limit' => MysqlAdapter::INT_REGULAR, - 'after' => 'user_role_id', - ]) - ->addIndex(['permission_id'], [ - 'name' => 'user_role_to_permission_permission_null_fk', - 'unique' => false, - ]) - ->create(); $this->table('user_verification', [ 'id' => false, 'primary_key' => ['id'], diff --git a/resources/schema/schema.php b/resources/schema/schema.php index 45379f89..3510c66e 100644 --- a/resources/schema/schema.php +++ b/resources/schema/schema.php @@ -171,8 +171,8 @@ 'TABLE_NAME' => 'note', 'COLUMN_NAME' => 'updated_at', 'ORDINAL_POSITION' => 7, - 'COLUMN_DEFAULT' => 'current_timestamp()', - 'IS_NULLABLE' => 'NO', + 'COLUMN_DEFAULT' => 'NULL', + 'IS_NULLABLE' => 'YES', 'DATA_TYPE' => 'datetime', 'CHARACTER_MAXIMUM_LENGTH' => NULL, 'CHARACTER_OCTET_LENGTH' => NULL, @@ -183,7 +183,7 @@ 'COLLATION_NAME' => NULL, 'COLUMN_TYPE' => 'datetime', 'COLUMN_KEY' => '', - 'EXTRA' => '', + 'EXTRA' => 'on update current_timestamp()', 'PRIVILEGES' => 'select,insert,update,references', 'COLUMN_COMMENT' => '', 'IS_GENERATED' => 'NEVER', @@ -1298,8 +1298,8 @@ 'TABLE_NAME' => 'client', 'COLUMN_NAME' => 'updated_at', 'ORDINAL_POSITION' => 14, - 'COLUMN_DEFAULT' => 'current_timestamp()', - 'IS_NULLABLE' => 'NO', + 'COLUMN_DEFAULT' => 'NULL', + 'IS_NULLABLE' => 'YES', 'DATA_TYPE' => 'datetime', 'CHARACTER_MAXIMUM_LENGTH' => NULL, 'CHARACTER_OCTET_LENGTH' => NULL, @@ -1310,7 +1310,7 @@ 'COLLATION_NAME' => NULL, 'COLUMN_TYPE' => 'datetime', 'COLUMN_KEY' => '', - 'EXTRA' => '', + 'EXTRA' => 'on update current_timestamp()', 'PRIVILEGES' => 'select,insert,update,references', 'COLUMN_COMMENT' => '', 'IS_GENERATED' => 'NEVER', @@ -1533,164 +1533,7 @@ ), 'foreign_keys' => NULL, ), - 'phinxlog' => - array ( - 'table' => - array ( - 'table_name' => 'phinxlog', - 'engine' => 'InnoDB', - 'table_comment' => '', - 'table_collation' => 'utf8mb4_unicode_ci', - 'character_set_name' => 'utf8mb4', - 'row_format' => 'Dynamic', - ), - 'columns' => - array ( - 'version' => - array ( - 'TABLE_CATALOG' => 'def', - 'TABLE_NAME' => 'phinxlog', - 'COLUMN_NAME' => 'version', - 'ORDINAL_POSITION' => 1, - 'COLUMN_DEFAULT' => NULL, - 'IS_NULLABLE' => 'NO', - 'DATA_TYPE' => 'bigint', - 'CHARACTER_MAXIMUM_LENGTH' => NULL, - 'CHARACTER_OCTET_LENGTH' => NULL, - 'NUMERIC_PRECISION' => 19, - 'NUMERIC_SCALE' => 0, - 'DATETIME_PRECISION' => NULL, - 'CHARACTER_SET_NAME' => NULL, - 'COLLATION_NAME' => NULL, - 'COLUMN_TYPE' => 'bigint(20)', - 'COLUMN_KEY' => 'PRI', - 'EXTRA' => '', - 'PRIVILEGES' => 'select,insert,update,references', - 'COLUMN_COMMENT' => '', - 'IS_GENERATED' => 'NEVER', - 'GENERATION_EXPRESSION' => NULL, - ), - 'migration_name' => - array ( - 'TABLE_CATALOG' => 'def', - 'TABLE_NAME' => 'phinxlog', - 'COLUMN_NAME' => 'migration_name', - 'ORDINAL_POSITION' => 2, - 'COLUMN_DEFAULT' => 'NULL', - 'IS_NULLABLE' => 'YES', - 'DATA_TYPE' => 'varchar', - 'CHARACTER_MAXIMUM_LENGTH' => 100, - 'CHARACTER_OCTET_LENGTH' => 400, - 'NUMERIC_PRECISION' => NULL, - 'NUMERIC_SCALE' => NULL, - 'DATETIME_PRECISION' => NULL, - 'CHARACTER_SET_NAME' => 'utf8mb4', - 'COLLATION_NAME' => 'utf8mb4_unicode_ci', - 'COLUMN_TYPE' => 'varchar(100)', - 'COLUMN_KEY' => '', - 'EXTRA' => '', - 'PRIVILEGES' => 'select,insert,update,references', - 'COLUMN_COMMENT' => '', - 'IS_GENERATED' => 'NEVER', - 'GENERATION_EXPRESSION' => NULL, - ), - 'start_time' => - array ( - 'TABLE_CATALOG' => 'def', - 'TABLE_NAME' => 'phinxlog', - 'COLUMN_NAME' => 'start_time', - 'ORDINAL_POSITION' => 3, - 'COLUMN_DEFAULT' => 'NULL', - 'IS_NULLABLE' => 'YES', - 'DATA_TYPE' => 'timestamp', - 'CHARACTER_MAXIMUM_LENGTH' => NULL, - 'CHARACTER_OCTET_LENGTH' => NULL, - 'NUMERIC_PRECISION' => NULL, - 'NUMERIC_SCALE' => NULL, - 'DATETIME_PRECISION' => 0, - 'CHARACTER_SET_NAME' => NULL, - 'COLLATION_NAME' => NULL, - 'COLUMN_TYPE' => 'timestamp', - 'COLUMN_KEY' => '', - 'EXTRA' => '', - 'PRIVILEGES' => 'select,insert,update,references', - 'COLUMN_COMMENT' => '', - 'IS_GENERATED' => 'NEVER', - 'GENERATION_EXPRESSION' => NULL, - ), - 'end_time' => - array ( - 'TABLE_CATALOG' => 'def', - 'TABLE_NAME' => 'phinxlog', - 'COLUMN_NAME' => 'end_time', - 'ORDINAL_POSITION' => 4, - 'COLUMN_DEFAULT' => 'NULL', - 'IS_NULLABLE' => 'YES', - 'DATA_TYPE' => 'timestamp', - 'CHARACTER_MAXIMUM_LENGTH' => NULL, - 'CHARACTER_OCTET_LENGTH' => NULL, - 'NUMERIC_PRECISION' => NULL, - 'NUMERIC_SCALE' => NULL, - 'DATETIME_PRECISION' => 0, - 'CHARACTER_SET_NAME' => NULL, - 'COLLATION_NAME' => NULL, - 'COLUMN_TYPE' => 'timestamp', - 'COLUMN_KEY' => '', - 'EXTRA' => '', - 'PRIVILEGES' => 'select,insert,update,references', - 'COLUMN_COMMENT' => '', - 'IS_GENERATED' => 'NEVER', - 'GENERATION_EXPRESSION' => NULL, - ), - 'breakpoint' => - array ( - 'TABLE_CATALOG' => 'def', - 'TABLE_NAME' => 'phinxlog', - 'COLUMN_NAME' => 'breakpoint', - 'ORDINAL_POSITION' => 5, - 'COLUMN_DEFAULT' => '0', - 'IS_NULLABLE' => 'NO', - 'DATA_TYPE' => 'tinyint', - 'CHARACTER_MAXIMUM_LENGTH' => NULL, - 'CHARACTER_OCTET_LENGTH' => NULL, - 'NUMERIC_PRECISION' => 3, - 'NUMERIC_SCALE' => 0, - 'DATETIME_PRECISION' => NULL, - 'CHARACTER_SET_NAME' => NULL, - 'COLLATION_NAME' => NULL, - 'COLUMN_TYPE' => 'tinyint(1)', - 'COLUMN_KEY' => '', - 'EXTRA' => '', - 'PRIVILEGES' => 'select,insert,update,references', - 'COLUMN_COMMENT' => '', - 'IS_GENERATED' => 'NEVER', - 'GENERATION_EXPRESSION' => NULL, - ), - ), - 'indexes' => - array ( - 'PRIMARY' => - array ( - 1 => - array ( - 'Table' => 'phinxlog', - 'Non_unique' => 0, - 'Key_name' => 'PRIMARY', - 'Seq_in_index' => 1, - 'Column_name' => 'version', - 'Collation' => 'A', - 'Sub_part' => NULL, - 'Packed' => NULL, - 'Null' => '', - 'Index_type' => 'BTREE', - 'Comment' => '', - 'Index_comment' => '', - ), - ), - ), - 'foreign_keys' => NULL, - ), - 'phinx_migration_log' => + 'phinx_migration_log' => array ( 'table' => array ( @@ -2082,7 +1925,7 @@ 'TABLE_NAME' => 'user', 'COLUMN_NAME' => 'updated_at', 'ORDINAL_POSITION' => 10, - 'COLUMN_DEFAULT' => 'current_timestamp()', + 'COLUMN_DEFAULT' => 'NULL', 'IS_NULLABLE' => 'YES', 'DATA_TYPE' => 'datetime', 'CHARACTER_MAXIMUM_LENGTH' => NULL, @@ -2094,7 +1937,7 @@ 'COLLATION_NAME' => NULL, 'COLUMN_TYPE' => 'datetime', 'COLUMN_KEY' => '', - 'EXTRA' => '', + 'EXTRA' => 'on update current_timestamp()', 'PRIVILEGES' => 'select,insert,update,references', 'COLUMN_COMMENT' => '', 'IS_GENERATED' => 'NEVER', diff --git a/resources/schema/schema.sql b/resources/schema/schema.sql index 0eeeb9c3..1def218a 100644 --- a/resources/schema/schema.sql +++ b/resources/schema/schema.sql @@ -7,7 +7,7 @@ CREATE TABLE `authentication_log` ( `created_at` datetime DEFAULT current_timestamp(), PRIMARY KEY (`id`), KEY `authentication_log_user_id_fk` (`user_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC; CREATE TABLE `client` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -23,7 +23,7 @@ CREATE TABLE `client` ( `user_id` int(11) DEFAULT NULL, `client_status_id` int(11) DEFAULT NULL, `assigned_at` datetime DEFAULT NULL COMMENT 'date at which user_id was set', - `updated_at` datetime NOT NULL DEFAULT current_timestamp(), + `updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(), `created_at` datetime NOT NULL DEFAULT current_timestamp(), `deleted_at` datetime DEFAULT NULL, PRIMARY KEY (`id`), @@ -48,7 +48,7 @@ CREATE TABLE `email_log` ( `created_at` datetime DEFAULT current_timestamp(), PRIMARY KEY (`id`), KEY `email_log_user_id_fk` (`user_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC; CREATE TABLE `note` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -57,7 +57,7 @@ CREATE TABLE `note` ( `message` varchar(1000) DEFAULT NULL, `is_main` tinyint(1) NOT NULL DEFAULT 0 COMMENT 'Bool if it''s the client''s main note', `hidden` tinyint(4) DEFAULT NULL, - `updated_at` datetime NOT NULL DEFAULT current_timestamp(), + `updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(), `created_at` datetime NOT NULL DEFAULT current_timestamp(), `deleted_at` datetime DEFAULT NULL, PRIMARY KEY (`id`), @@ -84,7 +84,7 @@ CREATE TABLE `user` ( `password_hash` varchar(300) NOT NULL, `theme` enum('light','dark') DEFAULT 'light', `language` enum('en_US','de_CH','fr_CH') DEFAULT 'en_US', - `updated_at` datetime DEFAULT current_timestamp(), + `updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(), `created_at` datetime DEFAULT current_timestamp(), `deleted_at` datetime DEFAULT NULL, PRIMARY KEY (`id`), @@ -129,4 +129,4 @@ CREATE TABLE `user_verification` ( `deleted_at` datetime DEFAULT NULL, PRIMARY KEY (`id`), KEY `FK__user_table` (`user_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC; \ No newline at end of file +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC; \ No newline at end of file