Conversation
There was a problem hiding this comment.
I've made a birds-eye review. Most of them don't require action in this PR as the code as general is really nice :)
Edit: aaaaand I've just read the follow-ups and I can see the declarative from builder which probably address the coment about form view class :)
| const editor = this.editor; | ||
| const data = {}; | ||
|
|
||
| for ( const propertyName of CELL_PROPERTIES ) { |
There was a problem hiding this comment.
I wonder if it wouldn't be better to separate logic related to each value of CELL_PROPERTIES as here and in other places there are loops and checks.
This will have some code duplication for sure. But maybe it will be more clear or will require fewer changes if the logic for one of the values would change. Another consideration is enabling/disabling (by configuration - not in runtime) some properties from editing.
then some code would be
handleProperty() {
this.listenTo( view, 'change:property', ... );
// some other listener for the form view setting
}| import ToolbarView from '@ckeditor/ckeditor5-ui/src/toolbar/toolbarview'; | ||
| import ButtonView from '@ckeditor/ckeditor5-ui/src/button/buttonview'; | ||
|
|
||
| import checkIcon from '@ckeditor/ckeditor5-core/theme/icons/check.svg'; |
There was a problem hiding this comment.
❤️ 📜 I just love those wall of text in this whole feature :D
| bottom: t( 'Align cell text to the bottom' ) | ||
| }; | ||
| } | ||
| } |
There was a problem hiding this comment.
Just a thought - awfully long and mixes logic for different properties. I think that it might be a good candidate for a follow up / decision to make for the future. It's OK for the MVP :)
There was a problem hiding this comment.
ps.: Also the above comment can have little sense if we can't have a need for enabling or disabling some properties.
src/ui/utils.js
Outdated
| * @returns {module:utils/dom/position~Options} | ||
| */ | ||
| export function getBalloonCellPositionData( editor ) { | ||
| const model = editor.model; |
There was a problem hiding this comment.
I think that some of the intermediate values could be dropped in favor of a shorter method.
| import TableCellPropertiesUI from '../../src/tablecellproperties/tablecellpropertiesui'; | ||
| import TableCellPropertiesUIView from '../../src/tablecellproperties/ui/tablecellpropertiesview'; | ||
|
|
||
| describe( 'TableCellPropertiesUI', () => { |
There was a problem hiding this comment.
I've wrapped the test in either describe( 'table cell properties', () => {} ) or describe( 'table properties', () => {} ) to group those tests. This is just cosmetic but it helped me to group those tests in a report:
ps.: I'll hijack this comment for standup tension as current table tests are a mes :D
|
Self.R-: Use |
Nah, checked it and it's not necessary after all. |
Feature: Created the `LabeledView` class (see ckeditor/ckeditor5-table#227). Also added `id` properties to the `DropdownView` and `LabelView` for compatibility with the `LabeledView`.
Feature: Added styles for the LabeledView (see ckeditor/ckeditor5-table#227).
Feature: Added vertical alignment icons. Also moved alignment icons form ckeditor5-alignment (see ckeditor/ckeditor5-table#227).
Other: Moved alignment icons to ckeditor5-core (see ckeditor/ckeditor5-table#227). BREAKING CHANGE: The `align-left`, `align-right`, `align-center`, and `align-justify` icons have been moved to `ckeditor5-core`.
jodator
left a comment
There was a problem hiding this comment.
Everything looks and works very good :) I have only one concern about the main UI class an how the bindings are constructed there. However, we can move that part to a follow up to unblock other work but we should decide what to do with this for the table properties UI.
Co-Authored-By: Maciej <jodator@jodator.net>
Co-Authored-By: Maciej <jodator@jodator.net>
Co-Authored-By: Maciej <jodator@jodator.net>



Suggested merge commit message (convention)
Feature: Introduced the table cell properties UI. Closes ckeditor/ckeditor5#6049.
Additional information
Requirements
Dependencies:
LabeledViewand tweaked theDropdownViewandLabelViewLabeledViewRound up
New things in the PR:
TableCellPropertiesUI(controller plugin)TableCellPropertiesView(form view)FormRowViewa class shared between theTableCellPropertiesViewand the (future)TablePropertiesView. Initially, I wanted to make it part of ckeditor5-ui then I figured we may need something better like a form builder so making it a public API does not make sense ATM (until we do more than 2 table forms).Followups:
Also:
LabeledInputViewin favor ofLabeledView