Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 11 additions & 2 deletions view/adminhtml/ui_component/pagebuilder_widget_form.xml
Original file line number Diff line number Diff line change
Expand Up @@ -67,19 +67,28 @@
<fieldset name="general" sortOrder="20">
<settings>
<label/>
<collapsible>false</collapsible>
<opened>true</opened>
</settings>
<field name="content" sortOrder="70" formElement="textarea"
component="MageOS_PageBuilderWidget/js/form/element/widget-builder">
component="MageOS_PageBuilderWidget/js/form/element/widget-builder"
template="ui/form/components/single/field">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="default" xsi:type="null" />
<item name="default" xsi:type="null"/>
<item name="elementTmpl" xsi:type="string">MageOS_PageBuilderWidget/form/element/widget-builder</item>
<item name="dataUrlConfigPath" xsi:type="string">content_types.widget.additional_data.chooserConfig.dataUrl</item>
<item name="formUrlConfigPath" xsi:type="string">content_types.widget.additional_data.chooserConfig.formUrl</item>
<item name="saveFormUrlConfigPath" xsi:type="string">content_types.widget.additional_data.chooserConfig.saveFormUrl</item>
</item>
</argument>
<settings>
<dataType>text</dataType>
<label/>
<labelVisible>false</labelVisible>
<additionalClasses>
<class name="admin__field-wide">true</class>
</additionalClasses>
</settings>
</field>
<field name="content_settings" formElement="hidden">
Expand Down
38 changes: 25 additions & 13 deletions view/adminhtml/web/css/source/_extend.less
Original file line number Diff line number Diff line change
@@ -1,18 +1,30 @@
.pagebuilder_modal_form_pagebuilder_modal_form_modal_insert_form {
.fieldset-wrapper[data-index="general"] {
> .admin__fieldset-wrapper-content {
> fieldset.admin__fieldset {
> .admin__field {
> .admin__field-label {
display: none;
}
.pagebuilder-widget-form-container {
padding: 20px;
width: 100%;
box-sizing: border-box;

> .admin__field-control {
.widget-type-selector {
margin-bottom: 20px;

.admin__field-control {
width: 100%;
}

select {
width: 100%;
padding: 30px;
}
}
}
}
}

.widget-form-content {
margin-bottom: 20px;
width: 100%;

form {
width: 100%;
}
}

.widget-save-button {
margin-top: 15px;
}
}
66 changes: 37 additions & 29 deletions view/adminhtml/web/template/form/element/widget-builder.html
Original file line number Diff line number Diff line change
@@ -1,34 +1,42 @@
<div data-bind="attr: { id: 'widgetFormContainer' + uid }">
<div class="admin__field-design-options" afterRender="renderWidgetBuilder">
<input type="text" ko-value="value" attr="id: uid, name: inputName"/>
<div class="pagebuilder-widget-form-container" data-bind="attr: { id: 'widgetFormContainer' + uid }">
<div class="widget-type-selector" afterRender="renderWidgetBuilder">
<input type="hidden" ko-value="value" attr="id: uid, name: inputName"/>

<div class="admin__field field field-select_widget_type with-addon required _required">
<div class="admin__field-control control">
<div class="admin__field">
<select name="widget_type"
title="Widget Type"
class="required-entry _required select admin__control-select valid"
data-bind="
value: selectedWidgetCode,
attr: { id: 'selectWidgetType' + uid }"
aria-invalid="false">
<!-- ko foreach: { data: chooserOptions, as: 'option' } -->
<option data-bind="value: option.code, attr: {selected: option.selected}">
<!-- ko text: option.name --><!-- /ko -->
</option>
<!-- /ko -->
</select>
<p class="nm">
<small data-bind="text: selectedWidgetDescription"></small>
</p>
</div>
<div class="admin__field field field-widget_type required _required">
<label class="admin__field-label" data-bind="attr: {for: 'widget_type-' + uid}">
<span data-bind="i18n: 'Widget Type'"></span>
</label>
<div class="admin__field-control" data-bind="attr: { id: 'widget_type-' + uid }">
<select name="widget_type"
title="Widget Type"
class="required-entry _required select admin__control-select"
data-bind="
value: selectedWidgetCode,
attr: { id: 'selectWidgetType' + uid }">
<!-- ko foreach: { data: chooserOptions, as: 'option' } -->
<option data-bind="value: option.code, attr: {selected: option.selected}">
<!-- ko text: option.name --><!-- /ko -->
</option>
<!-- /ko -->
</select>
<!-- ko if: selectedWidgetDescription -->
<p class="admin__field-note">
<span data-bind="text: selectedWidgetDescription"></span>
</p>
<!-- /ko -->
</div>
</div>
</div>
<form class="admin__field" data-bind="html: widgetHtmlForm, attr: { id: 'widgetForm' + uid }, visible: saveIsAvailable"></form>
<button
class="action- scalable save primary ui-button ui-corner-all ui-widget"
data-bind="click: updateValue, visible: saveIsAvailable">
<span data-bind="i18n: 'Save Widget Configuration'"></span>
</button>

<div class="widget-form-content" data-bind="visible: saveIsAvailable">
<form data-bind="html: widgetHtmlForm, attr: { id: 'widgetForm' + uid }"></form>
</div>

<div class="widget-save-button" data-bind="visible: saveIsAvailable">
<button type="button"
class="action-default scalable save primary"
data-bind="click: updateValue">
<span data-bind="i18n: 'Save Widget Configuration'"></span>
</button>
</div>
</div>