feat: change partition option to checkbox (#1312)

* feat: change partition option to checkbox

Co-authored-by: Jan Lehnardt <jan@apache.org>
diff --git a/app/addons/databases/assets/less/databases.less b/app/addons/databases/assets/less/databases.less
index 70b23b5..4158f3e 100644
--- a/app/addons/databases/assets/less/databases.less
+++ b/app/addons/databases/assets/less/databases.less
@@ -90,6 +90,7 @@
   .partitioned-db-options {
     display: flex;
     align-items: baseline;
+    padding-top: 1rem;
     input {
       margin: 0px 10px 0px 0px;
     }
diff --git a/app/addons/databases/components.js b/app/addons/databases/components.js
index 3e260f0..ba83157 100644
--- a/app/addons/databases/components.js
+++ b/app/addons/databases/components.js
@@ -321,8 +321,7 @@
     this.onKeyUpInInput = this.onKeyUpInInput.bind(this);
     this.onChange = this.onChange.bind(this);
     this.onAddDatabase = this.onAddDatabase.bind(this);
-    this.onSetPartitioned = this.onSetPartitioned.bind(this);
-    this.onSetNotPartitioned = this.onSetNotPartitioned.bind(this);
+    this.onTogglePartitioned = this.onTogglePartitioned.bind(this);
   }
 
   getI18nText(key) {
@@ -355,14 +354,6 @@
   }
 
   onAddDatabase() {
-    if (this.props.showPartitionedOption && this.state.partitionedSelected === undefined) {
-      FauxtonAPI.addNotification({
-        type: 'error',
-        msg: 'Please select either Partitioned or Non-partitioned',
-        clear: true
-      });
-      return;
-    }
     const partitioned = this.props.showPartitionedOption ?
       this.state.partitionedSelected :
       undefined;
@@ -373,12 +364,8 @@
     );
   }
 
-  onSetNotPartitioned() {
-    this.setState({ partitionedSelected: false });
-  }
-
-  onSetPartitioned() {
-    this.setState({ partitionedSelected: true });
+  onTogglePartitioned() {
+    this.setState({ partitionedSelected: !this.state.partitionedSelected });
   }
 
   partitionedOption() {
@@ -400,16 +387,11 @@
         <div className='partitioned-db-options'>
           <input
             id="partitioned-db"
-            type="radio"
+            type="checkbox"
             checked={this.state.partitionedSelected === true}
-            onChange={this.onSetPartitioned} />
+            onChange={this.onTogglePartitioned}
+          />
           <label htmlFor="partitioned-db">Partitioned</label>
-          <input
-            id="non-partitioned-db"
-            type="radio"
-            checked={this.state.partitionedSelected === false}
-            onChange={this.onSetNotPartitioned} />
-          <label htmlFor="non-partitioned-db">Non-partitioned</label>
         </div>
         {partitionedDbHelp}
       </div>
diff --git a/app/addons/databases/tests/nightwatch/createsDatabasePartitioned.js b/app/addons/databases/tests/nightwatch/createsDatabasePartitioned.js
index 60d9896..9174e11 100644
--- a/app/addons/databases/tests/nightwatch/createsDatabasePartitioned.js
+++ b/app/addons/databases/tests/nightwatch/createsDatabasePartitioned.js
@@ -51,7 +51,6 @@
       .clickWhenVisible('.add-new-database-btn')
       .waitForElementVisible('#js-new-database-name', waitTime, false)
       .setValue('#js-new-database-name', [newDatabaseName])
-      .clickWhenVisible('#non-partitioned-db', waitTime, false)
       .clickWhenVisible('#js-create-database', waitTime, false)
       .waitForElementNotPresent('.new-database-tray', waitTime, false)
       .checkForDatabaseCreated(newDatabaseName, waitTime)
@@ -81,7 +80,6 @@
       .clickWhenVisible('.add-new-database-btn')
       .waitForElementVisible('#js-new-database-name', waitTime, false)
       .setValue('#js-new-database-name', [invalidDatabaseName])
-      .clickWhenVisible('#non-partitioned-db', waitTime, false)
       .clickWhenVisible('#js-create-database', waitTime, false)
       .waitForElementVisible('.Toastify__toast-container .Toastify__toast--error', waitTime, false)
       .url(baseUrl + '/_all_dbs')
diff --git a/i18n.json.default.json b/i18n.json.default.json
index 2c548b5..dee3cc0 100644
--- a/i18n.json.default.json
+++ b/i18n.json.default.json
@@ -22,6 +22,6 @@
     "auth-change-password": "Your password has been updated.",
     "auth-admin-creation-failed-prefix": "Could not create admin.",
     "auth-passwords-not-matching": "Passwords do not match.",
-    "create-db-partitioned-help": "A partitioned database requires a partition key for every document, where the document _id format is '&lt;partition_key&gt;:&lt;doc_key&gt;'. A partition is a logical grouping of documents. Partition queries are often faster than global ones."
+    "create-db-partitioned-help": "This is an advanced feature. If you are unsure whether you need a partitioned database, you probably do not. A partitioned database requires a partition key for every document, where the document _id format is '&lt;partition_key&gt;:&lt;doc_key&gt;'. A partition is a logical grouping of documents. Partition queries are often faster than global ones."
   }
 }