dbm 1.2.5 → 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.
Files changed (45) hide show
  1. package/commands/CommandBaseObject.js +4 -0
  2. package/commands/SetProperty.js +2 -2
  3. package/flow/updatefunctions/dom/ElementPosition.js +10 -1
  4. package/graphapi/webclient/WebSocketConnection.js +13 -0
  5. package/graphapi/webclient/admin/ItemEditor.js +47 -0
  6. package/package.json +1 -1
  7. package/react/AddProps.js +127 -0
  8. package/react/BaseObject.js +1 -1
  9. package/react/admin/EditLanguage.js +91 -0
  10. package/react/admin/EditObject.js +1 -1
  11. package/react/admin/EditObjectById.js +1 -1
  12. package/react/admin/EditPage.js +26 -36
  13. package/react/admin/EditTranslationGroup.js +174 -0
  14. package/react/admin/PageTranslations.js +226 -0
  15. package/react/admin/SelectTranslation.js +72 -0
  16. package/react/admin/editorsgroup/EditItem.js +1 -1
  17. package/react/admin/editorsgroup/EditMultipleRelations.js +39 -0
  18. package/react/admin/editorsgroup/EditRelation.js +2 -7
  19. package/react/admin/editorsgroup/EditUrl.js +22 -0
  20. package/react/admin/editorsgroup/index.js +3 -1
  21. package/react/admin/index.js +4 -0
  22. package/react/admin/objects/itemeditors/Url.js +21 -0
  23. package/react/admin/objects/itemeditors/index.js +2 -1
  24. package/react/area/InsertElementWithChildren.js +33 -0
  25. package/react/area/OpenCloseExpandableArea.js +4 -1
  26. package/react/area/PopoverLayer.js +65 -0
  27. package/react/area/index.js +2 -0
  28. package/react/blocks/index.js +80 -2
  29. package/react/blocks/redirect/SignedInRedirect.js +38 -0
  30. package/react/blocks/redirect/index.js +1 -0
  31. package/react/blocks/section/ColoredBackgroundSection.js +32 -0
  32. package/react/blocks/section/ColoredBoxSection.js +30 -0
  33. package/react/blocks/section/index.js +2 -0
  34. package/react/blocks/signin/SignIn.js +14 -0
  35. package/react/blocks/signin/index.js +1 -0
  36. package/react/context/AddItemByIdToContext.js +5 -2
  37. package/react/form/Dropdown.js +48 -0
  38. package/react/form/Option.js +1 -1
  39. package/react/form/index.js +2 -1
  40. package/react/login/LoginForm.js +4 -4
  41. package/react/text/Text.js +6 -0
  42. package/site/index.js +3 -0
  43. package/utils/ArrayFunctions.js +21 -16
  44. package/utils/TranslationFunctions.js +49 -0
  45. 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
  }
@@ -11,8 +11,8 @@ export default class SetProperty extends CommandBaseObject {
11
11
 
12
12
  perform(aFromObject, aData) {
13
13
 
14
- let value = this.getInput("value");
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);
@@ -223,6 +223,9 @@ export default class WebSocketConnection extends Dbm.core.BaseObject {
223
223
  let item = repository.getItem(data["requestId"]);
224
224
  item.setValue("items", repository.getItems(data["ids"]));
225
225
  item.setValue("status", Dbm.loading.LoadingStatus.LOADED);
226
+ if(data["logs"] && data["logs"].length) {
227
+ console.warn("Request returned logs:", item, data["logs"], data)
228
+ }
226
229
  }
227
230
  break;
228
231
  case "item/response":
@@ -239,6 +242,10 @@ export default class WebSocketConnection extends Dbm.core.BaseObject {
239
242
  currentCommand.perform(item, data["id"]);
240
243
  }
241
244
  }
245
+
246
+ if(data["logs"] && data["logs"].length) {
247
+ console.warn("Request returned logs:", item, data["logs"], data)
248
+ }
242
249
  }
243
250
  break;
244
251
  case "data/response":
@@ -256,6 +263,10 @@ export default class WebSocketConnection extends Dbm.core.BaseObject {
256
263
  currentCommand.perform(item, data["data"]);
257
264
  }
258
265
  }
266
+
267
+ if(data["logs"] && data["logs"].length) {
268
+ console.warn("Request returned logs:", item, data["logs"], data)
269
+ }
259
270
  }
260
271
  break;
261
272
  case "url/response":
@@ -289,6 +300,7 @@ export default class WebSocketConnection extends Dbm.core.BaseObject {
289
300
  item.setValue("user", null);
290
301
  }
291
302
  repository.getItem("site").currentUser = item.user;
303
+ repository.getItem("site").checkedUser = true;
292
304
  item.setValue("status", Dbm.loading.LoadingStatus.LOADED);
293
305
  }
294
306
  break;
@@ -300,6 +312,7 @@ export default class WebSocketConnection extends Dbm.core.BaseObject {
300
312
  else {
301
313
  repository.getItem("site").currentUser = null;
302
314
  }
315
+ repository.getItem("site").checkedUser = true;
303
316
  this._connectionReady();
304
317
  }
305
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dbm",
3
- "version": "1.2.5",
3
+ "version": "1.2.7",
4
4
  "main": "index.js",
5
5
  "type": "module",
6
6
  "scripts": {},
@@ -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
+ }
@@ -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
  }
@@ -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
 
@@ -58,7 +58,7 @@ export default class EditPage extends Dbm.react.BaseObject {
58
58
  itemSaveData.setField("lastModified", (new Date()).toISOString());
59
59
  itemSaveData.createChange("clearCache", {});
60
60
  itemSaveData.createChange("addAction", {"type": "pageUpdates/updateCategoryListing"});
61
-
61
+ itemSaveData.createChange("addAction", {"type": "pageUpdates/updateRenderedContent"});
62
62
 
63
63
  saveData.save();
64
64
  }
@@ -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("label", {className: "standard-field-label"},
189
- "Page title"
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(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"}),
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.form.FormField, {"value": itemEditor.getEditor("navigationName").item.editValue.value, className: "standard-field standard-field-padding full-width", placeholder: "Name showed in menues and breadcrumbs"}),
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 standard"}),
201
- React.createElement("div", {},
202
- React.createElement("label", {className: "standard-field-label"},
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.form.FormField, {"value": itemEditor.getEditor("url").item.editValue.value, className: "standard-field standard-field-padding full-width", placeholder: "Url"}),
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
- "Publish date"
214
+ "Navigation name"
211
215
  ),
212
- 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"}),
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"},