You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by ja...@apache.org on 2021/09/02 14:44:40 UTC

[couchdb-fauxton] branch main updated: feat: change partition option to checkbox (#1312)

This is an automated email from the ASF dual-hosted git repository.

jan pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/couchdb-fauxton.git


The following commit(s) were added to refs/heads/main by this push:
     new 03491f1  feat: change partition option to checkbox (#1312)
03491f1 is described below

commit 03491f140030fbea1b5515a86bfee1c506e45522
Author: Diana Thayer <ga...@gmail.com>
AuthorDate: Thu Sep 2 07:44:21 2021 -0700

    feat: change partition option to checkbox (#1312)
    
    * feat: change partition option to checkbox
    
    Co-authored-by: Jan Lehnardt <ja...@apache.org>
---
 app/addons/databases/assets/less/databases.less    |  1 +
 app/addons/databases/components.js                 | 30 +++++-----------------
 .../tests/nightwatch/createsDatabasePartitioned.js |  2 --
 i18n.json.default.json                             |  2 +-
 4 files changed, 8 insertions(+), 27 deletions(-)

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 @@ class AddDatabaseWidget extends React.Component {
     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 @@ class AddDatabaseWidget extends React.Component {
   }
 
   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 @@ class AddDatabaseWidget extends React.Component {
     );
   }
 
-  onSetNotPartitioned() {
-    this.setState({ partitionedSelected: false });
-  }
-
-  onSetPartitioned() {
-    this.setState({ partitionedSelected: true });
+  onTogglePartitioned() {
+    this.setState({ partitionedSelected: !this.state.partitionedSelected });
   }
 
   partitionedOption() {
@@ -400,16 +387,11 @@ class AddDatabaseWidget extends React.Component {
         <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 @@ module.exports = {
       .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 @@ module.exports = {
       .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."
   }
 }