dbm 1.1.18 → 1.1.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/flow/updatefunctions/basic/index.js +14 -0
- package/graphapi/webclient/ApiConnection.js +1 -0
- package/graphapi/webclient/WebSocketConnection.js +1 -0
- package/graphapi/webclient/admin/ItemEditor.js +21 -1
- package/package.json +1 -1
- package/react/admin/EditPage.js +7 -1
- package/react/admin/editor/fields/ImageField.js +31 -0
- package/react/admin/editorsgroup/EditIdentifer.js +25 -0
- package/react/admin/editorsgroup/index.js +2 -1
- package/react/admin/objects/ObjectList.js +8 -1
- package/react/admin/objects/itemeditors/Identifier.js +45 -0
- package/react/admin/objects/itemeditors/MainImage.js +46 -0
- package/react/admin/objects/itemeditors/PageRepresentation.js +46 -0
- package/react/admin/objects/itemeditors/index.js +4 -1
- package/react/admin/website/EditLocalBusiness.js +9 -0
- package/react/blocks/admin/objects/List.js +7 -1
- package/react/blocks/faq/AskAQuestion.js +2 -2
- package/react/blocks/faq/HelpSectionRowItem.js +1 -1
- package/react/blocks/index.js +35 -5
- package/utils/ArrayFunctions.js +20 -0
|
@@ -31,5 +31,19 @@ export const propertyOf = function(aValue, aPropertyName) {
|
|
|
31
31
|
updateFunction.input.properties.value.setOrConnect(aValue);
|
|
32
32
|
updateFunction.input.properties.propertyName.setOrConnect(aPropertyName);
|
|
33
33
|
|
|
34
|
+
return updateFunction;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export const combine = function(...aValues) {
|
|
38
|
+
let updateFunction = new Dbm.flow.updatefunctions.basic.CombineString();
|
|
39
|
+
|
|
40
|
+
let currentArray = aValues;
|
|
41
|
+
let currentArrayLength = currentArray.length;
|
|
42
|
+
for(let i = 0; i < currentArrayLength; i++) {
|
|
43
|
+
let currentData = currentArray[i];
|
|
44
|
+
updateFunction.addPart(currentData);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
|
|
34
48
|
return updateFunction;
|
|
35
49
|
}
|
|
@@ -84,6 +84,7 @@ export default class WebSocketConnection extends Dbm.core.BaseObject {
|
|
|
84
84
|
|
|
85
85
|
requestItem(aId, aEncode) {
|
|
86
86
|
let item = this._getRequestItem();
|
|
87
|
+
item.requireProperty("item", null);
|
|
87
88
|
item.setValue("requestData", {"type": "item", "id": aId, "encode": aEncode, "requestId": item.id});
|
|
88
89
|
this._runRequest(item);
|
|
89
90
|
|
|
@@ -105,7 +105,7 @@ export default class ItemEditor extends Dbm.core.BaseObject {
|
|
|
105
105
|
}
|
|
106
106
|
|
|
107
107
|
getVisibilityEditor(aInitialValue) {
|
|
108
|
-
let name = "visibility"
|
|
108
|
+
let name = "visibility";
|
|
109
109
|
let valueEditor = this.item["visibility"];
|
|
110
110
|
if(!valueEditor) {
|
|
111
111
|
valueEditor = new Dbm.graphapi.webclient.admin.ValueEditor();
|
|
@@ -124,6 +124,26 @@ export default class ItemEditor extends Dbm.core.BaseObject {
|
|
|
124
124
|
return valueEditor;
|
|
125
125
|
}
|
|
126
126
|
|
|
127
|
+
getIdentiferEditor(aInitialValue) {
|
|
128
|
+
let name = "identifer";
|
|
129
|
+
let valueEditor = this.item["identifer"];
|
|
130
|
+
if(!valueEditor) {
|
|
131
|
+
valueEditor = new Dbm.graphapi.webclient.admin.ValueEditor();
|
|
132
|
+
valueEditor.item.editValue.setInitialValue(aInitialValue);
|
|
133
|
+
|
|
134
|
+
valueEditor.item.setValue("itemEditor", this.item);
|
|
135
|
+
valueEditor.item.setValue("updateEncoding", "identifer");
|
|
136
|
+
|
|
137
|
+
this.item.anyChange.addCheck(valueEditor.item.properties.changed);
|
|
138
|
+
this.item.setValue(name, valueEditor);
|
|
139
|
+
this.item.editors = [].concat(this.item.editors, valueEditor);
|
|
140
|
+
|
|
141
|
+
valueEditor.addSaveFunction(Dbm.graphapi.webclient.admin.SaveFunctions.setIdentifier);
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
return valueEditor;
|
|
145
|
+
}
|
|
146
|
+
|
|
127
147
|
addCommandsToSaveData(aSaveData) {
|
|
128
148
|
|
|
129
149
|
let editedItemId = Dbm.objectPath(this.item, "editedItem.id");
|
package/package.json
CHANGED
package/react/admin/EditPage.js
CHANGED
|
@@ -194,7 +194,13 @@ export default class EditPage extends Dbm.react.BaseObject {
|
|
|
194
194
|
"155"
|
|
195
195
|
)
|
|
196
196
|
),
|
|
197
|
-
|
|
197
|
+
React.createElement("div", {className: "spacing standard"}),
|
|
198
|
+
React.createElement(Dbm.react.form.LabelledArea, {label: "Main image"},
|
|
199
|
+
React.createElement(Dbm.react.admin.editorsgroup.EditRelation, {"direction": "in", "relationType": "isMainImageFor", "objectType": "image"},
|
|
200
|
+
React.createElement(Dbm.react.form.GraphApiImage, {value: Dbm.react.source.contextVariable("valueEditor.editValue.value"), "objectType": "page", "encoding": "title", nameField: "title", className: "standard-field standard-field-padding full-width"})
|
|
201
|
+
)
|
|
202
|
+
),
|
|
203
|
+
React.createElement("div", {className: "spacing standard"}),
|
|
198
204
|
React.createElement("div", {className: "flex-row small-item-spacing"},
|
|
199
205
|
React.createElement("div", {className: "flex-row-item"},
|
|
200
206
|
React.createElement(Dbm.react.form.Checkbox, {checked: itemEditor.getEditor("seo/noIndex").item.editValue.value}),
|
|
@@ -58,6 +58,14 @@ export default class ImageField extends Dbm.react.BaseObject {
|
|
|
58
58
|
"Save to library"
|
|
59
59
|
)
|
|
60
60
|
)
|
|
61
|
+
),
|
|
62
|
+
React.createElement("div", {className: "flex-row-item flex-resize"}),
|
|
63
|
+
React.createElement("div", {className: "flex-row-item"},
|
|
64
|
+
React.createElement(Dbm.react.interaction.CommandButton, {command: Dbm.commands.callFunction(this._updateFromLibrary.bind(this))},
|
|
65
|
+
React.createElement("div", {className: "action-button action-button-padding"},
|
|
66
|
+
"Update from library"
|
|
67
|
+
)
|
|
68
|
+
)
|
|
61
69
|
)
|
|
62
70
|
)
|
|
63
71
|
)
|
|
@@ -153,6 +161,29 @@ export default class ImageField extends Dbm.react.BaseObject {
|
|
|
153
161
|
let request = Dbm.getInstance().repository.getItem("graphApi").controller.editItem(this.item.value.id, changes);
|
|
154
162
|
}
|
|
155
163
|
|
|
164
|
+
_updateFromLibrary() {
|
|
165
|
+
let graphApi = Dbm.getInstance().repository.getItem("graphApi").controller;
|
|
166
|
+
|
|
167
|
+
let request = graphApi.requestItem(this.item.value.id, ["image"]);
|
|
168
|
+
Dbm.flow.addUpdateCommandWhenMatched(request.properties.status, Dbm.loading.LoadingStatus.LOADED, Dbm.commands.callFunction(this._libraryImageLoaded.bind(this), [request]));
|
|
169
|
+
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
_libraryImageLoaded(aRequest) {
|
|
173
|
+
console.log("_libraryImageLoaded");
|
|
174
|
+
console.log(aRequest);
|
|
175
|
+
|
|
176
|
+
let item = aRequest.item;
|
|
177
|
+
|
|
178
|
+
let imageData = {id: item.id, url: item.url, resizeUrl: item.resizeUrl, identifier: item.identifier, altText: item.altText};
|
|
179
|
+
this.item.value = null;
|
|
180
|
+
|
|
181
|
+
setTimeout(() => {
|
|
182
|
+
this.item.value = imageData;
|
|
183
|
+
}, 100);
|
|
184
|
+
|
|
185
|
+
}
|
|
186
|
+
|
|
156
187
|
_imageSelected(aImage) {
|
|
157
188
|
//console.log("_imageSelected");
|
|
158
189
|
//console.log(aImage);
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import Dbm from "../../../index.js";
|
|
3
|
+
|
|
4
|
+
export default class EditVisibility extends Dbm.react.BaseObject {
|
|
5
|
+
_construct() {
|
|
6
|
+
super._construct();
|
|
7
|
+
|
|
8
|
+
let item = this.context.item;
|
|
9
|
+
let itemEditor = this.context.itemEditor;
|
|
10
|
+
let initialDataPath = this.getPropValueWithDefault("initialDataPath", "identifier");
|
|
11
|
+
let initialData = Dbm.objectPath(item, initialDataPath);
|
|
12
|
+
|
|
13
|
+
let editor = itemEditor.getIdentiferEditor(initialData);
|
|
14
|
+
this.item.setValue("editor", editor.item);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
_renderMainElement() {
|
|
18
|
+
|
|
19
|
+
let children = this.getPropValue("children")
|
|
20
|
+
|
|
21
|
+
return React.createElement("div", {},
|
|
22
|
+
React.createElement(Dbm.react.context.AddContextVariables, {"values": {"valueEditor": this.item.editor}}, children)
|
|
23
|
+
);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export {default as EditField} from "./EditField.js";
|
|
2
2
|
export {default as EditItem} from "./EditItem.js";
|
|
3
3
|
export {default as EditRelation} from "./EditRelation.js";
|
|
4
|
-
export {default as EditVisibility} from "./EditVisibility.js";
|
|
4
|
+
export {default as EditVisibility} from "./EditVisibility.js";
|
|
5
|
+
export {default as EditIdentifer} from "./EditIdentifer.js";
|
|
@@ -44,6 +44,7 @@ export default class ObjectList extends Dbm.react.BaseObject {
|
|
|
44
44
|
|
|
45
45
|
_create() {
|
|
46
46
|
console.log("_create");
|
|
47
|
+
|
|
47
48
|
let objectType = this.getPropValue("objectType");
|
|
48
49
|
let encodings = this.getPropValueWithDefault("encodings", ["name"]);
|
|
49
50
|
let visibility = this.getPropValueWithDefault("visibility", "private");
|
|
@@ -52,7 +53,13 @@ export default class ObjectList extends Dbm.react.BaseObject {
|
|
|
52
53
|
{"type": "setField", "data": {"value": "Unnamed " + objectType, "field": "name"}}
|
|
53
54
|
];
|
|
54
55
|
|
|
55
|
-
let
|
|
56
|
+
let types = [objectType];
|
|
57
|
+
let additionalTypes = this.getPropValue("additionalTypes");
|
|
58
|
+
if(additionalTypes) {
|
|
59
|
+
types = types.concat(additionalTypes);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
let request = Dbm.getInstance().repository.getItem("graphApi").controller.createItem(types, visibility, changes, encodings);
|
|
56
63
|
|
|
57
64
|
Dbm.flow.addUpdateCommand(request.properties.status, Dbm.commands.callFunction(this._created.bind(this), [request]));
|
|
58
65
|
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import Dbm from "../../../../index.js";
|
|
3
|
+
|
|
4
|
+
export default class Identifier extends Dbm.react.BaseObject {
|
|
5
|
+
_construct() {
|
|
6
|
+
super._construct();
|
|
7
|
+
|
|
8
|
+
let graphApi = Dbm.getInstance().repository.getItem("graphApi").controller;
|
|
9
|
+
|
|
10
|
+
let id = this.context.item.id;
|
|
11
|
+
|
|
12
|
+
let allLoaded = Dbm.flow.updatefunctions.logic.allAtValue(Dbm.loading.LoadingStatus.LOADED);
|
|
13
|
+
this.item.requireProperty("loaded", false);
|
|
14
|
+
|
|
15
|
+
{
|
|
16
|
+
let request = graphApi.requestRange(
|
|
17
|
+
[
|
|
18
|
+
{"type": "includePrivate"},
|
|
19
|
+
{"type": "includeDraft"},
|
|
20
|
+
{"type": "idSelection", "ids": [id]},
|
|
21
|
+
],
|
|
22
|
+
["identifier"]
|
|
23
|
+
);
|
|
24
|
+
allLoaded.addCheck(request.properties.status);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
this.item.properties.loaded.connectInput(allLoaded.output.properties.value);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
_renderMainElement() {
|
|
31
|
+
|
|
32
|
+
let id = this.context.item.id;
|
|
33
|
+
|
|
34
|
+
return React.createElement("div", {},
|
|
35
|
+
React.createElement(Dbm.react.area.HasData, {check: this.item.properties.loaded},
|
|
36
|
+
React.createElement(Dbm.react.form.LabelledArea, {label: "Identifer"},
|
|
37
|
+
React.createElement(Dbm.react.admin.editorsgroup.EditIdentifer, {},
|
|
38
|
+
React.createElement(Dbm.react.form.FormField, {value: Dbm.react.source.contextVariable("valueEditor.editValue.value"), className: "standard-field standard-field-padding full-width"})
|
|
39
|
+
)
|
|
40
|
+
)
|
|
41
|
+
)
|
|
42
|
+
|
|
43
|
+
)
|
|
44
|
+
}
|
|
45
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import Dbm from "../../../../index.js";
|
|
3
|
+
|
|
4
|
+
export default class MainImage extends Dbm.react.BaseObject {
|
|
5
|
+
_construct() {
|
|
6
|
+
super._construct();
|
|
7
|
+
|
|
8
|
+
let graphApi = Dbm.getInstance().repository.getItem("graphApi").controller;
|
|
9
|
+
|
|
10
|
+
let id = this.context.item.id;
|
|
11
|
+
|
|
12
|
+
let allLoaded = Dbm.flow.updatefunctions.logic.allAtValue(Dbm.loading.LoadingStatus.LOADED);
|
|
13
|
+
this.item.requireProperty("loaded", false);
|
|
14
|
+
|
|
15
|
+
{
|
|
16
|
+
let request = graphApi.requestRange(
|
|
17
|
+
[
|
|
18
|
+
{"type": "includePrivate"},
|
|
19
|
+
{"type": "includeDraft"},
|
|
20
|
+
{"type": "idSelection", "ids": [id]},
|
|
21
|
+
],
|
|
22
|
+
["admin_fields", "relations"]
|
|
23
|
+
);
|
|
24
|
+
allLoaded.addCheck(request.properties.status);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
this.item.properties.loaded.connectInput(allLoaded.output.properties.value);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
_renderMainElement() {
|
|
31
|
+
|
|
32
|
+
let id = this.context.item.id;
|
|
33
|
+
|
|
34
|
+
return React.createElement("div", {},
|
|
35
|
+
|
|
36
|
+
React.createElement(Dbm.react.area.HasData, {check: this.item.properties.loaded},
|
|
37
|
+
React.createElement(Dbm.react.form.LabelledArea, {label: "Main image"},
|
|
38
|
+
React.createElement(Dbm.react.admin.editorsgroup.EditRelation, {"direction": "in", "relationType": "isMainImageFor", "objectType": "image"},
|
|
39
|
+
React.createElement(Dbm.react.form.GraphApiImage, {value: Dbm.react.source.contextVariable("valueEditor.editValue.value"), "objectType": "page", "encoding": "title", nameField: "title", className: "standard-field standard-field-padding full-width"})
|
|
40
|
+
)
|
|
41
|
+
)
|
|
42
|
+
)
|
|
43
|
+
|
|
44
|
+
)
|
|
45
|
+
}
|
|
46
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import Dbm from "../../../../index.js";
|
|
3
|
+
|
|
4
|
+
export default class PageRepresentation extends Dbm.react.BaseObject {
|
|
5
|
+
_construct() {
|
|
6
|
+
super._construct();
|
|
7
|
+
|
|
8
|
+
let graphApi = Dbm.getInstance().repository.getItem("graphApi").controller;
|
|
9
|
+
|
|
10
|
+
let id = this.context.item.id;
|
|
11
|
+
|
|
12
|
+
let allLoaded = Dbm.flow.updatefunctions.logic.allAtValue(Dbm.loading.LoadingStatus.LOADED);
|
|
13
|
+
this.item.requireProperty("loaded", false);
|
|
14
|
+
|
|
15
|
+
{
|
|
16
|
+
let request = graphApi.requestRange(
|
|
17
|
+
[
|
|
18
|
+
{"type": "includePrivate"},
|
|
19
|
+
{"type": "includeDraft"},
|
|
20
|
+
{"type": "idSelection", "ids": [id]},
|
|
21
|
+
],
|
|
22
|
+
["admin_fields", "relations"]
|
|
23
|
+
);
|
|
24
|
+
allLoaded.addCheck(request.properties.status);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
this.item.properties.loaded.connectInput(allLoaded.output.properties.value);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
_renderMainElement() {
|
|
31
|
+
|
|
32
|
+
let id = this.context.item.id;
|
|
33
|
+
|
|
34
|
+
return React.createElement("div", {},
|
|
35
|
+
|
|
36
|
+
React.createElement(Dbm.react.area.HasData, {check: this.item.properties.loaded},
|
|
37
|
+
React.createElement(Dbm.react.form.LabelledArea, {label: "Represening page"},
|
|
38
|
+
React.createElement(Dbm.react.admin.editorsgroup.EditRelation, {"direction": "in", "relationType": "pageRepresentationFor", "objectType": "page"},
|
|
39
|
+
React.createElement(Dbm.react.form.GraphApiObjectSelection, {value: Dbm.react.source.contextVariable("valueEditor.editValue.value"), "objectType": "page", "encoding": "title", nameField: "title", className: "standard-field standard-field-padding full-width"})
|
|
40
|
+
)
|
|
41
|
+
)
|
|
42
|
+
)
|
|
43
|
+
|
|
44
|
+
)
|
|
45
|
+
}
|
|
46
|
+
}
|
|
@@ -5,4 +5,7 @@ export {default as Link} from "./Link.js";
|
|
|
5
5
|
export {default as Visibility} from "./Visibility.js";
|
|
6
6
|
export {default as LinkedPage} from "./LinkedPage.js";
|
|
7
7
|
export {default as Question} from "./Question.js";
|
|
8
|
-
export {default as RichDescription} from "./RichDescription.js";
|
|
8
|
+
export {default as RichDescription} from "./RichDescription.js";
|
|
9
|
+
export {default as PageRepresentation} from "./PageRepresentation.js";
|
|
10
|
+
export {default as MainImage} from "./MainImage.js";
|
|
11
|
+
export {default as Identifier} from "./Identifier.js";
|
|
@@ -48,6 +48,12 @@ export default class EditWebsite extends Dbm.react.BaseObject {
|
|
|
48
48
|
let mainImage = (isMainImageForRelations && isMainImageForRelations.length) ? isMainImageForRelations[0].id : null;
|
|
49
49
|
itemEditor.addIncomingRelationEditor("isMainImageFor", "image", mainImage, ["relations"]);
|
|
50
50
|
|
|
51
|
+
{
|
|
52
|
+
let relatedItems = Dbm.utils.ArrayFunctions.filterByField(Dbm.objectPath(item, "relations/in.for.objects"), "objectTypes", "schema/type", "arrayContains");
|
|
53
|
+
let relatedItem = (relatedItems && relatedItems.length) ? relatedItems[0].id : null;
|
|
54
|
+
itemEditor.addIncomingRelationEditor("for", "schema/type", relatedItem, ["relations"]);
|
|
55
|
+
}
|
|
56
|
+
|
|
51
57
|
itemEditor.addFieldEditor("phoneNumber", Dbm.objectPath(item, "fields.phoneNumber"), "admin_fields");
|
|
52
58
|
itemEditor.addFieldEditor("email", Dbm.objectPath(item, "fields.email"), "admin_fields");
|
|
53
59
|
itemEditor.addFieldEditor("priceRangeDescription", Dbm.objectPath(item, "fields.priceRangeDescription"), "admin_fields");
|
|
@@ -83,6 +89,9 @@ export default class EditWebsite extends Dbm.react.BaseObject {
|
|
|
83
89
|
React.createElement(Dbm.react.form.LabelledArea, {"label": "Name"},
|
|
84
90
|
React.createElement(Dbm.react.form.FormField, {"value": Dbm.react.source.contextVariable("itemEditor.value.item.editor_name.item.editValue.item.properties.value"), className: "standard-field standard-field-padding full-width"})
|
|
85
91
|
),
|
|
92
|
+
React.createElement(Dbm.react.form.LabelledArea, {"label": "Schema type"},
|
|
93
|
+
React.createElement(Dbm.react.form.GraphApiObjectSelection, {"objectType": "schema/type", "value": Dbm.react.source.contextVariable("itemEditor.value.item.editor_relation_in_for_schema/type.item.editValue.item.properties.value")}),
|
|
94
|
+
),
|
|
86
95
|
React.createElement(Dbm.react.form.LabelledArea, {"label": "Image"},
|
|
87
96
|
React.createElement(Dbm.react.form.GraphApiImage, {"value": Dbm.react.source.contextVariable("itemEditor.value.item.editor_relation_in_isMainImageFor_image.item.editValue.item.properties.value")}),
|
|
88
97
|
),
|
|
@@ -9,9 +9,15 @@ export default class ObjectList extends Dbm.react.BaseObject {
|
|
|
9
9
|
_renderMainElement() {
|
|
10
10
|
|
|
11
11
|
let encodings = Dbm.utils.ArrayFunctions.arrayOrSeparatedString(this.context.blockData.encodings);
|
|
12
|
+
let additionalTypes = [];
|
|
13
|
+
|
|
14
|
+
let additionalTypesString = this.context.blockData.additionalTypes;
|
|
15
|
+
if(additionalTypesString) {
|
|
16
|
+
additionalTypes = Dbm.utils.ArrayFunctions.arrayOrSeparatedString(additionalTypesString);
|
|
17
|
+
}
|
|
12
18
|
|
|
13
19
|
return React.createElement("div", {className: "content-narrow"},
|
|
14
|
-
React.createElement(Dbm.react.admin.objects.ObjectList, {objectType: this.context.blockData.objectType, encodings: encodings, nameField: this.context.blockData.nameField, visibility: this.context.blockData.visibility})
|
|
20
|
+
React.createElement(Dbm.react.admin.objects.ObjectList, {objectType: this.context.blockData.objectType, additionalTypes: additionalTypes, encodings: encodings, nameField: this.context.blockData.nameField, visibility: this.context.blockData.visibility})
|
|
15
21
|
);
|
|
16
22
|
}
|
|
17
23
|
}
|
|
@@ -66,7 +66,7 @@ export default class AskAQuestion extends Dbm.react.BaseObject {
|
|
|
66
66
|
let currentRow = new Dbm.repository.Item();
|
|
67
67
|
currentRow.setId("_dbmInternal/row" + Dbm.getInstance().getNextId());
|
|
68
68
|
currentRow.setValue("item", currentItem);
|
|
69
|
-
currentRow.setValue("element", React.createElement(Dbm.react.blocks.faq.HelpSectionRowItem, {"open": this._getOpenProperty(i)}));
|
|
69
|
+
currentRow.setValue("element", React.createElement(Dbm.react.blocks.faq.HelpSectionRowItem, {"open": this._getOpenProperty(i), "startState": (i === 0 ? "open" : "close")}));
|
|
70
70
|
rows.push(currentRow);
|
|
71
71
|
}
|
|
72
72
|
this.item.results = rows;
|
|
@@ -133,7 +133,7 @@ export default class AskAQuestion extends Dbm.react.BaseObject {
|
|
|
133
133
|
),
|
|
134
134
|
React.createElement("div", {className: "flex-row-item flex-no-resize"},
|
|
135
135
|
React.createElement("div", {className: "submit-button-field-padding-right-side border-box-sizing full-height"},
|
|
136
|
-
React.createElement("button", {className: "skip-default full-height"},
|
|
136
|
+
React.createElement("button", {className: "skip-default full-height", "aria-label": "Search"},
|
|
137
137
|
React.createElement("div", {className: "field-submit-button field-submit-button-padding full-height", onClick: () => {this._search();}},
|
|
138
138
|
React.createElement("div", {className: "centered-cell-holder full-size"},
|
|
139
139
|
React.createElement(Dbm.react.image.Image, {src: "/assets/img/right-arrow.svg", className: "right-arrow-link-icon background-contain"})
|
|
@@ -71,7 +71,7 @@ export default class HelpSectionRowItem extends Dbm.react.BaseObject {
|
|
|
71
71
|
)
|
|
72
72
|
)
|
|
73
73
|
),
|
|
74
|
-
React.createElement(Dbm.react.area.OpenCloseExpandableArea, {open: open},
|
|
74
|
+
React.createElement(Dbm.react.area.OpenCloseExpandableArea, {open: open, startState: this.getPropValue("startState")},
|
|
75
75
|
answerElement
|
|
76
76
|
)
|
|
77
77
|
);
|
package/react/blocks/index.js
CHANGED
|
@@ -114,6 +114,10 @@ export let registerAllBlocks = function() {
|
|
|
114
114
|
createElement(Dbm.react.admin.editor.fields.TextField, {name: "objectType"})
|
|
115
115
|
),
|
|
116
116
|
createElement("div", {className: "spacing medium"}),
|
|
117
|
+
createElement(Dbm.react.form.LabelledArea, {label: "Additional types (optional)"},
|
|
118
|
+
createElement(Dbm.react.admin.editor.fields.TextField, {name: "additionalTypes"})
|
|
119
|
+
),
|
|
120
|
+
createElement("div", {className: "spacing medium"}),
|
|
117
121
|
createElement(Dbm.react.form.LabelledArea, {label: "Encodings"},
|
|
118
122
|
createElement(Dbm.react.admin.editor.fields.TextField, {name: "encodings"})
|
|
119
123
|
),
|
|
@@ -210,15 +214,11 @@ export let registerAllBlocks = function() {
|
|
|
210
214
|
|
|
211
215
|
{
|
|
212
216
|
let editor = createElement(Dbm.react.admin.editor.EditorBlockName, {},
|
|
213
|
-
createElement(Dbm.react.form.LabelledArea, {label: "Text 1"},
|
|
214
|
-
createElement(Dbm.react.admin.editor.fields.TextField, {name: "text1"})
|
|
215
|
-
),
|
|
216
|
-
createElement("div", {className: "spacing medium"}),
|
|
217
217
|
createElement(Dbm.react.form.LabelledArea, {label: "Initial sections"},
|
|
218
218
|
createElement(Dbm.react.admin.editor.fields.SelectObjectsField, {objectType: "helpSection", name:"initialSections", "encoding": "title", "nameField": "title"})
|
|
219
219
|
),
|
|
220
220
|
);
|
|
221
|
-
registerBlock("faq/askAQuestion", "FAQ / Ask a question", createElement(Dbm.react.blocks.faq.AskAQuestion, {}), editor, {}, {
|
|
221
|
+
registerBlock("faq/askAQuestion", "FAQ / Ask a question", createElement(Dbm.react.blocks.faq.AskAQuestion, {}), editor, {}, {});
|
|
222
222
|
}
|
|
223
223
|
|
|
224
224
|
{
|
|
@@ -251,6 +251,11 @@ export let registerAllBlocks = function() {
|
|
|
251
251
|
itemEditor.setValue("element", createElement(Dbm.react.admin.objects.itemeditors.Visibility, {}));
|
|
252
252
|
}
|
|
253
253
|
|
|
254
|
+
{
|
|
255
|
+
let itemEditor = Dbm.getInstance().repository.getItem("admin/itemEditors/identifier");
|
|
256
|
+
itemEditor.setValue("element", createElement(Dbm.react.admin.objects.itemeditors.Identifier, {}));
|
|
257
|
+
}
|
|
258
|
+
|
|
254
259
|
{
|
|
255
260
|
let itemEditor = Dbm.getInstance().repository.getItem("admin/itemEditors/linkedPage");
|
|
256
261
|
itemEditor.setValue("element", createElement(Dbm.react.admin.objects.itemeditors.LinkedPage, {}));
|
|
@@ -260,6 +265,16 @@ export let registerAllBlocks = function() {
|
|
|
260
265
|
let itemEditor = Dbm.getInstance().repository.getItem("admin/itemEditors/question");
|
|
261
266
|
itemEditor.setValue("element", createElement(Dbm.react.admin.objects.itemeditors.Question, {}));
|
|
262
267
|
}
|
|
268
|
+
|
|
269
|
+
{
|
|
270
|
+
let itemEditor = Dbm.getInstance().repository.getItem("admin/itemEditors/pageRepresentation");
|
|
271
|
+
itemEditor.setValue("element", createElement(Dbm.react.admin.objects.itemeditors.PageRepresentation, {}));
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
{
|
|
275
|
+
let itemEditor = Dbm.getInstance().repository.getItem("admin/itemEditors/mainImage");
|
|
276
|
+
itemEditor.setValue("element", createElement(Dbm.react.admin.objects.itemeditors.MainImage, {}));
|
|
277
|
+
}
|
|
263
278
|
|
|
264
279
|
{
|
|
265
280
|
let objectTypeEditor = Dbm.getInstance().repository.getItem("admin/objectTypeEditors/page");
|
|
@@ -300,4 +315,19 @@ export let registerAllBlocks = function() {
|
|
|
300
315
|
newArray.push(Dbm.getInstance().repository.getItem("admin/itemEditors/visibility"));
|
|
301
316
|
objectTypeEditor.editors = newArray;
|
|
302
317
|
}
|
|
318
|
+
|
|
319
|
+
{
|
|
320
|
+
let objectTypeEditor = Dbm.getInstance().repository.getItem("admin/objectTypeEditors/type");
|
|
321
|
+
if(!objectTypeEditor.editors) {
|
|
322
|
+
objectTypeEditor.setValue("editors", []);
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
let newArray = [].concat(objectTypeEditor.editors);
|
|
326
|
+
newArray.push(Dbm.getInstance().repository.getItem("admin/itemEditors/name"));
|
|
327
|
+
newArray.push(Dbm.getInstance().repository.getItem("admin/itemEditors/identifier"));
|
|
328
|
+
newArray.push(Dbm.getInstance().repository.getItem("admin/itemEditors/pageRepresentation"));
|
|
329
|
+
newArray.push(Dbm.getInstance().repository.getItem("admin/itemEditors/mainImage"));
|
|
330
|
+
|
|
331
|
+
objectTypeEditor.editors = newArray;
|
|
332
|
+
}
|
|
303
333
|
}
|
package/utils/ArrayFunctions.js
CHANGED
|
@@ -290,4 +290,24 @@ export const getItemIndexByIfExists = function(aArray, aField, aIdentifier) {
|
|
|
290
290
|
}
|
|
291
291
|
|
|
292
292
|
return -1;
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
export const sum = function(aArray) {
|
|
296
|
+
|
|
297
|
+
if(!Array.isArray(aArray)) {
|
|
298
|
+
console.warn("No array provided", aArray);
|
|
299
|
+
return 0;
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
let sum = 0;
|
|
303
|
+
let currentArray = aArray;
|
|
304
|
+
let currentArrayLength = currentArray.length;
|
|
305
|
+
for(let i = 0; i < currentArrayLength; i++) {
|
|
306
|
+
let currentValue = 1*currentArray[i];
|
|
307
|
+
if(!isNaN(currentValue)) {
|
|
308
|
+
sum += currentValue;
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
return sum;
|
|
293
313
|
}
|