dbm 1.1.13 → 1.1.14
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/package.json +1 -1
- package/react/admin/editorsgroup/EditRelation.js +44 -0
- package/react/admin/editorsgroup/index.js +2 -1
- package/react/admin/objects/itemeditors/LinkedPage.js +51 -0
- package/react/admin/objects/itemeditors/Question.js +46 -0
- package/react/admin/objects/itemeditors/index.js +3 -1
- package/react/blocks/index.js +13 -0
package/package.json
CHANGED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import Dbm from "../../../index.js";
|
|
3
|
+
|
|
4
|
+
export default class EditRelation extends Dbm.react.BaseObject {
|
|
5
|
+
_construct() {
|
|
6
|
+
super._construct();
|
|
7
|
+
|
|
8
|
+
let item = this.context.item;
|
|
9
|
+
let itemEditor = this.context.itemEditor;
|
|
10
|
+
let editor;
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
let direction = this.getPropValue("direction");
|
|
14
|
+
let relationType = this.getPropValue("relationType");
|
|
15
|
+
let objectType = this.getPropValue("objectType");
|
|
16
|
+
|
|
17
|
+
let relations = Dbm.utils.ArrayFunctions.filterByField(Dbm.objectPath(item, "relations/" + direction + "." + relationType + ".objects"), "objectTypes", objectType, "arrayContains");
|
|
18
|
+
let relation = (relations && relations.length) ? relations[0].id : null;
|
|
19
|
+
|
|
20
|
+
if(direction == "in") {
|
|
21
|
+
editor = itemEditor.addIncomingRelationEditor(relationType, objectType, relation, ["relations"]);
|
|
22
|
+
}
|
|
23
|
+
else if(direction == "out") {
|
|
24
|
+
editor = itemEditor.addOutgoingRelationEditor(relationType, objectType, relation, ["relations"]);
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
console.error("Unknown direction", direction, this);
|
|
28
|
+
editor = null;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
if(editor) {
|
|
32
|
+
this.item.setValue("editor", editor.item);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
_renderMainElement() {
|
|
37
|
+
|
|
38
|
+
let children = this.getPropValue("children")
|
|
39
|
+
|
|
40
|
+
return React.createElement("div", {},
|
|
41
|
+
React.createElement(Dbm.react.context.AddContextVariables, {"values": {"valueEditor": this.item.editor}}, children)
|
|
42
|
+
);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import Dbm from "../../../../index.js";
|
|
3
|
+
|
|
4
|
+
export default class LinkedPage 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: "Link text"},
|
|
38
|
+
React.createElement(Dbm.react.admin.editorsgroup.EditField, {"fieldName": "linkText"},
|
|
39
|
+
React.createElement(Dbm.react.form.FormField, {value: Dbm.react.source.contextVariable("valueEditor.editValue.value"), className: "standard-field standard-field-padding full-width"})
|
|
40
|
+
)
|
|
41
|
+
),
|
|
42
|
+
React.createElement(Dbm.react.form.LabelledArea, {label: "Linked page"},
|
|
43
|
+
React.createElement(Dbm.react.admin.editorsgroup.EditRelation, {"direction": "out", "relationType": "for", "objectType": "page"},
|
|
44
|
+
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"})
|
|
45
|
+
)
|
|
46
|
+
)
|
|
47
|
+
)
|
|
48
|
+
|
|
49
|
+
)
|
|
50
|
+
}
|
|
51
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import Dbm from "../../../../index.js";
|
|
3
|
+
|
|
4
|
+
export default class Question 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"]
|
|
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: "Question"},
|
|
38
|
+
React.createElement(Dbm.react.admin.editorsgroup.EditField, {"fieldName": "question"},
|
|
39
|
+
React.createElement(Dbm.react.form.FormField, {value: Dbm.react.source.contextVariable("valueEditor.editValue.value"), className: "standard-field standard-field-padding full-width"})
|
|
40
|
+
)
|
|
41
|
+
)
|
|
42
|
+
)
|
|
43
|
+
|
|
44
|
+
)
|
|
45
|
+
}
|
|
46
|
+
}
|
|
@@ -2,4 +2,6 @@ export {default as Title} from "./Title.js";
|
|
|
2
2
|
export {default as Content} from "./Content.js";
|
|
3
3
|
export {default as Name} from "./Name.js";
|
|
4
4
|
export {default as Link} from "./Link.js";
|
|
5
|
-
export {default as Visibility} from "./Visibility.js";
|
|
5
|
+
export {default as Visibility} from "./Visibility.js";
|
|
6
|
+
export {default as LinkedPage} from "./LinkedPage.js";
|
|
7
|
+
export {default as Question} from "./Question.js";
|
package/react/blocks/index.js
CHANGED
|
@@ -253,6 +253,16 @@ export let registerAllBlocks = function() {
|
|
|
253
253
|
let itemEditor = Dbm.getInstance().repository.getItem("admin/itemEditors/visibility");
|
|
254
254
|
itemEditor.setValue("element", createElement(Dbm.react.admin.objects.itemeditors.Visibility, {}));
|
|
255
255
|
}
|
|
256
|
+
|
|
257
|
+
{
|
|
258
|
+
let itemEditor = Dbm.getInstance().repository.getItem("admin/itemEditors/linkedPage");
|
|
259
|
+
itemEditor.setValue("element", createElement(Dbm.react.admin.objects.itemeditors.LinkedPage, {}));
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
{
|
|
263
|
+
let itemEditor = Dbm.getInstance().repository.getItem("admin/itemEditors/question");
|
|
264
|
+
itemEditor.setValue("element", createElement(Dbm.react.admin.objects.itemeditors.Question, {}));
|
|
265
|
+
}
|
|
256
266
|
|
|
257
267
|
{
|
|
258
268
|
let objectTypeEditor = Dbm.getInstance().repository.getItem("admin/objectTypeEditors/page");
|
|
@@ -285,7 +295,10 @@ export let registerAllBlocks = function() {
|
|
|
285
295
|
}
|
|
286
296
|
|
|
287
297
|
let newArray = [].concat(objectTypeEditor.editors);
|
|
298
|
+
newArray.push(Dbm.getInstance().repository.getItem("admin/itemEditors/question"));
|
|
288
299
|
newArray.push(Dbm.getInstance().repository.getItem("admin/itemEditors/title"));
|
|
300
|
+
newArray.push(Dbm.getInstance().repository.getItem("admin/itemEditors/content"));
|
|
301
|
+
newArray.push(Dbm.getInstance().repository.getItem("admin/itemEditors/linkedPage"));
|
|
289
302
|
newArray.push(Dbm.getInstance().repository.getItem("admin/itemEditors/link"));
|
|
290
303
|
newArray.push(Dbm.getInstance().repository.getItem("admin/itemEditors/visibility"));
|
|
291
304
|
objectTypeEditor.editors = newArray;
|