<template lang='pug'> v-container(fluid, fill-height, grid-list-lg) v-layout(row wrap) v-flex(xs12) .headline.primary--text Rendering .subheading.grey--text Configure how content is rendered v-layout.mt-3(row wrap) v-flex(lg3 xs12) v-toolbar( color='primary' dense flat dark ) v-icon.mr-2 line_weight .subheading Pipeline v-expansion-panel.adm-rendering-pipeline v-expansion-panel-content( hide-actions v-for='core in cores' :key='core.key' ) v-toolbar( slot='header' color='blue' dense dark flat ) .body-2 {{core.input}} v-icon.mx-2 arrow_forward .caption {{core.output}} v-list(two-line, dense) v-list-tile( avatar v-for='rdr in core.children' :key='rdr.key' ) v-list-tile-avatar v-icon(color='grey') {{rdr.icon}} v-list-tile-content v-list-tile-title {{rdr.title}} v-list-tile-sub-title {{rdr.description}} v-list-tile-avatar v-icon(color='green', small, v-if='rdr.isEnabled') lens v-icon(color='red', small, v-else) trip_origin v-divider.my-0 v-flex(lg9 xs12) v-card v-toolbar( color='grey darken-1' dark flat dense ) v-icon.mr-2 settings_applications .subheading Markdown v-icon chevron_right .subheading Core v-spacer v-btn(flat, disabled) v-icon(left) wrap_text span Bypass v-btn(flat, disabled) v-icon(left) clear span Remove v-card-text v-switch( v-model='linkify' label='Automatically convert links' color='primary' persistent-hint hint='Links will automatically be converted to clickable links.' ) v-divider.mt-3 v-switch( v-model='linkify' label='Automatically convert line breaks' color='primary' persistent-hint hint='Add linebreaks within paragraphs.' ) v-divider.mt-3 v-switch( v-model='linkify' label='Highlight code blocks' color='primary' persistent-hint hint='Add syntax coloring to code blocks.' ) v-select.mt-3( :items='["Light", "Dark"]' v-model='codeTheme' label='Code Color Theme' outline background-color='grey lighten-2' ) v-card-chin v-btn( color='primary' ) v-icon(left) check span Apply Configuration </template> <script> import _ from 'lodash' import renderersQuery from 'gql/admin/rendering/rendering-query-renderers.gql' export default { data() { return { linkify: true, codeTheme: 'Light', renderers: [] } }, computed: { cores() { return _.filter(this.renderers, ['dependsOn', null]).map(core => { core.children = _.concat([_.cloneDeep(core)], _.filter(this.renderers, ['dependsOn', core.key])) return core }) } }, apollo: { renderers: { query: renderersQuery, fetchPolicy: 'network-only', update: (data) => _.cloneDeep(data.rendering.renderers).map(str => ({...str, config: str.config.map(cfg => ({...cfg, value: JSON.parse(cfg.value)}))})), watchLoading (isLoading) { this.$store.commit(`loading${isLoading ? 'Start' : 'Stop'}`, 'admin-rendering-refresh') } } } } </script> <style lang='scss'> .adm-rendering-pipeline { border-top: 1px solid #FFF; .v-expansion-panel__header { padding: 0 0; } } </style>