Skip to content

Commit 568b012

Browse files
committed
allow to define layout component previews via template strings
1 parent 3468b3b commit 568b012

2 files changed

Lines changed: 30 additions & 0 deletions

File tree

modules/Cockpit/assets/components.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3182,6 +3182,21 @@ riot.tag2('field-layout', '<div class="uk-sortable layout-components {!items.len
31823182
return;
31833183
}
31843184

3185+
if (def.options && def.options.preview) {
3186+
3187+
if (typeof(def.options.preview) == 'string') {
3188+
3189+
try {
3190+
def.options.preview = new Function('$v', '$c', '$def', `return \`${def.options.preview}\`;`);
3191+
} catch(e) {
3192+
console.warn(e);
3193+
def.options.preview = null;
3194+
}
3195+
}
3196+
3197+
return (def.options.preview && def.options.preview(component.settings || {}, component, def)) || '';
3198+
}
3199+
31853200
if (['heading', 'button'].indexOf(component.component) > -1) {
31863201
return component.settings.text ? '<div class="uk-text-truncate">'+App.Utils.stripTags(component.settings.text)+'</div>':'';
31873202
}

modules/Cockpit/assets/components/field-layout.tag

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -538,6 +538,21 @@
538538
return;
539539
}
540540

541+
if (def.options && def.options.preview) {
542+
543+
if (typeof(def.options.preview) == 'string') {
544+
545+
try {
546+
def.options.preview = new Function('$v', '$c', '$def', `return \`${def.options.preview}\`;`);
547+
} catch(e) {
548+
console.warn(e);
549+
def.options.preview = null;
550+
}
551+
}
552+
553+
return (def.options.preview && def.options.preview(component.settings || {}, component, def)) || '';
554+
}
555+
541556
if (['heading', 'button'].indexOf(component.component) > -1) {
542557
return component.settings.text ? '<div class="uk-text-truncate">'+App.Utils.stripTags(component.settings.text)+'</div>':'';
543558
}

0 commit comments

Comments
 (0)