You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by ga...@apache.org on 2016/08/09 12:09:53 UTC
[2/2] fauxton commit: updated refs/heads/master to d94f3f2
react: use react-select for database page
refactor CSS and BEMify jump-to-doc with it
Project: http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/repo
Commit: http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/commit/d94f3f20
Tree: http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/tree/d94f3f20
Diff: http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/diff/d94f3f20
Branch: refs/heads/master
Commit: d94f3f202477d71053b77f8a4be22740e65d8318
Parents: e185633
Author: Robert Kowalski <ro...@apache.org>
Authored: Tue Jul 26 18:24:01 2016 +0200
Committer: Garren Smith <ga...@gmail.com>
Committed: Tue Aug 9 14:09:30 2016 +0200
----------------------------------------------------------------------
app/addons/databases/actions.js | 17 +--
app/addons/databases/components.react.jsx | 107 +++++++++----------
app/addons/databases/stores.js | 16 ++-
.../databases/tests/componentsSpec.react.jsx | 76 -------------
.../tests/nightwatch/switchDatabase.js | 15 +--
app/addons/databases/tests/storesSpec.js | 20 ++--
app/addons/documents/assets/less/documents.less | 1 -
app/addons/documents/assets/less/jumptodoc.less | 38 -------
.../documents/components/jumptodoc.react.jsx | 7 +-
.../components/rightalldocsheader.react.jsx | 10 +-
.../tests/nightwatch/deletesDocuments.js | 2 +-
.../tests/nightwatch/selectDocViaTypeahead.js | 4 +-
assets/less/fauxton.less | 70 ++++++------
assets/less/templates.less | 2 +-
.../custom-commands/auth/loginToGUI.js | 2 +-
15 files changed, 134 insertions(+), 253 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/blob/d94f3f20/app/addons/databases/actions.js
----------------------------------------------------------------------
diff --git a/app/addons/databases/actions.js b/app/addons/databases/actions.js
index 06af7d4..431bee4 100644
--- a/app/addons/databases/actions.js
+++ b/app/addons/databases/actions.js
@@ -122,15 +122,18 @@ export default {
if (_.isNull(databaseName) || databaseName.trim().length === 0) {
return;
}
+
databaseName = databaseName.trim();
+
if (Stores.databasesStore.doesDatabaseExist(databaseName)) {
- var url = FauxtonAPI.urls('allDocs', 'app', app.utils.safeURLName(databaseName), "");
- FauxtonAPI.navigate(url);
- } else {
- FauxtonAPI.addNotification({
- msg: 'Database does not exist.',
- type: 'error'
- });
+ var url = FauxtonAPI.urls('allDocs', 'app', app.utils.safeURLName(databaseName), '');
+ // use the next cpu tick to allow react-select to unmount prorperly
+ return setTimeout(() => { FauxtonAPI.navigate(url); });
}
+
+ FauxtonAPI.addNotification({
+ msg: 'Database does not exist.',
+ type: 'error'
+ });
}
};
http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/blob/d94f3f20/app/addons/databases/components.react.jsx
----------------------------------------------------------------------
diff --git a/app/addons/databases/components.react.jsx b/app/addons/databases/components.react.jsx
index 62eb09e..e2c1ea4 100644
--- a/app/addons/databases/components.react.jsx
+++ b/app/addons/databases/components.react.jsx
@@ -23,6 +23,8 @@ import Resources from "./resources";
import Actions from "./actions";
import Helpers from "../../helpers";
+import ReactSelect from "react-select";
+
var ToggleHeaderButton = Components.ToggleHeaderButton;
var databasesStore = Stores.databasesStore;
var deleteDbModalStore = ComponentsStore.deleteDbModalStore;
@@ -219,17 +221,44 @@ var GraveyardInfo = React.createClass({
}
});
-var RightDatabasesHeader = React.createClass({
+class RightDatabasesHeader extends React.Component {
+
+ constructor (props) {
+ super(props);
+
+ this.state = this.getStoreState();
+ }
+
+ getStoreState () {
+
+ return {
+ databaseList: databasesStore.getDatabaseNamesForDropDown()
+ };
+ }
+
+ componentDidMount () {
+ databasesStore.on('change', this.onChange, this);
+ }
+
+ componentWillUnmount () {
+ databasesStore.off('change', this.onChange);
+ }
+
+ onChange () {
+ this.setState(this.getStoreState());
+ }
+
+ render () {
+ const {databaseList} = this.state;
- render: function () {
return (
<div className="header-right right-db-header flex-layout flex-row">
- <JumpToDatabaseWidget />
+ <JumpToDatabaseWidget databaseList={databaseList} />
<AddDatabaseWidget />
</div>
);
}
-});
+};
var AddDatabaseWidget = React.createClass({
@@ -284,64 +313,28 @@ var AddDatabaseWidget = React.createClass({
}
});
-var JumpToDatabaseWidget = React.createClass({
- getStoreState: function () {
- return {
- databaseNames: databasesStore.getDatabaseNames()
- };
- },
+const JumpToDatabaseWidget = ({databaseList}) => {
- getInitialState: function () {
- return this.getStoreState();
- },
+ return (
+ <div data-name="jump-to-db" className="faux-header__searchboxwrapper">
+ <div className="faux-header__searchboxcontainer">
- componentDidMount: function () {
- databasesStore.on('change', this.onChange, this);
- },
-
- componentDidUpdate: function () {
- $(ReactDOM.findDOMNode(this.refs.searchDbName)).typeahead({
- source: this.state.databaseNames,
- updater: function (item) {
- this.jumpToDb(item);
- }.bind(this)
- });
- },
-
- componentWillUnmount: function () {
- databasesStore.off('change', this.onChange, this);
- },
-
- onChange: function () {
- this.setState(this.getStoreState());
- },
+ <ReactSelect
+ placeholder="Database name"
+ options={databaseList}
+ clearable={false}
+ onChange={({value: databaseName}) => {
+ Actions.jumpToDatabase(databaseName);
+ }} />
- jumpToDb: function (databaseName) {
- databaseName = databaseName || ReactDOM.findDOMNode(this.refs.searchDbName).value;
- Actions.jumpToDatabase(databaseName);
- },
-
- jumpToDbHandler: function (e) {
- e.preventDefault();
- this.jumpToDb();
- },
-
- render: function () {
- return (
- <div className="searchbox-wrapper">
- <div id="header-search" className="js-search searchbox-container">
- <form onSubmit={this.jumpToDbHandler} id="jump-to-db" className="navbar-form pull-right database-search">
- <div className="input-append">
- <input type="text" className="search-autocomplete" ref="searchDbName" name="search-query" placeholder="Database name" autoComplete="off" />
- <span><button className="btn btn-primary" type="submit"><i className="icon icon-search"></i></button></span>
- </div>
- </form>
- </div>
</div>
- );
- }
-});
+ </div>
+ );
+};
+JumpToDatabaseWidget.propTypes = {
+ databaseList: React.PropTypes.array.isRequired
+};
var DatabasePagination = React.createClass({
http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/blob/d94f3f20/app/addons/databases/stores.js
----------------------------------------------------------------------
diff --git a/app/addons/databases/stores.js b/app/addons/databases/stores.js
index 9f5540b..f20fe2e 100644
--- a/app/addons/databases/stores.js
+++ b/app/addons/databases/stores.js
@@ -72,13 +72,19 @@ var DatabasesStore = FauxtonAPI.Store.extend({
},
getDatabaseNames: function () {
- if (this._backboneCollection) {
- return _.map(this._backboneCollection.toJSON(), function (item, key) {
- return item.name;
- });
- } else {
+ if (!this._backboneCollection || !this._backboneCollection.length) {
return [];
}
+
+ return this._backboneCollection.toJSON().map((item, key) => {
+ return item.name;
+ });
+ },
+
+ getDatabaseNamesForDropDown: function () {
+ return this.getDatabaseNames().map((db) => {
+ return { value: db, label: db};
+ });
},
doesDatabaseExist: function (databaseName) {
http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/blob/d94f3f20/app/addons/databases/tests/componentsSpec.react.jsx
----------------------------------------------------------------------
diff --git a/app/addons/databases/tests/componentsSpec.react.jsx b/app/addons/databases/tests/componentsSpec.react.jsx
index f9a4eb0..a20f62e 100644
--- a/app/addons/databases/tests/componentsSpec.react.jsx
+++ b/app/addons/databases/tests/componentsSpec.react.jsx
@@ -141,82 +141,6 @@ describe('AddDatabaseWidget', function () {
});
-describe('JumpToDatabaseWidget', function () {
-
- var container, jumpEl, oldJumpToDatabase, oldGetDatabaseNames, old$;
- var jumpCalled, passedDbName;
-
- beforeEach(function () {
- old$ = $;
- // simulate typeahead
- $ = function (selector) {
- var res = old$(selector);
- res.typeahead = function () {};
- return res;
- };
- oldJumpToDatabase = Actions.jumpToDatabase;
- Actions.jumpToDatabase = function (dbName) {
- jumpCalled = true;
- passedDbName = dbName;
- };
- oldGetDatabaseNames = Stores.databasesStore.getDatabaseNames;
- Stores.databasesStore.getDatabaseNames = function () {
- return ["db1", "db2"];
- };
- container = document.createElement('div');
- jumpEl = ReactDOM.render(React.createElement(Views.JumpToDatabaseWidget, {}), container);
- });
-
- afterEach(function () {
- $ = old$;
- Actions.jumpToDatabase = oldJumpToDatabase;
- Stores.databasesStore.getDatabaseNames = oldGetDatabaseNames;
- ReactDOM.unmountComponentAtNode(container);
- // reset the store for future use
- Stores.databasesStore.reset();
- });
-
- it("Jumps to a database with given name", function () {
- jumpCalled = false;
- passedDbName = null;
- jumpEl.jumpToDb("db1");
- assert.equal(true, jumpCalled);
- assert.equal("db1", passedDbName);
- });
-
- it("jumps to an existing DB from input", function () {
- jumpCalled = false;
- passedDbName = null;
- const input = TestUtils.findRenderedDOMComponentWithTag(jumpEl, 'input');
- input.value = "db2";
- jumpEl.jumpToDb();
- assert.equal(true, jumpCalled);
- assert.equal("db2", passedDbName);
- });
-
- it('updates DB list if data is sent after initially mounted', function () {
- var newCollection = new Backbone.Collection();
- newCollection.add(new Backbone.Model({ name: 'new-db1' }));
- newCollection.add(new Backbone.Model({ name: 'new-db2' }));
-
- var spy = sinon.spy(jumpEl, 'componentDidUpdate');
-
- FauxtonAPI.dispatch({
- type: ActionTypes.DATABASES_INIT,
- options: {
- collection: newCollection.toJSON(),
- backboneCollection: newCollection,
- page: 1
- }
- });
-
- // because of the need to override typeahead, this just does a spy on the componentDidUpdate method to ensure
- // it gets called
- assert.ok(spy.calledOnce);
-
- });
-});
-
describe('DatabasePagination', function () {
it('uses custom URL prefix on the navigation if passed through props', function () {
http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/blob/d94f3f20/app/addons/databases/tests/nightwatch/switchDatabase.js
----------------------------------------------------------------------
diff --git a/app/addons/databases/tests/nightwatch/switchDatabase.js b/app/addons/databases/tests/nightwatch/switchDatabase.js
index 76aaa8b..9c73c30 100644
--- a/app/addons/databases/tests/nightwatch/switchDatabase.js
+++ b/app/addons/databases/tests/nightwatch/switchDatabase.js
@@ -14,8 +14,8 @@
module.exports = {
'Confirm selecting database via typeahead redirects properly': function (client) {
- var waitTime = client.globals.maxWaitTime,
- newDatabaseName = client.globals.testDatabaseName;
+ const waitTime = client.globals.maxWaitTime;
+ const newDatabaseName = client.globals.testDatabaseName;
client
.createDatabase(newDatabaseName)
@@ -28,14 +28,15 @@ module.exports = {
})
// wait for the DB name typeahead field to appear in the header
- .waitForElementPresent('#jump-to-db .search-autocomplete', waitTime, false)
+ .waitForElementPresent('[data-name="jump-to-db"]', waitTime, false)
.waitForElementPresent('#dashboard-content table.databases', waitTime, false)
- .setValue('#jump-to-db .search-autocomplete', [newDatabaseName, client.Keys.ENTER])
+ .clickWhenVisible('[data-name="jump-to-db"] .Select-placeholder')
+ .setValue('[data-name="jump-to-db"] input', [newDatabaseName, client.Keys.ENTER])
.waitForElementPresent('.index-pagination', waitTime, false)
// now check we've redirected and the URL ends with /_all_docs
- .url(function (result) {
- var endsWithAllDocs = /all_docs$/.test(result.value);
- this.assert.ok(endsWithAllDocs, 'Redirected properly');
+ .url((result) => {
+ const urlEndsWithAllDocs = /all_docs$/.test(result.value);
+ client.assert.ok(urlEndsWithAllDocs, 'Redirected properly');
})
.end();
}
http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/blob/d94f3f20/app/addons/databases/tests/storesSpec.js
----------------------------------------------------------------------
diff --git a/app/addons/databases/tests/storesSpec.js b/app/addons/databases/tests/storesSpec.js
index 02ddbcf..c8d8446 100644
--- a/app/addons/databases/tests/storesSpec.js
+++ b/app/addons/databases/tests/storesSpec.js
@@ -43,21 +43,17 @@ describe('Databases Store', function () {
describe("database collection info", function () {
- beforeEach(function () {
- Stores.databasesStore._backboneCollection.toJSON = function () {
- return {
- "db1": {
- "name": "db1"
- },
- "db2": {
- "name": "db2"
- }
- };
- };
+ beforeEach(() => {
+ const data = [{"name": "db1"}, {"name": "db2"}];
+
+ const collection = new Backbone.Collection();
+ collection.add(data);
+
+ Stores.databasesStore._backboneCollection = collection;
});
it("determines database names", function () {
- assert.ok(JSON.stringify(["db1", "db2"]) == JSON.stringify(Stores.databasesStore.getDatabaseNames().sort()));
+ assert.ok(JSON.stringify(["db1", "db2"]) === JSON.stringify(Stores.databasesStore.getDatabaseNames().sort()));
});
it("determines database availability", function () {
http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/blob/d94f3f20/app/addons/documents/assets/less/documents.less
----------------------------------------------------------------------
diff --git a/app/addons/documents/assets/less/documents.less b/app/addons/documents/assets/less/documents.less
index 175e879..6938d74 100644
--- a/app/addons/documents/assets/less/documents.less
+++ b/app/addons/documents/assets/less/documents.less
@@ -21,7 +21,6 @@
@import "doc-editor.less";
@import "header.less";
@import "revision-browser";
-@import "jumptodoc";
button.beautify {
http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/blob/d94f3f20/app/addons/documents/assets/less/jumptodoc.less
----------------------------------------------------------------------
diff --git a/app/addons/documents/assets/less/jumptodoc.less b/app/addons/documents/assets/less/jumptodoc.less
deleted file mode 100644
index 947f22c..0000000
--- a/app/addons/documents/assets/less/jumptodoc.less
+++ /dev/null
@@ -1,38 +0,0 @@
-// Licensed under the Apache License, Version 2.0 (the "License"); you may not
-// use this file except in compliance with the License. You may obtain a copy of
-// the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-// License for the specific language governing permissions and limitations under
-// the License.
-
-.searchbox-wrapper {
- overflow: visible;
- height: 64px;
- width: 235px;
-}
-
-#header-search {
- overflow: visible;
- position: absolute;
-}
-
-#jump-to-doc {
- .Select-control, .Select-menu-outer {
- width: 210px;
- }
-}
-
-/* this allows the jump-to-doc results expand as much as need be when the component is used in the header */
-#right-header #jump-to-doc .Select-menu-outer {
- &>div>div {
- padding-right: 25px; /* prevents overlapping of auto-generated scrollbar */
- }
- min-width: 210px;
- max-width: 450px;
- width: auto;
-}
http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/blob/d94f3f20/app/addons/documents/components/jumptodoc.react.jsx
----------------------------------------------------------------------
diff --git a/app/addons/documents/components/jumptodoc.react.jsx b/app/addons/documents/components/jumptodoc.react.jsx
index c8398ea..c06f0c2 100644
--- a/app/addons/documents/components/jumptodoc.react.jsx
+++ b/app/addons/documents/components/jumptodoc.react.jsx
@@ -18,11 +18,11 @@ import ReactSelect from "react-select";
const JumpToDoc = ({database, loadOptions}) => {
return (
- <div id="jump-to-doc" class="input-append">
+ <div>
<ReactSelect.Async
+ className="jump-to-doc"
name="jump-to-doc"
placeholder="Document ID"
- className="jump-to-doc"
loadOptions={loadOptions}
clearable={false}
onChange={({value: docId}) => {
@@ -30,8 +30,7 @@ const JumpToDoc = ({database, loadOptions}) => {
// We navigating away from the page. So we need to take that navigation out of the loop otherwise
// it causes an issue where the react-select state is changed after its unmounted
setTimeout(() => FauxtonAPI.navigate(url, {trigger: true}));
- }}
- />
+ }} />
</div>
);
};
http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/blob/d94f3f20/app/addons/documents/components/rightalldocsheader.react.jsx
----------------------------------------------------------------------
diff --git a/app/addons/documents/components/rightalldocsheader.react.jsx b/app/addons/documents/components/rightalldocsheader.react.jsx
index f0377fd..7ca1900 100644
--- a/app/addons/documents/components/rightalldocsheader.react.jsx
+++ b/app/addons/documents/components/rightalldocsheader.react.jsx
@@ -28,11 +28,13 @@ const { QueryOptionsController } = QueryOptions;
const RightAllDocsHeader = ({database}) =>
<div className="header-right right-db-header flex-layout flex-row">
- <div className="searchbox-wrapper">
- <div id="header-search" className="searchbox-container">
- <JumpToDoc loadOptions={Actions.fetchAllDocsWithKey(database)} database={database} />
- </div>
+
+ <div className="faux-header__searchboxwrapper">
+ <div className="faux-header__searchboxcontainer">
+ <JumpToDoc loadOptions={Actions.fetchAllDocsWithKey(database)} database={database} />
+ </div>
</div>
+
<QueryOptionsController />
</div>;
http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/blob/d94f3f20/app/addons/documents/tests/nightwatch/deletesDocuments.js
----------------------------------------------------------------------
diff --git a/app/addons/documents/tests/nightwatch/deletesDocuments.js b/app/addons/documents/tests/nightwatch/deletesDocuments.js
index fc81257..d867705 100644
--- a/app/addons/documents/tests/nightwatch/deletesDocuments.js
+++ b/app/addons/documents/tests/nightwatch/deletesDocuments.js
@@ -108,7 +108,7 @@ module.exports = {
.waitForElementPresent('#editor-container', waitTime, false)
.clickWhenVisible('#doc-editor-actions-panel button[title="Delete"]')
.clickWhenVisible('.confirmation-modal button.btn.btn-success')
- .waitForElementPresent('#jump-to-doc', waitTime, false)
+ .waitForElementPresent('.jump-to-doc', waitTime, false)
//check raw JSON
.url(baseUrl + '/' + newDatabaseName + '/_all_docs')
http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/blob/d94f3f20/app/addons/documents/tests/nightwatch/selectDocViaTypeahead.js
----------------------------------------------------------------------
diff --git a/app/addons/documents/tests/nightwatch/selectDocViaTypeahead.js b/app/addons/documents/tests/nightwatch/selectDocViaTypeahead.js
index 032eb94..f765acc 100644
--- a/app/addons/documents/tests/nightwatch/selectDocViaTypeahead.js
+++ b/app/addons/documents/tests/nightwatch/selectDocViaTypeahead.js
@@ -23,7 +23,7 @@ module.exports = {
.populateDatabase(newDatabaseName, 3)
.loginToGUI()
.url(baseUrl + '/#/database/' + newDatabaseName + '/_all_docs')
- .waitForElementPresent('#jump-to-doc', waitTime, false)
+ .waitForElementPresent('.jump-to-doc', waitTime, false)
.keys(['\uE00C'])
.waitForElementPresent('.prettyprint', waitTime, false)
.waitForElementPresent('.documents-pagination', waitTime, false)
@@ -31,7 +31,7 @@ module.exports = {
// we need to explicitly show the doc field because it's hidden on Travis due to screen width
.execute("$('.searchbox-wrapper').show();")
- .setValue('#jump-to-doc .Select-input input', ['_des'])
+ .setValue('.jump-to-doc .Select-input input', ['_des'])
.keys(['\uE015', '\uE015', '\uE006'])
.waitForElementPresent('.panel-button.upload', waitTime, false)
.end();
http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/blob/d94f3f20/assets/less/fauxton.less
----------------------------------------------------------------------
diff --git a/assets/less/fauxton.less b/assets/less/fauxton.less
index d832dfb..8391f5f 100644
--- a/assets/less/fauxton.less
+++ b/assets/less/fauxton.less
@@ -334,14 +334,6 @@ div.spinner {
}
}
-#header-search {
- height: @collapsedNavWidth;
- span {
- position: relative;
- }
-}
-
-
.js-filter-form {
.help-block {
@@ -470,32 +462,36 @@ body #dashboard .flex-body#breadcrumbs {
padding: 0;
margin: 0;
}
- .searchbox-container {
- padding: 12px;
- input[type="text"] {
- .border-radius(5px);
- font-size: 13px;
- padding: 8px 35px 8px 10px;
- width: 150px;
- }
- .btn-primary {
- background: none repeat scroll 0% 0% transparent;
- border: none;
- position: absolute;
- right: 12px;
- top: 0;
- height: 50px;
- z-index: 2;
- color: #999;
- .icon-search {
- position: absolute;
- top: 11px;
- }
- }
- form {
- margin: 0;
- }
+}
+
+
+.faux-header__searchboxwrapper {
+ overflow: visible;
+ height: 64px;
+ width: 235px;
+}
+
+.faux-header__searchboxcontainer {
+ height: @collapsedNavWidth;
+ overflow: visible;
+ position: absolute;
+ padding: 12px;
+}
+
+.faux-header__searchboxcontainer {
+ .Select-control, .Select-menu-outer {
+ width: 210px;
+ }
+}
+
+/* this allows the jump-to-doc results expand as much as need be when the component is used in the header */
+#right-header .faux-header__searchboxcontainer .Select-menu-outer {
+ &>div>div {
+ padding-right: 25px; /* prevents overlapping of auto-generated scrollbar */
}
+ min-width: 210px;
+ max-width: 450px;
+ width: auto;
}
// react-select color design
@@ -630,7 +626,7 @@ footer.pagination-footer {
@media (max-width: 730px) {
.closeMenu {
.one-pane {
- .searchbox-wrapper {
+ .faux-header__searchboxwrapper {
display: none;
}
}
@@ -640,7 +636,7 @@ footer.pagination-footer {
@media (max-width: 1000px) {
.closeMenu {
.with-sidebar {
- .searchbox-wrapper {
+ .faux-header__searchboxwrapper {
display: none;
}
}
@@ -651,7 +647,7 @@ footer.pagination-footer {
@media (max-width: 875px) {
body:not(.closeMenu) {
.one-pane {
- .searchbox-wrapper {
+ .faux-header__searchboxwrapper {
display: none;
}
}
@@ -661,7 +657,7 @@ footer.pagination-footer {
@media (max-width: 1285px) {
body:not(.closeMenu) {
.with-sidebar {
- .searchbox-wrapper {
+ .faux-header__searchboxwrapper {
display: none;
}
}
http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/blob/d94f3f20/assets/less/templates.less
----------------------------------------------------------------------
diff --git a/assets/less/templates.less b/assets/less/templates.less
index 615cbb6..d4e71af 100644
--- a/assets/less/templates.less
+++ b/assets/less/templates.less
@@ -517,7 +517,7 @@ with_tabs_sidebar.html
.right-header-wrapper {
border-left: 1px solid #999;
.box-shadow(-6px 0 rgba(0, 0, 0, 0.1));
- .searchbox-wrapper {
+ .faux-header__searchboxwrapper {
display: none;
}
}
http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/blob/d94f3f20/test/nightwatch_tests/custom-commands/auth/loginToGUI.js
----------------------------------------------------------------------
diff --git a/test/nightwatch_tests/custom-commands/auth/loginToGUI.js b/test/nightwatch_tests/custom-commands/auth/loginToGUI.js
index ef67837..ee7d1f8 100644
--- a/test/nightwatch_tests/custom-commands/auth/loginToGUI.js
+++ b/test/nightwatch_tests/custom-commands/auth/loginToGUI.js
@@ -32,7 +32,7 @@ exports.command = function () {
.clickWhenVisible('#submit')
.closeNotification()
- .waitForElementPresent('#jump-to-db', waitTime, false)
+ .waitForElementPresent('[data-name="jump-to-db"]', waitTime, false)
// important! wait for the db page to fully load. This was the cause of many bugs
.waitForElementVisible('#dashboard-content table.databases', waitTime, false);