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 '<partition_key>:<doc_key>'. 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 '<partition_key>:<doc_key>'. A partition is a logical grouping of documents. Partition queries are often faster than global ones."
}
}