Skip to content

Commit 5cf919b

Browse files
durranimlucas
authored andcommitted
INT-1617: Fixing _id edit, object conversion
1 parent ca4e1dd commit 5cf919b

File tree

5 files changed

+16
-15
lines changed

5 files changed

+16
-15
lines changed

src/internal-packages/crud/lib/component/document.jsx

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -273,11 +273,7 @@ class Document extends React.Component {
273273
for (let element of this.state.doc.elements) {
274274
components.push(<EditableElement key={element.uuid} element={element} />)
275275
}
276-
// Add the hotspot to the end. In the case of insert, we need to guard against
277-
// No elements being present.
278-
var lastComponent = components[components.length - 1];
279-
var lastElement = lastComponent ? lastComponent.props.element : this.state.doc;
280-
components.push(<Hotspot key='hotspot' element={lastElement} />);
276+
components.push(<Hotspot key='hotspot' element={this.state.doc} />);
281277
return components;
282278
}
283279

src/internal-packages/crud/lib/component/editable-element.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ class EditableElement extends React.Component {
186186
renderAction() {
187187
if (this.element.isEdited() || this.element.isRemoved()) {
188188
return (<RevertAction element={this.element} />);
189-
} else if (this.element.key === '_id') {
189+
} else if (this.element.key === '_id' && !this.element.isAdded()) {
190190
return (<NoAction element={this.element} />);
191191
}
192192
return (<RemoveAction element={this.element} />);

src/internal-packages/crud/lib/component/editable-key.jsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -184,8 +184,7 @@ class EditableKey extends React.Component {
184184
* @returns {Boolean} If the key can be edited.
185185
*/
186186
isEditable() {
187-
return this.element.isKeyEditable() &&
188-
this.element.parent.currentType !== 'Array';
187+
return this.element.isKeyEditable() && this.element.parent.currentType !== 'Array';
189188
}
190189

191190
/**

src/internal-packages/crud/lib/component/insert-document.jsx

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -72,11 +72,7 @@ class InsertDocument extends React.Component {
7272
for (let element of this.doc.elements) {
7373
components.push(<EditableElement key={element.uuid} element={element} />)
7474
}
75-
// Add the hotspot to the end. In the case of insert, we need to guard against
76-
// No elements being present.
77-
var lastComponent = components[components.length - 1];
78-
var lastElement = lastComponent ? lastComponent.props.element : this.state.doc;
79-
components.push(<Hotspot key='hotspot' element={lastElement} />);
75+
components.push(<Hotspot key='hotspot' element={this.doc} />);
8076
return components;
8177
}
8278
}

src/internal-packages/crud/lib/component/types.jsx

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,17 @@ class Types extends React.Component {
2525
* @param {Event} evt - The event.
2626
*/
2727
handleTypeChange(evt) {
28-
this.element.edit(TypeChecker.cast(this.castableValue(), evt.target.innerText));
28+
var newType = evt.target.innerText;
29+
if (newType === 'Object') {
30+
this.element.edit('{');
31+
this.element.next();
32+
} else {
33+
this.element.edit(TypeChecker.cast(this.castableValue(), newType));
34+
}
35+
}
36+
37+
isTypeChangeable() {
38+
return this.element.isValueEditable() || this.element.isAdded();
2939
}
3040

3141
/**
@@ -34,7 +44,7 @@ class Types extends React.Component {
3444
* @returns {React.Component} The element component.
3545
*/
3646
render() {
37-
return this.element.isValueEditable() ? this.renderDropdown() : this.renderLabel();
47+
return this.isTypeChangeable() ? this.renderDropdown() : this.renderLabel();
3848
}
3949

4050
/**

0 commit comments

Comments
 (0)