From 90af8955523d760e63ce8491013562579af4711c Mon Sep 17 00:00:00 2001 From: Isaac Abadi Date: Wed, 21 Jul 2021 23:25:59 -0600 Subject: [PATCH] Updated style of settings for DB MongoDB connection string test now only tests once --- backend/app.js | 2 +- backend/db.js | 29 +++++++++++++----------- src/app/settings/settings.component.html | 15 ++++++------ src/app/settings/settings.component.scss | 8 +++++-- 4 files changed, 30 insertions(+), 24 deletions(-) diff --git a/backend/app.js b/backend/app.js index ef9bdf1..d07f4c5 100644 --- a/backend/app.js +++ b/backend/app.js @@ -1609,7 +1609,7 @@ app.post('/api/transferDB', optionalJwt, async (req, res) => { app.post('/api/testConnectionString', optionalJwt, async (req, res) => { let success = null; let error = ''; - success = await db_api.connectToDB(5, true); + success = await db_api.connectToDB(0, true); if (!success) error = 'Connection string failed.'; res.send({success: success, error: error}); diff --git a/backend/db.js b/backend/db.js index 02bcea5..c56db40 100644 --- a/backend/db.js +++ b/backend/db.js @@ -76,22 +76,25 @@ exports.connectToDB = async (retries = 5, no_fallback = false) => { const success = await exports._connectToDB(); if (success) return true; - logger.warn(`MongoDB connection failed! Retrying ${retries} times...`); - const retry_delay_ms = 2000; - for (let i = 0; i < retries; i++) { - const retry_succeeded = await exports._connectToDB(); - if (retry_succeeded) { - logger.info(`Successfully connected to DB after ${i+1} attempt(s)`); - return true; - } + if (retries) { + logger.warn(`MongoDB connection failed! Retrying ${retries} times...`); + const retry_delay_ms = 2000; + for (let i = 0; i < retries; i++) { + const retry_succeeded = await exports._connectToDB(); + if (retry_succeeded) { + logger.info(`Successfully connected to DB after ${i+1} attempt(s)`); + return true; + } - if (i !== retries - 1) { - logger.warn(`Retry ${i+1} failed, waiting ${retry_delay_ms}ms before trying again.`); - await utils.wait(retry_delay_ms); - } else { - logger.warn(`Retry ${i+1} failed.`); + if (i !== retries - 1) { + logger.warn(`Retry ${i+1} failed, waiting ${retry_delay_ms}ms before trying again.`); + await utils.wait(retry_delay_ms); + } else { + logger.warn(`Retry ${i+1} failed.`); + } } } + if (no_fallback) { logger.error('Failed to connect to MongoDB. Verify your connection string is valid.'); return; diff --git a/src/app/settings/settings.component.html b/src/app/settings/settings.component.html index ead9ffc..e16de14 100644 --- a/src/app/settings/settings.component.html +++ b/src/app/settings/settings.component.html @@ -287,7 +287,6 @@
-
Database Info

Database location: {{db_info['using_local_db'] ? 'Local' : 'MongoDB'}}

Records per table
@@ -298,16 +297,16 @@ - Example: mongodb://127.0.0.1:27017/?compressors=zlib + Example: mongodb://127.0.0.1:27017/?compressors=zlib
Docker: mongodb://<container name>:27017/?compressors=zlib
-
+
+ +
- - -
- - +
+ +
Database information could not be retrieved. Check the server logs for more information. diff --git a/src/app/settings/settings.component.scss b/src/app/settings/settings.component.scss index aba8baf..59c58af 100644 --- a/src/app/settings/settings.component.scss +++ b/src/app/settings/settings.component.scss @@ -83,7 +83,11 @@ transition: transform 250ms cubic-bezier(0, 0, 0.2, 1); } -.transfer-db-button { - margin-top: 10px; +.test-connection-div { + margin-top: 15px; + margin-bottom: 10px; +} + +.transfer-db-div { margin-bottom: 10px; } \ No newline at end of file