Skip to content

Commit

Permalink
display placeholders for custom widgets (#3886)
Browse files Browse the repository at this point in the history
  • Loading branch information
ETLaurent committed Sep 28, 2022
1 parent ebf09c1 commit b5f189d
Show file tree
Hide file tree
Showing 6 changed files with 306 additions and 124 deletions.
12 changes: 11 additions & 1 deletion modules/@apostrophecms/widget-type/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -161,8 +161,18 @@ module.exports = {
...self.getWidgetsBundles(`${widget.type}-widget`)
};

const clonedWidget = { ...widget };

if (widget.aposPlaceholder === true) {
self.schema.forEach(field => {
if (!widget[field.name] && field.placeholder !== undefined) {
clonedWidget[field.name] = field.placeholder;
}
});
}

return self.render(req, self.template, {
widget: widget,
widget: clonedWidget,
options: options,
manager: self,
contextOptions: _with
Expand Down
19 changes: 19 additions & 0 deletions test/modules/placeholder-page/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
module.exports = {
extend: '@apostrophecms/page-type',
options: {
label: 'Placeholder Test Page'
},
fields: {
add: {
main: {
type: 'area',
label: 'Main',
options: {
widgets: {
placeholder: {}
}
}
}
}
}
};
3 changes: 3 additions & 0 deletions test/modules/placeholder-page/views/page.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
<h2>Placeholder Test Page</h2>

{% area data.page, 'main' %}
36 changes: 36 additions & 0 deletions test/modules/placeholder-widget/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
module.exports = {
extend: '@apostrophecms/widget-type',
options: {
label: 'Placeholder Test Widget',
initialModal: false
},
fields: {
add: {
string: {
type: 'string',
label: 'String',
placeholder: 'String PLACEHOLDER'
},
integer: {
type: 'integer',
label: 'Integer',
placeholder: 0
},
float: {
type: 'float',
label: 'Float',
placeholder: 0.1
},
date: {
type: 'date',
label: 'Date',
placeholder: 'YYYY-MM-DD'
},
time: {
type: 'time',
label: 'Time',
placeholder: 'HH:MM:SS'
}
}
}
};
5 changes: 5 additions & 0 deletions test/modules/placeholder-widget/views/widget.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<ul>
{% for key, val in data.widget %}
<li>{{ data.widget._id }} - {{ key }}: {{ val }}</li>
{% endfor %}
</ul>

0 comments on commit b5f189d

Please sign in to comment.