From 73608fedf43d2cb1b4d873cabb7e43a0b7224783 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Mon, 8 Apr 2024 07:44:19 +1000 Subject: [PATCH 1/8] Refactor setup page --- .../2022_06_16_025156_add_react_switching_flag.php | 2 +- database/schema/mysql-schema.dump | 2 +- .../portal/ninja2020/layout/clean_setup.blade.php | 2 -- resources/views/setup/_application.blade.php | 10 ---------- resources/views/setup/index.blade.php | 1 - 5 files changed, 2 insertions(+), 15 deletions(-) diff --git a/database/migrations/2022_06_16_025156_add_react_switching_flag.php b/database/migrations/2022_06_16_025156_add_react_switching_flag.php index 3c807d7e41..6db24aff80 100644 --- a/database/migrations/2022_06_16_025156_add_react_switching_flag.php +++ b/database/migrations/2022_06_16_025156_add_react_switching_flag.php @@ -21,7 +21,7 @@ return new class extends Migration { public function up() { Schema::table('accounts', function (Blueprint $table) { - $table->boolean('set_react_as_default_ap')->default(0); + $table->boolean('set_react_as_default_ap')->default(1); }); } diff --git a/database/schema/mysql-schema.dump b/database/schema/mysql-schema.dump index 31efb3175e..95262fb213 100644 --- a/database/schema/mysql-schema.dump +++ b/database/schema/mysql-schema.dump @@ -41,7 +41,7 @@ CREATE TABLE `accounts` ( `hosted_client_count` int(10) unsigned DEFAULT NULL, `hosted_company_count` int(10) unsigned DEFAULT NULL, `inapp_transaction_id` varchar(100) DEFAULT NULL, - `set_react_as_default_ap` tinyint(1) NOT NULL DEFAULT 0, + `set_react_as_default_ap` tinyint(1) NOT NULL DEFAULT 1, `is_flagged` tinyint(1) NOT NULL DEFAULT 0, `is_verified_account` tinyint(1) NOT NULL DEFAULT 0, `account_sms_verification_code` text DEFAULT NULL, diff --git a/resources/views/portal/ninja2020/layout/clean_setup.blade.php b/resources/views/portal/ninja2020/layout/clean_setup.blade.php index 8894872e21..62d6472441 100644 --- a/resources/views/portal/ninja2020/layout/clean_setup.blade.php +++ b/resources/views/portal/ninja2020/layout/clean_setup.blade.php @@ -96,9 +96,7 @@ @stack('head') @if(strpos(Request::url(),'setup')) - - @endif diff --git a/resources/views/setup/_application.blade.php b/resources/views/setup/_application.blade.php index de2d37c112..568a081135 100644 --- a/resources/views/setup/_application.blade.php +++ b/resources/views/setup/_application.blade.php @@ -43,16 +43,6 @@ about how we use this. -
-
- -
-
-
-
-
diff --git a/resources/views/setup/index.blade.php b/resources/views/setup/index.blade.php index 971289d9de..9c095c3695 100644 --- a/resources/views/setup/index.blade.php +++ b/resources/views/setup/index.blade.php @@ -53,7 +53,6 @@ @include('setup._application') @include('setup._database') - @include('setup._mail') @include('setup._account')

{{ ctrans('texts.setup_steps_notice') }}

From a62302b6554ff131b9027b0456699c9913b33484 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Mon, 8 Apr 2024 08:51:33 +1000 Subject: [PATCH 2/8] Remove mail config from setup --- app/Utils/SystemHealth.php | 5 +- public/build/assets/setup-81f58464.js | 9 --- public/build/manifest.json | 2 +- resources/js/setup/setup.js | 84 +------------------- resources/views/setup/_application.blade.php | 48 ----------- resources/views/setup/_database.blade.php | 50 +++++++++++- resources/views/setup/index.blade.php | 1 - routes/client.php | 22 +++-- 8 files changed, 73 insertions(+), 148 deletions(-) delete mode 100644 public/build/assets/setup-81f58464.js diff --git a/app/Utils/SystemHealth.php b/app/Utils/SystemHealth.php index c862091c16..a15c0991c7 100644 --- a/app/Utils/SystemHealth.php +++ b/app/Utils/SystemHealth.php @@ -201,11 +201,12 @@ class SystemHealth private static function simpleDbCheck(): bool { - $result = true; + $result = false; try { - $pdo = DB::connection()->getPdo(); + $result = DB::connection()->getPdo(); $result = true; + $result = DB::connection()->getDatabaseName() && strlen(DB::connection()->getDatabaseName()) > 1; } catch (Exception $e) { $result = false; } diff --git a/public/build/assets/setup-81f58464.js b/public/build/assets/setup-81f58464.js deleted file mode 100644 index 002076d866..0000000000 --- a/public/build/assets/setup-81f58464.js +++ /dev/null @@ -1,9 +0,0 @@ -import{A as s}from"./index-08e160a7.js";import"./_commonjsHelpers-725317a4.js";/** - * Invoice Ninja (https://invoiceninja.com) - * - * @link https://github.com/invoiceninja/invoiceninja source repository - * - * @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com) - * - * @license https://www.elastic.co/licensing/elastic-license - */class a{constructor(){this.checkDbButton=document.getElementById("test-db-connection"),this.checkDbAlert=document.getElementById("database-response"),this.checkSmtpButton=document.getElementById("test-smtp-connection"),this.checkSmtpAlert=document.getElementById("smtp-response"),this.checkPdfButton=document.getElementById("test-pdf"),this.checkPdfAlert=document.getElementById("test-pdf-response")}handleDatabaseCheck(){let t=document.querySelector("meta[name=setup-db-check]").content,e={};document.querySelector('input[name="db_host"]')&&(e={db_host:document.querySelector('input[name="db_host"]').value,db_port:document.querySelector('input[name="db_port"]').value,db_database:document.querySelector('input[name="db_database"]').value,db_username:document.querySelector('input[name="db_username"]').value,db_password:document.querySelector('input[name="db_password"]').value}),this.checkDbButton.disabled=!0,s.post(t,e).then(c=>this.handleSuccess(this.checkDbAlert,"mail-wrapper")).catch(c=>this.handleFailure(this.checkDbAlert,c.response.data.message)).finally(()=>this.checkDbButton.disabled=!1)}handleSmtpCheck(){let t=document.querySelector("meta[name=setup-email-check]").content,e={mail_driver:document.querySelector('select[name="mail_driver"]').value,mail_name:document.querySelector('input[name="mail_name"]').value,mail_address:document.querySelector('input[name="mail_address"]').value,mail_username:document.querySelector('input[name="mail_username"]').value,mail_host:document.querySelector('input[name="mail_host"]').value,mail_port:document.querySelector('input[name="mail_port"]').value,encryption:document.querySelector('select[name="encryption"]').value,mail_password:document.querySelector('input[name="mail_password"]').value};if(this.checkSmtpButton.disabled=!0,e.mail_driver==="log")return this.handleSuccess(this.checkSmtpAlert,"account-wrapper"),this.handleSuccess(this.checkSmtpAlert,"submit-wrapper"),this.checkSmtpButton.disabled=!1;s.post(t,e).then(c=>{this.handleSuccess(this.checkSmtpAlert,"account-wrapper"),this.handleSuccess(this.checkSmtpAlert,"submit-wrapper")}).catch(c=>this.handleFailure(this.checkSmtpAlert,c.response.data.message)).finally(()=>this.checkSmtpButton.disabled=!1)}handleTestPdfCheck(){let t=document.querySelector("meta[name=setup-pdf-check]").content;this.checkPdfButton.disabled=!0,s.post(t,{}).then(e=>{try{return this.handleSuccess(this.checkPdfAlert,"database-wrapper")}catch{this.handleSuccess(this.checkPdfAlert,"database-wrapper"),this.checkPdfAlert.textContent="Success! PDF was generated succesfully."}}).catch(e=>{console.log(e),this.handleFailure(this.checkPdfAlert)}).finally(()=>this.checkPdfButton.disabled=!1)}handleSuccess(t,e=null){t.classList.remove("alert-failure"),t.innerText="Success!",t.classList.add("alert-success"),e&&(document.getElementById(e).classList.remove("hidden"),document.getElementById(e).scrollIntoView({behavior:"smooth",block:"center"}))}handleFailure(t,e=null){t.classList.remove("alert-success"),t.innerText=e||"Oops, looks like something isn't correct!",t.classList.add("alert-failure")}handle(){this.checkDbButton.addEventListener("click",()=>this.handleDatabaseCheck()),this.checkSmtpButton.addEventListener("click",()=>this.handleSmtpCheck()),this.checkPdfButton.addEventListener("click",()=>this.handleTestPdfCheck())}}new a().handle(); diff --git a/public/build/manifest.json b/public/build/manifest.json index 4f05b9e18e..9c4d3986b5 100644 --- a/public/build/manifest.json +++ b/public/build/manifest.json @@ -231,7 +231,7 @@ "src": "resources/js/clients/statements/view.js" }, "resources/js/setup/setup.js": { - "file": "assets/setup-81f58464.js", + "file": "assets/setup-66b6b3c0.js", "imports": [ "_index-08e160a7.js", "__commonjsHelpers-725317a4.js" diff --git a/resources/js/setup/setup.js b/resources/js/setup/setup.js index ae4de35f83..8c472cb81a 100644 --- a/resources/js/setup/setup.js +++ b/resources/js/setup/setup.js @@ -14,12 +14,6 @@ class Setup { constructor() { this.checkDbButton = document.getElementById('test-db-connection'); this.checkDbAlert = document.getElementById('database-response'); - - this.checkSmtpButton = document.getElementById('test-smtp-connection'); - this.checkSmtpAlert = document.getElementById('smtp-response'); - - this.checkPdfButton = document.getElementById('test-pdf'); - this.checkPdfAlert = document.getElementById('test-pdf-response'); } handleDatabaseCheck() { @@ -42,78 +36,16 @@ class Setup { this.checkDbButton.disabled = true; Axios.post(url, data) - .then((response) => - this.handleSuccess(this.checkDbAlert, 'mail-wrapper') + .then((response) =>{ + this.handleSuccess(this.checkDbAlert, 'account-wrapper'); + this.handleSuccess(this.checkDbAlert, 'submit-wrapper'); + } ) .catch((e) => this.handleFailure(this.checkDbAlert, e.response.data.message) ).finally(() => this.checkDbButton.disabled = false); } - handleSmtpCheck() { - let url = document.querySelector('meta[name=setup-email-check]').content; - - let data = { - mail_driver: document.querySelector('select[name="mail_driver"]') - .value, - mail_name: document.querySelector('input[name="mail_name"]').value, - mail_address: document.querySelector('input[name="mail_address"]') - .value, - mail_username: document.querySelector('input[name="mail_username"]') - .value, - mail_host: document.querySelector('input[name="mail_host"]').value, - mail_port: document.querySelector('input[name="mail_port"]').value, - encryption: document.querySelector('select[name="encryption"]') - .value, - mail_password: document.querySelector('input[name="mail_password"]') - .value, - }; - - this.checkSmtpButton.disabled = true; - - if (data.mail_driver === 'log') { - this.handleSuccess(this.checkSmtpAlert, 'account-wrapper'); - this.handleSuccess(this.checkSmtpAlert, 'submit-wrapper'); - - return (this.checkSmtpButton.disabled = false); - } - - Axios.post(url, data) - .then((response) => { - this.handleSuccess(this.checkSmtpAlert, 'account-wrapper'); - this.handleSuccess(this.checkSmtpAlert, 'submit-wrapper'); - }) - .catch((e) => - this.handleFailure(this.checkSmtpAlert, e.response.data.message) - ) - .finally(() => (this.checkSmtpButton.disabled = false)); - } - - handleTestPdfCheck() { - let url = document.querySelector('meta[name=setup-pdf-check]').content; - this.checkPdfButton.disabled = true; - - Axios.post(url, {}) - .then((response) => { - try { - //let win = window.open(response.data.url, '_blank'); - //win.focus(); - - return this.handleSuccess( - this.checkPdfAlert, - 'database-wrapper' - ); - } catch (error) { - this.handleSuccess(this.checkPdfAlert, 'database-wrapper'); - this.checkPdfAlert.textContent = `Success! PDF was generated succesfully.`; - } - }) - .catch((error) => { - console.log(error); - this.handleFailure(this.checkPdfAlert); - }) - .finally(() => (this.checkPdfButton.disabled = false)); - } handleSuccess(element, nextStep = null) { element.classList.remove('alert-failure'); @@ -140,14 +72,6 @@ class Setup { this.checkDbButton.addEventListener('click', () => this.handleDatabaseCheck() ); - - this.checkSmtpButton.addEventListener('click', () => - this.handleSmtpCheck() - ); - - this.checkPdfButton.addEventListener('click', () => - this.handleTestPdfCheck() - ); } } diff --git a/resources/views/setup/_application.blade.php b/resources/views/setup/_application.blade.php index 568a081135..e69de29bb2 100644 --- a/resources/views/setup/_application.blade.php +++ b/resources/views/setup/_application.blade.php @@ -1,48 +0,0 @@ -
-
-

- {{ ctrans('texts.application_settings') }} -

-

- {{ ctrans('texts.application_settings_label') }} -

-
-
-
-
-
- {{ ctrans('texts.url') }}* -
-
- - (including http:// or https://) -
-
-
-
- {{ ctrans('texts.https') }} -
-
- - {{ ctrans('texts.require') }} - ({{ ctrans('texts.recommended_in_production') }}) -
-
-
-
- {{ ctrans('texts.reports') }} -
-
- - {{ ctrans('texts.send_fail_logs_to_our_server') }} - Read more - about how we use this. -
-
-
-
-
diff --git a/resources/views/setup/_database.blade.php b/resources/views/setup/_database.blade.php index c63487c33e..6ff0e314e3 100644 --- a/resources/views/setup/_database.blade.php +++ b/resources/views/setup/_database.blade.php @@ -1,4 +1,52 @@ -