From 175759ede6f5d31f18f2adcffef99a3a70332e59 Mon Sep 17 00:00:00 2001 From: panr Date: Fri, 13 Mar 2020 17:37:07 +0100 Subject: [PATCH 1/2] Remove unused form header view component --- src/ui/formheaderview.js | 90 ---------------------------------- tests/ui/formheaderview.js | 98 -------------------------------------- 2 files changed, 188 deletions(-) delete mode 100644 src/ui/formheaderview.js delete mode 100644 tests/ui/formheaderview.js diff --git a/src/ui/formheaderview.js b/src/ui/formheaderview.js deleted file mode 100644 index fd093450..00000000 --- a/src/ui/formheaderview.js +++ /dev/null @@ -1,90 +0,0 @@ -/** - * @license Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license - */ - -/** - * @module table/ui/formheaderview - */ - -import View from '@ckeditor/ckeditor5-ui/src/view'; - -import '../../theme/formheader.css'; - -/** - * The class representing a header in a complex form. - * - * **Note**: For now this class is private. When more use cases arrive (beyond ckeditor5-table), - * it will become a component in ckeditor5-ui. - * - * @private - * @extends module:ui/view~View - */ -export default class FormHeaderView extends View { - /** - * Creates an instance of the form header view class. - * - * @param {module:utils/locale~Locale} locale The locale instance. - * @param {Object} [options] - * @param {String} [options.class] When passed, the class will be set on the header element. - * @param {String} [options.label] When passed, the label will be used for the header. - */ - constructor( locale, options = {} ) { - super( locale ); - - const bind = this.bindTemplate; - - /** - * A collection of header items. - * - * @readonly - * @member {module:ui/viewcollection~ViewCollection} - */ - this.children = this.createCollection(); - - /** - * An additional CSS class added to the {@link #element}. - * - * @observable - * @member {String} #class - */ - this.set( 'class', options.class || null ); - - /** - * The label of the header. - * - * @readonly - * @member {String} #label - */ - this.set( 'label', options.label || '' ); - - const label = new View( locale ); - - label.setTemplate( { - tag: 'span', - attributes: { - class: [ - 'ck', - 'ck-form__header__label' - ] - }, - children: [ - { text: bind.to( 'label' ) } - ] - } ); - - this.children.add( label ); - - this.setTemplate( { - tag: 'div', - attributes: { - class: [ - 'ck', - 'ck-form__header', - bind.to( 'class' ) - ] - }, - children: this.children - } ); - } -} diff --git a/tests/ui/formheaderview.js b/tests/ui/formheaderview.js deleted file mode 100644 index 937df53e..00000000 --- a/tests/ui/formheaderview.js +++ /dev/null @@ -1,98 +0,0 @@ -/** - * @license Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license - */ - -import View from '@ckeditor/ckeditor5-ui/src/view'; -import FormHeaderView from '../../src/ui/formheaderview'; -import ViewCollection from '@ckeditor/ckeditor5-ui/src/viewcollection'; - -describe( 'FormHeaderView', () => { - let view, locale; - - beforeEach( () => { - locale = { t: val => val }; - view = new FormHeaderView( locale ); - view.render(); - } ); - - afterEach( () => { - view.element.remove(); - } ); - - describe( 'constructor()', () => { - it( 'should set view#locale', () => { - expect( view.locale ).to.equal( locale ); - } ); - - it( 'should create view#children collection', () => { - expect( view.children ).to.be.instanceOf( ViewCollection ); - expect( view.children ).to.have.length( 1 ); - } ); - - it( 'should set view#label', () => { - expect( view.label ).to.equal( '' ); - } ); - - it( 'should set view#class', () => { - expect( view.class ).to.be.null; - } ); - - it( 'should set the template', () => { - expect( view.element.classList.contains( 'ck' ) ).to.be.true; - expect( view.element.classList.contains( 'ck-form__header' ) ).to.be.true; - } ); - - describe( 'options', () => { - it( 'should set view#class when class was passed', () => { - const view = new FormHeaderView( locale, { - class: 'foo' - } ); - - expect( view.class ).to.equal( 'foo' ); - - view.destroy(); - } ); - - it( 'should use a label text when passed', () => { - const view = new FormHeaderView( locale, { - label: 'foo' - } ); - - view.render(); - - expect( view.element.firstChild.classList.contains( 'ck' ) ).to.be.true; - expect( view.element.firstChild.classList.contains( 'ck-form__header__label' ) ).to.be.true; - expect( view.element.firstChild.textContent ).to.equal( 'foo' ); - - view.destroy(); - } ); - } ); - - describe( 'template bindings', () => { - it( 'should bind #class to the template', () => { - view.class = 'foo'; - expect( view.element.classList.contains( 'foo' ) ).to.be.true; - } ); - - it( 'should bind #label to the template', () => { - view.label = 'bar'; - expect( view.element.firstChild.textContent ).to.equal( 'bar' ); - - view.label = 'baz'; - expect( view.element.firstChild.textContent ).to.equal( 'baz' ); - } ); - - it( 'should bind #children to the template', () => { - const child = new View(); - child.setTemplate( { tag: 'div' } ); - - view.children.add( child ); - - expect( view.element.childNodes[ 1 ] ).to.equal( child.element ); - - view.destroy(); - } ); - } ); - } ); -} ); From 3d5d6ebc5def026d25f813039cb549d58fed0502 Mon Sep 17 00:00:00 2001 From: panr Date: Fri, 13 Mar 2020 17:37:59 +0100 Subject: [PATCH 2/2] Replace old form header with new reusable one --- src/tablecellproperties/ui/tablecellpropertiesview.js | 3 ++- src/tableproperties/ui/tablepropertiesview.js | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/tablecellproperties/ui/tablecellpropertiesview.js b/src/tablecellproperties/ui/tablecellpropertiesview.js index 6444f716..445c14e1 100644 --- a/src/tablecellproperties/ui/tablecellpropertiesview.js +++ b/src/tablecellproperties/ui/tablecellpropertiesview.js @@ -28,7 +28,8 @@ import { getLabeledColorInputCreator } from '../../ui/utils'; import FormRowView from '../../ui/formrowview'; -import FormHeaderView from '../../ui/formheaderview'; + +import FormHeaderView from '@ckeditor/ckeditor5-ui/src/formheader/formheaderview'; import checkIcon from '@ckeditor/ckeditor5-core/theme/icons/check.svg'; import cancelIcon from '@ckeditor/ckeditor5-core/theme/icons/cancel.svg'; diff --git a/src/tableproperties/ui/tablepropertiesview.js b/src/tableproperties/ui/tablepropertiesview.js index 20642640..c81cb542 100644 --- a/src/tableproperties/ui/tablepropertiesview.js +++ b/src/tableproperties/ui/tablepropertiesview.js @@ -28,7 +28,8 @@ import { getLabeledColorInputCreator } from '../../ui/utils'; import FormRowView from '../../ui/formrowview'; -import FormHeaderView from '../../ui/formheaderview'; + +import FormHeaderView from '@ckeditor/ckeditor5-ui/src/formheader/formheaderview'; import checkIcon from '@ckeditor/ckeditor5-core/theme/icons/check.svg'; import cancelIcon from '@ckeditor/ckeditor5-core/theme/icons/cancel.svg';