Repository: couchdb-fauxton Updated Branches: refs/heads/master b65b98574 -> 17e4d040a
Option to show only editor in CodeEditor component Project: http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/repo Commit: http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/commit/1d1d82f4 Tree: http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/tree/1d1d82f4 Diff: http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/diff/1d1d82f4 Branch: refs/heads/master Commit: 1d1d82f4b2e0fc347fe4562e4d631205970401e5 Parents: 91fc5e3 Author: Ben Keen <[email protected]> Authored: Fri May 22 14:34:04 2015 -0700 Committer: Ben Keen <[email protected]> Committed: Mon May 25 08:13:15 2015 -0700 ---------------------------------------------------------------------- .../components/react-components.react.jsx | 5 + app/addons/components/tests/codeEditorSpec.js | 115 ------------------- app/addons/components/tests/codeEditorSpec.jsx | 19 +++ 3 files changed, 24 insertions(+), 115 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/blob/1d1d82f4/app/addons/components/react-components.react.jsx ---------------------------------------------------------------------- diff --git a/app/addons/components/react-components.react.jsx b/app/addons/components/react-components.react.jsx index bf8c6af..427f811 100644 --- a/app/addons/components/react-components.react.jsx +++ b/app/addons/components/react-components.react.jsx @@ -71,6 +71,7 @@ function (app, FauxtonAPI, React, Components, ace, beautifyHelper) { theme: 'idle_fingers', fontSize: 13, code: '', + showEditorOnly: false, showGutter: true, highlightActiveLine: true, showPrintMargin: false, @@ -254,6 +255,10 @@ function (app, FauxtonAPI, React, Components, ace, beautifyHelper) { }, render: function () { + if (this.props.showEditorOnly) { + return (<div ref="ace" className="js-editor" id={this.props.id}></div>); + } + return ( <div className="control-group"> {this.getTitleFragment()} http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/blob/1d1d82f4/app/addons/components/tests/codeEditorSpec.js ---------------------------------------------------------------------- diff --git a/app/addons/components/tests/codeEditorSpec.js b/app/addons/components/tests/codeEditorSpec.js deleted file mode 100644 index 62e7c3a..0000000 --- a/app/addons/components/tests/codeEditorSpec.js +++ /dev/null @@ -1,115 +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. -define([ - 'api', - 'addons/components/react-components.react', - - 'testUtils', - 'react' -], function (FauxtonAPI, ReactComponents, utils, React) { - - var assert = utils.assert; - var TestUtils = React.addons.TestUtils; - var code = 'function (doc) {\n emit(doc._id, 1);\n}'; - var code2 = 'function (doc) {\n if(doc._id) { \n emit(doc._id, 2); \n } \n}'; - - describe('Code Editor', function () { - var container, codeEditorEl, spy; - - beforeEach(function () { - spy = sinon.spy(); - container = document.createElement('div'); - codeEditorEl = TestUtils.renderIntoDocument( - React.createElement(ReactComponents.CodeEditor, {code: code, change: spy}), - container - ); - }); - - afterEach(function () { - React.unmountComponentAtNode(container); - }); - - describe('Tracking edits', function () { - - it('no change on mount', function () { - assert.notOk(codeEditorEl.hasChanged()); - }); - - it('detects change on user input', function () { - codeEditorEl.editor.setValue(code2, -1); - - assert.ok(codeEditorEl.hasChanged()); - }); - - }); - - describe('onBlur', function () { - - it('calls changed function', function () { - codeEditorEl.editor._emit('blur'); - assert.ok(spy.calledOnce); - }); - - }); - - describe('setHeightToLineCount', function () { - - beforeEach(function () { - codeEditorEl = TestUtils.renderIntoDocument( - React.createElement(ReactComponents.CodeEditor, {code: code, isFullPageEditor: false, setHeightWithJS: true}), - container - ); - - }); - - it('sets line height correctly for non full page', function () { - var spy = sinon.spy(codeEditorEl.editor, 'setOptions'); - - codeEditorEl.setHeightToLineCount(); - assert.ok(spy.calledOnce); - assert.equal(spy.getCall(0).args[0].maxLines, 3); - }); - - }); - - describe('removeIncorrectAnnotations', function () { - - beforeEach(function () { - codeEditorEl = TestUtils.renderIntoDocument( - React.createElement(ReactComponents.CodeEditor, {code: code}), - container - ); - - }); - - it('removes default errors that do not apply to CouchDB Views', function () { - assert.equal(codeEditorEl.getAnnotations(), 0); - }); - - }); - - describe('setEditorValue', function () { - - it('sets new code', function () { - codeEditorEl = TestUtils.renderIntoDocument( - React.createElement(ReactComponents.CodeEditor, {code: code}), - container - ); - - codeEditorEl.setEditorValue(code2); - assert.deepEqual(codeEditorEl.getValue(), code2); - }); - - }); - - }); -}); http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/blob/1d1d82f4/app/addons/components/tests/codeEditorSpec.jsx ---------------------------------------------------------------------- diff --git a/app/addons/components/tests/codeEditorSpec.jsx b/app/addons/components/tests/codeEditorSpec.jsx index 849f36c..73f9ce1 100644 --- a/app/addons/components/tests/codeEditorSpec.jsx +++ b/app/addons/components/tests/codeEditorSpec.jsx @@ -111,5 +111,24 @@ define([ }); + describe('showEditorOnly', function () { + + it('only shows editor when showEditorOnly=true', function () { + codeEditorEl = TestUtils.renderIntoDocument( + <ReactComponents.CodeEditor code={code} showEditorOnly={true} />, + container + ); + assert.notOk($(codeEditorEl.getDOMNode()).hasClass('control-group')); + }); + + it('shows everything by default', function () { + var codeEditorEl = TestUtils.renderIntoDocument( + <ReactComponents.CodeEditor code={code} />, + container + ); + assert.ok($(codeEditorEl.getDOMNode()).hasClass('control-group')); + }); + + }); }); });
