dbm 1.2.6 → 1.2.7
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/commands/CommandBaseObject.js +4 -0
- package/commands/SetProperty.js +2 -2
- package/flow/updatefunctions/dom/ElementPosition.js +10 -1
- package/graphapi/webclient/WebSocketConnection.js +2 -0
- package/graphapi/webclient/admin/ItemEditor.js +47 -0
- package/package.json +1 -1
- package/react/AddProps.js +127 -0
- package/react/BaseObject.js +1 -1
- package/react/admin/EditLanguage.js +91 -0
- package/react/admin/EditObject.js +1 -1
- package/react/admin/EditObjectById.js +1 -1
- package/react/admin/EditPage.js +25 -35
- package/react/admin/EditTranslationGroup.js +174 -0
- package/react/admin/PageTranslations.js +226 -0
- package/react/admin/SelectTranslation.js +72 -0
- package/react/admin/editorsgroup/EditItem.js +1 -1
- package/react/admin/editorsgroup/EditMultipleRelations.js +39 -0
- package/react/admin/editorsgroup/EditRelation.js +2 -7
- package/react/admin/editorsgroup/EditUrl.js +22 -0
- package/react/admin/editorsgroup/index.js +3 -1
- package/react/admin/index.js +4 -0
- package/react/admin/objects/itemeditors/Url.js +21 -0
- package/react/admin/objects/itemeditors/index.js +2 -1
- package/react/area/InsertElementWithChildren.js +33 -0
- package/react/area/OpenCloseExpandableArea.js +4 -1
- package/react/area/PopoverLayer.js +65 -0
- package/react/area/index.js +2 -0
- package/react/blocks/index.js +80 -2
- package/react/blocks/redirect/SignedInRedirect.js +38 -0
- package/react/blocks/redirect/index.js +1 -0
- package/react/blocks/section/ColoredBackgroundSection.js +32 -0
- package/react/blocks/section/ColoredBoxSection.js +30 -0
- package/react/blocks/section/index.js +2 -0
- package/react/blocks/signin/SignIn.js +14 -0
- package/react/blocks/signin/index.js +1 -0
- package/react/context/AddItemByIdToContext.js +5 -2
- package/react/form/Dropdown.js +48 -0
- package/react/form/Option.js +1 -1
- package/react/form/index.js +2 -1
- package/react/login/LoginForm.js +4 -4
- package/site/index.js +3 -0
- package/utils/ArrayFunctions.js +21 -16
- package/utils/TranslationFunctions.js +49 -0
- package/utils/index.js +1 -0
|
@@ -33,4 +33,8 @@ export default class CommandBaseObject extends Dbm.core.BaseObject {
|
|
|
33
33
|
getInput(aName) {
|
|
34
34
|
return this._resolveSource(this.item[aName]);
|
|
35
35
|
}
|
|
36
|
+
|
|
37
|
+
getInputFrom(aName, aFromObject = null, aData = null) {
|
|
38
|
+
return this._resolveSource(this.item[aName], aFromObject, aData);
|
|
39
|
+
}
|
|
36
40
|
}
|
package/commands/SetProperty.js
CHANGED
|
@@ -11,8 +11,8 @@ export default class SetProperty extends CommandBaseObject {
|
|
|
11
11
|
|
|
12
12
|
perform(aFromObject, aData) {
|
|
13
13
|
|
|
14
|
-
let value = this.
|
|
14
|
+
let value = this.getInputFrom("value", aFromObject, aData);
|
|
15
15
|
|
|
16
|
-
this._resolveSourceWithoutFlow(this.item.property, aFromObject, aData).value = value;
|
|
16
|
+
this._resolveSourceWithoutFlow(this.item.property, aFromObject, aData).getMostUpstreamProperty().value = value;
|
|
17
17
|
}
|
|
18
18
|
}
|
|
@@ -12,6 +12,9 @@ export default class ElementPosition extends Dbm.flow.FlowUpdateFunction {
|
|
|
12
12
|
this.output.register("screenX", NaN);
|
|
13
13
|
this.output.register("screenY", NaN);
|
|
14
14
|
|
|
15
|
+
this.output.register("pageX", NaN);
|
|
16
|
+
this.output.register("pageY", NaN);
|
|
17
|
+
|
|
15
18
|
this.output.register("parameterX", NaN);
|
|
16
19
|
this.output.register("parameterY", NaN);
|
|
17
20
|
|
|
@@ -22,6 +25,7 @@ export default class ElementPosition extends Dbm.flow.FlowUpdateFunction {
|
|
|
22
25
|
}
|
|
23
26
|
|
|
24
27
|
start() {
|
|
28
|
+
//console.log("start");
|
|
25
29
|
window.addEventListener("resize", this._callback_scrollBound, false);
|
|
26
30
|
window.addEventListener("scroll", this._callback_scrollBound, false);
|
|
27
31
|
this.output.properties.prepare.startUpdating();
|
|
@@ -47,7 +51,6 @@ export default class ElementPosition extends Dbm.flow.FlowUpdateFunction {
|
|
|
47
51
|
//console.log(theInnerWidth, theInnerHeight);
|
|
48
52
|
|
|
49
53
|
let rect = element.getBoundingClientRect();
|
|
50
|
-
//console.log(rect);
|
|
51
54
|
|
|
52
55
|
let prepareX = this.input.prepareX;
|
|
53
56
|
let prepareY = this.input.prepareY;
|
|
@@ -66,6 +69,9 @@ export default class ElementPosition extends Dbm.flow.FlowUpdateFunction {
|
|
|
66
69
|
|
|
67
70
|
this.output.screenX = screenX;
|
|
68
71
|
this.output.screenY = screenY;
|
|
72
|
+
|
|
73
|
+
this.output.pageX = screenX-window.scrollX;
|
|
74
|
+
this.output.pageY = screenY-window.scrollY;
|
|
69
75
|
|
|
70
76
|
this.output.parameterX = parameterX;
|
|
71
77
|
this.output.parameterY = parameterY;
|
|
@@ -116,6 +122,9 @@ export default class ElementPosition extends Dbm.flow.FlowUpdateFunction {
|
|
|
116
122
|
|
|
117
123
|
this.output.properties.screenX._internal_setValueInFlowOutsideOfUpdate(screenX);
|
|
118
124
|
this.output.properties.screenY._internal_setValueInFlowOutsideOfUpdate(screenY);
|
|
125
|
+
|
|
126
|
+
this.output.properties.pageX._internal_setValueInFlowOutsideOfUpdate(screenX+window.scrollX);
|
|
127
|
+
this.output.properties.pageY._internal_setValueInFlowOutsideOfUpdate(screenY+window.scrollY);
|
|
119
128
|
|
|
120
129
|
this.output.properties.parameterX._internal_setValueInFlowOutsideOfUpdate(parameterX);
|
|
121
130
|
this.output.properties.parameterY._internal_setValueInFlowOutsideOfUpdate(parameterY);
|
|
@@ -300,6 +300,7 @@ export default class WebSocketConnection extends Dbm.core.BaseObject {
|
|
|
300
300
|
item.setValue("user", null);
|
|
301
301
|
}
|
|
302
302
|
repository.getItem("site").currentUser = item.user;
|
|
303
|
+
repository.getItem("site").checkedUser = true;
|
|
303
304
|
item.setValue("status", Dbm.loading.LoadingStatus.LOADED);
|
|
304
305
|
}
|
|
305
306
|
break;
|
|
@@ -311,6 +312,7 @@ export default class WebSocketConnection extends Dbm.core.BaseObject {
|
|
|
311
312
|
else {
|
|
312
313
|
repository.getItem("site").currentUser = null;
|
|
313
314
|
}
|
|
315
|
+
repository.getItem("site").checkedUser = true;
|
|
314
316
|
this._connectionReady();
|
|
315
317
|
}
|
|
316
318
|
break;
|
|
@@ -80,11 +80,29 @@ export default class ItemEditor extends Dbm.core.BaseObject {
|
|
|
80
80
|
return this._addRelationEditor(name, aType, aObjectType, aInitialValue, Dbm.graphapi.webclient.admin.SaveFunctions.incomingRelation, aUpdateEncoding);
|
|
81
81
|
}
|
|
82
82
|
|
|
83
|
+
getDefaultIncomingRelationEditor(aType, aObjectType) {
|
|
84
|
+
let item = this.item.editedItem;
|
|
85
|
+
|
|
86
|
+
let relations = Dbm.utils.ArrayFunctions.filterByField(Dbm.objectPath(item, "relations/in." + aType + ".objects"), "objectTypes", aObjectType, "arrayContains");
|
|
87
|
+
let relation = (relations && relations.length) ? relations[0].id : null;
|
|
88
|
+
|
|
89
|
+
return this.addIncomingRelationEditor(aType, aObjectType, relation, ["relations"]);
|
|
90
|
+
}
|
|
91
|
+
|
|
83
92
|
addOutgoingRelationEditor(aType, aObjectType, aInitialValue, aUpdateEncoding = null) {
|
|
84
93
|
let name = "out_" + aType + "_" + aObjectType;
|
|
85
94
|
return this._addRelationEditor(name, aType, aObjectType, aInitialValue, Dbm.graphapi.webclient.admin.SaveFunctions.outgoingRelation, aUpdateEncoding);
|
|
86
95
|
}
|
|
87
96
|
|
|
97
|
+
getDefaultOutgoingRelationEditor(aType, aObjectType) {
|
|
98
|
+
let item = this.item.editedItem;
|
|
99
|
+
|
|
100
|
+
let relations = Dbm.utils.ArrayFunctions.filterByField(Dbm.objectPath(item, "relations/out." + aType + ".objects"), "objectTypes", aObjectType, "arrayContains");
|
|
101
|
+
let relation = (relations && relations.length) ? relations[0].id : null;
|
|
102
|
+
|
|
103
|
+
return this.addOutgoingRelationEditor(aType, aObjectType, relation, ["relations"]);
|
|
104
|
+
}
|
|
105
|
+
|
|
88
106
|
_addMultipleRelationsEditor(aName, aType, aObjectType, aInitialValue, aSaveFunction, aUpdateEncoding = null) {
|
|
89
107
|
let valueEditor = this.item["editor_relation_" + aName];
|
|
90
108
|
if(!valueEditor) {
|
|
@@ -183,6 +201,35 @@ export default class ItemEditor extends Dbm.core.BaseObject {
|
|
|
183
201
|
return valueEditor;
|
|
184
202
|
}
|
|
185
203
|
|
|
204
|
+
getUrlEditor(aInitialValue) {
|
|
205
|
+
let name = "url";
|
|
206
|
+
let valueEditor = this.item["url"];
|
|
207
|
+
if(!valueEditor) {
|
|
208
|
+
valueEditor = new Dbm.graphapi.webclient.admin.ValueEditor();
|
|
209
|
+
valueEditor.item.editValue.setInitialValue(aInitialValue);
|
|
210
|
+
|
|
211
|
+
valueEditor.item.setValue("itemEditor", this.item);
|
|
212
|
+
valueEditor.item.setValue("updateEncoding", "url");
|
|
213
|
+
|
|
214
|
+
this.item.anyChange.addCheck(valueEditor.item.properties.changed);
|
|
215
|
+
this.item.setValue(name, valueEditor);
|
|
216
|
+
this.item.editors = [].concat(this.item.editors, valueEditor);
|
|
217
|
+
|
|
218
|
+
valueEditor.addSaveFunction(Dbm.graphapi.webclient.admin.SaveFunctions.setUrl);
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
return valueEditor;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
getAdminUrlEditor() {
|
|
225
|
+
let item = this.item.editedItem;
|
|
226
|
+
let value = Dbm.objectPath(item, "url");
|
|
227
|
+
|
|
228
|
+
debugger;
|
|
229
|
+
|
|
230
|
+
return this.getUrlEditor(value);
|
|
231
|
+
}
|
|
232
|
+
|
|
186
233
|
addCommandsToSaveData(aSaveData) {
|
|
187
234
|
|
|
188
235
|
let editedItemId = Dbm.objectPath(this.item, "editedItem.id");
|
package/package.json
CHANGED
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import Dbm from "../index.js";
|
|
3
|
+
|
|
4
|
+
export default class AddProps extends Dbm.react.BaseObject {
|
|
5
|
+
|
|
6
|
+
_construct() {
|
|
7
|
+
super._construct();
|
|
8
|
+
|
|
9
|
+
this._clonedElement = null;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
_getMainElementProps() {
|
|
13
|
+
//console.log("wprr/manipulation/ManipulationBaseObject::_getMainElementProps");
|
|
14
|
+
let returnObject = {};
|
|
15
|
+
|
|
16
|
+
for(let objectName in this.props) {
|
|
17
|
+
if(objectName === "children") {
|
|
18
|
+
//MENOTE: children should not be passed on
|
|
19
|
+
continue;
|
|
20
|
+
}
|
|
21
|
+
returnObject[objectName] = this.props[objectName];
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
return returnObject;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
_performCloneWithNewChildren(aChild, aProps, aChildren) {
|
|
28
|
+
var callArray = [aChild, aProps];
|
|
29
|
+
|
|
30
|
+
callArray = callArray.concat(aChildren);
|
|
31
|
+
|
|
32
|
+
return React.cloneElement.apply(React, callArray);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
_performClone(aChild, aProps) {
|
|
36
|
+
|
|
37
|
+
if(aChild instanceof Array) {
|
|
38
|
+
let returnArray = [];
|
|
39
|
+
|
|
40
|
+
let currentArray = aChild;
|
|
41
|
+
let currentArrayLength = currentArray.length;
|
|
42
|
+
for(let i = 0; i < currentArrayLength; i++) {
|
|
43
|
+
let currentChild = currentArray[i];
|
|
44
|
+
returnArray.push(this._performClone(currentChild, aProps));
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
return returnArray;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
let newProps = aProps;
|
|
51
|
+
if(aChild && aChild.props && aChild.props.className) {
|
|
52
|
+
newProps = {};
|
|
53
|
+
for(let objectName in aProps) {
|
|
54
|
+
newProps[objectName] = aProps[objectName];
|
|
55
|
+
}
|
|
56
|
+
if(aProps.className) {
|
|
57
|
+
newProps.className = aProps.className + " " + aChild.props.className;
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
newProps.className = aChild.props.className;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
let callArray = [aChild, newProps];
|
|
65
|
+
|
|
66
|
+
if(aChild && aChild.props) {
|
|
67
|
+
let firstChildChildren = aChild.props.children;
|
|
68
|
+
if(!firstChildChildren) {
|
|
69
|
+
callArray.push(null);
|
|
70
|
+
}
|
|
71
|
+
else if(firstChildChildren instanceof Array) {
|
|
72
|
+
callArray = callArray.concat(firstChildChildren);
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
callArray.push(firstChildChildren);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
return React.cloneElement.apply(React, callArray);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
_cloneChildrenAndAddProps(aChildren) {
|
|
83
|
+
//console.log("wprr/manipulation/ManipulationBaseObject::_cloneChildrenAndAddProps");
|
|
84
|
+
|
|
85
|
+
let children = aChildren;
|
|
86
|
+
|
|
87
|
+
if(children.length === 0) {
|
|
88
|
+
return null;
|
|
89
|
+
}
|
|
90
|
+
else if(children.length === 1) {
|
|
91
|
+
return this._performClone(children[0], this.props);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
let returnArray = new Array();
|
|
95
|
+
|
|
96
|
+
let mainElementProps = this.props;
|
|
97
|
+
|
|
98
|
+
let currentArray = children;
|
|
99
|
+
let currentArrayLength = currentArray.length;
|
|
100
|
+
for(let i = 0; i < currentArrayLength; i++) {
|
|
101
|
+
let currentChild = currentArray[i];
|
|
102
|
+
|
|
103
|
+
if(currentChild !== null) {
|
|
104
|
+
let newChild = this._performClone(currentChild, mainElementProps);
|
|
105
|
+
returnArray.push(newChild);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
let callArray = [Fragment, {}].concat(returnArray);
|
|
110
|
+
return React.createElement.apply(React, callArray);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
_renderClonedElement() {
|
|
114
|
+
return this._cloneChildrenAndAddProps(this.getPropValue("children"));
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
_createClonedElement() {
|
|
118
|
+
//console.log("wprr/manipulation/ManipulationBaseObject::_createClonedElement");
|
|
119
|
+
|
|
120
|
+
this._clonedElement = this._renderClonedElement();
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
_renderMainElement() {
|
|
124
|
+
this._createClonedElement();
|
|
125
|
+
return this._clonedElement;
|
|
126
|
+
}
|
|
127
|
+
}
|
package/react/BaseObject.js
CHANGED
|
@@ -145,7 +145,7 @@ export default class BaseObject extends Component {
|
|
|
145
145
|
}
|
|
146
146
|
|
|
147
147
|
_renderMainElement() {
|
|
148
|
-
return this._createMainElement("div", {}, this.props.children);
|
|
148
|
+
return this._createMainElement("div", {ref: this.createRef("mainElement")}, this.props.children);
|
|
149
149
|
}
|
|
150
150
|
|
|
151
151
|
_mainElement(aReactElement) {
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import Dbm from "../../index.js";
|
|
3
|
+
|
|
4
|
+
export default class EditLanguage extends Dbm.react.BaseObject {
|
|
5
|
+
_construct() {
|
|
6
|
+
super._construct();
|
|
7
|
+
|
|
8
|
+
this.item.requireProperty("availableLanguages", []);
|
|
9
|
+
|
|
10
|
+
{
|
|
11
|
+
let request = Dbm.getGraphApi().requestRange([{"type": "byObjectType", "objectType": "language"}], ["type"]);
|
|
12
|
+
this.item.propertyInput("languages", request.properties.items);
|
|
13
|
+
Dbm.flow.runWhenMatched(request.properties.status, Dbm.loading.LoadingStatus.LOADED, Dbm.commands.callFunction(this._languagesLoaded.bind(this), []));
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
_languagesLoaded() {
|
|
18
|
+
//console.log("_languagesLoaded");
|
|
19
|
+
//console.log(this.item.languages);
|
|
20
|
+
|
|
21
|
+
let availableLanguageCodes = Dbm.utils.ArrayFunctions.mapField(Dbm.getRepositoryItem("site").availableLanguages, "code");
|
|
22
|
+
|
|
23
|
+
let filteredLanguages = Dbm.utils.ArrayFunctions.filterByField(this.item.languages, "identifier", availableLanguageCodes, "inArray");
|
|
24
|
+
this.item.availableLanguages = filteredLanguages;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
getFlagUrl(aLanguageCode) {
|
|
28
|
+
|
|
29
|
+
let countryCode = aLanguageCode;
|
|
30
|
+
if(aLanguageCode === "en") {
|
|
31
|
+
countryCode = "gb";
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
return "https://flagcdn.com/" + countryCode + ".svg";
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
_renderMainElement() {
|
|
38
|
+
|
|
39
|
+
return React.createElement("div", {},
|
|
40
|
+
React.createElement(Dbm.react.admin.editorsgroup.EditRelation, {direction: "in", relationType: "for", objectType: "language"},
|
|
41
|
+
React.createElement(Dbm.react.context.AddItemByIdToContext, {"id": Dbm.react.source.contextVariable("valueEditor.editValue.value"), "as": "language"},
|
|
42
|
+
|
|
43
|
+
React.createElement(Dbm.react.form.Dropdown, {},
|
|
44
|
+
React.createElement("div", {"data-slot": "button", "className": "standard-field standard-field-padding"},
|
|
45
|
+
React.createElement("div", {className: "flex-row micro-item-spacing vertically-center-items"},
|
|
46
|
+
React.createElement("div", {className: "flex-row-item flex-no-resize"},
|
|
47
|
+
React.createElement(Dbm.react.area.HasData, {check: Dbm.react.source.contextVariable("language.id")},
|
|
48
|
+
React.createElement("div", {className: "language-circle centered-cell-holder overflow-hidden"},
|
|
49
|
+
React.createElement(Dbm.react.image.Image, {"src": Dbm.core.source.command(Dbm.commands.callFunction(this.getFlagUrl, [Dbm.react.source.contextVariable("language.identifier")])), "className": "background-cover full-size"})
|
|
50
|
+
)
|
|
51
|
+
),
|
|
52
|
+
React.createElement(Dbm.react.area.HasData, {check: Dbm.react.source.contextVariable("language.id"), checkType: "invert/default"},
|
|
53
|
+
React.createElement("div", {className: "language-circle centered-cell-holder"},
|
|
54
|
+
|
|
55
|
+
)
|
|
56
|
+
)
|
|
57
|
+
|
|
58
|
+
),
|
|
59
|
+
React.createElement("div", {className: "flex-row-item flex-resize"},
|
|
60
|
+
React.createElement(Dbm.react.area.HasData, {check: Dbm.react.source.contextVariable("language.id")},
|
|
61
|
+
Dbm.react.text.text(Dbm.react.source.contextVariable("language.name"))
|
|
62
|
+
),
|
|
63
|
+
React.createElement(Dbm.react.area.HasData, {check: Dbm.react.source.contextVariable("language.id"), checkType: "invert/default"},
|
|
64
|
+
"Language"
|
|
65
|
+
)
|
|
66
|
+
),
|
|
67
|
+
React.createElement("div", {className: "flex-row-item flex-no-resize"},
|
|
68
|
+
"v"
|
|
69
|
+
)
|
|
70
|
+
)
|
|
71
|
+
),
|
|
72
|
+
React.createElement("div", {"className": "dropdown-menu-max-height standard-dropdown"},
|
|
73
|
+
React.createElement(Dbm.react.area.List, {items: this.item.properties.availableLanguages, "as": "availableLanguage"},
|
|
74
|
+
React.createElement(Dbm.react.interaction.CommandButton, {"commands": [
|
|
75
|
+
Dbm.commands.setProperty(Dbm.react.source.contextVariable("valueEditor.editValue.value"), Dbm.react.source.contextVariable("availableLanguage.id")),
|
|
76
|
+
Dbm.commands.setProperty(Dbm.react.source.contextVariable("open"), false)
|
|
77
|
+
]},
|
|
78
|
+
React.createElement("div", {className: "standard-dropdown-row standard-dropdown-row-padding hover-row cursor-pointer"},
|
|
79
|
+
Dbm.react.text.text(Dbm.react.source.contextVariable("availableLanguage.name"))
|
|
80
|
+
)
|
|
81
|
+
),
|
|
82
|
+
)
|
|
83
|
+
)
|
|
84
|
+
)
|
|
85
|
+
|
|
86
|
+
)
|
|
87
|
+
),
|
|
88
|
+
);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
@@ -26,7 +26,7 @@ export default class EditObject extends Dbm.react.BaseObject {
|
|
|
26
26
|
{"type": "includeDraft"},
|
|
27
27
|
{"type": "idSelection", "ids": [item.id]},
|
|
28
28
|
],
|
|
29
|
-
["admin_fields", "admin_fieldTranslations", "relations"]
|
|
29
|
+
["admin_fields", "admin_fieldTranslations", "relations", "url", "identifier", "visibility"]
|
|
30
30
|
);
|
|
31
31
|
allLoaded.addCheck(request.properties.status);
|
|
32
32
|
}
|
|
@@ -26,7 +26,7 @@ export default class EditObjectById extends Dbm.react.BaseObject {
|
|
|
26
26
|
{"type": "includeDraft"},
|
|
27
27
|
{"type": "idSelection", "ids": [id]},
|
|
28
28
|
],
|
|
29
|
-
["admin_fields", "admin_fieldTranslations", "relations"]
|
|
29
|
+
["admin_fields", "admin_fieldTranslations", "relations", "url", "identifier", "visibility"]
|
|
30
30
|
);
|
|
31
31
|
allLoaded.addCheck(request.properties.status);
|
|
32
32
|
}
|
package/react/admin/EditPage.js
CHANGED
|
@@ -19,8 +19,8 @@ export default class EditPage extends Dbm.react.BaseObject {
|
|
|
19
19
|
itemEditor.addFieldEditor("content", page.content, "content");
|
|
20
20
|
itemEditor.addFieldEditor("publishDate", page.publishDate, "urlRequest");
|
|
21
21
|
itemEditor.addOutgoingRelationEditor("in", "group/pageCategory", page.category ? page.category.id : 0, "urlRequest");
|
|
22
|
-
itemEditor.addIncomingRelationEditor("for", "language", page.language ? page.language.id : 0, "urlRequest");
|
|
23
|
-
itemEditor.addOutgoingRelationEditor("in", "group/translationGroup", page.translations ? page.translations.id : 0, "urlRequest");
|
|
22
|
+
//itemEditor.addIncomingRelationEditor("for", "language", page.language ? page.language.id : 0, "urlRequest");
|
|
23
|
+
//itemEditor.addOutgoingRelationEditor("in", "group/translationGroup", page.translations ? page.translations.id : 0, "urlRequest");
|
|
24
24
|
itemEditor.addEditor("url", page.url, Dbm.graphapi.webclient.admin.SaveFunctions.setUrl, "url");
|
|
25
25
|
|
|
26
26
|
let descriptionEditor = itemEditor.addFieldEditor("meta/description", page["meta/description"], "meta/description");
|
|
@@ -50,7 +50,7 @@ export default class EditPage extends Dbm.react.BaseObject {
|
|
|
50
50
|
let preloadImages = [];
|
|
51
51
|
|
|
52
52
|
let pageEditorItem = Dbm.getInstance().repository.getItem("admin/editor/pageEditor");
|
|
53
|
-
if(pageEditorItem.generateContentPreload) {
|
|
53
|
+
if(pageEditorItem.generateContentPreload && content) {
|
|
54
54
|
preloadImages = pageEditorItem.generateContentPreload(content);
|
|
55
55
|
}
|
|
56
56
|
|
|
@@ -184,32 +184,36 @@ export default class EditPage extends Dbm.react.BaseObject {
|
|
|
184
184
|
React.createElement(Dbm.react.context.AddContextVariables, {values: {"editorGroup": editorGroup, "itemEditor": itemEditor}},
|
|
185
185
|
React.createElement(Dbm.react.admin.EditObjectById, {id: page.id},
|
|
186
186
|
React.createElement("div", {"className": "dbm-admin-box dbm-admin-box-padding"},
|
|
187
|
-
React.createElement("div", {},
|
|
188
|
-
React.createElement("
|
|
189
|
-
"
|
|
187
|
+
React.createElement("div", {"className": "flex-row small-item-spacing"},
|
|
188
|
+
React.createElement("div", {"className": "flex-row-item flex-resize"},
|
|
189
|
+
React.createElement(Dbm.react.form.FormField, {"value": itemEditor.getEditor("title").item.editValue.value, className: "standard-field standard-field-padding full-width page-title-form-field", placeholder: "Title"})
|
|
190
190
|
),
|
|
191
|
-
React.createElement(
|
|
192
|
-
|
|
193
|
-
React.createElement("div", {className: "spacing standard"}),
|
|
194
|
-
React.createElement("div", {},
|
|
195
|
-
React.createElement("label", {className: "standard-field-label"},
|
|
196
|
-
"Navigation name"
|
|
191
|
+
React.createElement("div", {"className": "flex-row-item flex-no-resize"},
|
|
192
|
+
React.createElement(Dbm.react.form.FormField, {"value": itemEditor.getEditor("publishDate").item.editValue.value, className: "standard-field standard-field-padding full-width", placeholder: "YYYY-MM-DD", "type": "date"})
|
|
197
193
|
),
|
|
198
|
-
React.createElement(Dbm.react.
|
|
194
|
+
React.createElement(Dbm.react.area.HasData, {check: Dbm.getRepositoryItem("site").properties.availableLanguages, checkType:"notEmpty"},
|
|
195
|
+
React.createElement("div", {"className": "flex-row-item flex-no-resize"},
|
|
196
|
+
React.createElement(Dbm.react.admin.EditLanguage, {})
|
|
197
|
+
)
|
|
198
|
+
)
|
|
199
199
|
),
|
|
200
|
-
React.createElement("div", {className: "spacing
|
|
201
|
-
React.createElement("div", {},
|
|
202
|
-
React.createElement("
|
|
203
|
-
"Url"
|
|
200
|
+
React.createElement("div", {className: "spacing small"}),
|
|
201
|
+
React.createElement("div", {"className": "flex-row small-item-spacing vertically-center-items"},
|
|
202
|
+
React.createElement("div", {"className": "flex-row-item flex-resize"},
|
|
203
|
+
React.createElement(Dbm.react.form.FormField, {"value": itemEditor.getEditor("url").item.editValue.value, className: "standard-field standard-field-padding full-width", placeholder: "Url"})
|
|
204
204
|
),
|
|
205
|
-
React.createElement(Dbm.react.
|
|
205
|
+
React.createElement(Dbm.react.area.HasData, {check: Dbm.getRepositoryItem("site").properties.availableLanguages, checkType:"notEmpty"},
|
|
206
|
+
React.createElement("div", {"className": "flex-row-item flex-no-resize"},
|
|
207
|
+
React.createElement(Dbm.react.admin.PageTranslations, {})
|
|
208
|
+
)
|
|
209
|
+
)
|
|
206
210
|
),
|
|
207
211
|
React.createElement("div", {className: "spacing standard"}),
|
|
208
212
|
React.createElement("div", {},
|
|
209
213
|
React.createElement("label", {className: "standard-field-label"},
|
|
210
|
-
"
|
|
214
|
+
"Navigation name"
|
|
211
215
|
),
|
|
212
|
-
React.createElement(Dbm.react.form.FormField, {"value": itemEditor.getEditor("
|
|
216
|
+
React.createElement(Dbm.react.form.FormField, {"value": itemEditor.getEditor("navigationName").item.editValue.value, className: "standard-field standard-field-padding full-width", placeholder: "Name showed in menues and breadcrumbs"}),
|
|
213
217
|
),
|
|
214
218
|
React.createElement("div", {className: "spacing standard"}),
|
|
215
219
|
React.createElement("div", {},
|
|
@@ -217,21 +221,7 @@ export default class EditPage extends Dbm.react.BaseObject {
|
|
|
217
221
|
"Category"
|
|
218
222
|
),
|
|
219
223
|
React.createElement(Dbm.react.form.GraphApiObjectSelection, {"value": itemEditor.getEditor("relation_out_in_group/pageCategory").item.editValue.value, objectType: "group/pageCategory", className: "standard-field standard-field-padding full-width"}),
|
|
220
|
-
)
|
|
221
|
-
React.createElement("div", {className: "spacing standard"}),
|
|
222
|
-
React.createElement("div", {},
|
|
223
|
-
React.createElement("label", {className: "standard-field-label"},
|
|
224
|
-
"Language"
|
|
225
|
-
),
|
|
226
|
-
React.createElement(Dbm.react.form.GraphApiObjectSelection, {"value": itemEditor.getEditor("relation_in_for_language").item.editValue.value, objectType: "language", className: "standard-field standard-field-padding full-width"}),
|
|
227
|
-
),
|
|
228
|
-
React.createElement("div", {className: "spacing standard"}),
|
|
229
|
-
React.createElement("div", {},
|
|
230
|
-
React.createElement("label", {className: "standard-field-label"},
|
|
231
|
-
"Translations"
|
|
232
|
-
),
|
|
233
|
-
React.createElement(Dbm.react.form.GraphApiObjectSelection, {"value": itemEditor.getEditor("relation_out_in_group/translationGroup").item.editValue.value, objectType: "group/translationGroup", className: "standard-field standard-field-padding full-width"}),
|
|
234
|
-
),
|
|
224
|
+
)
|
|
235
225
|
),
|
|
236
226
|
React.createElement("div", {className: "spacing standard"}),
|
|
237
227
|
React.createElement("div", {"className": "dbm-admin-box dbm-admin-box-padding"},
|