Skip to content

Commit 50c8538

Browse files
authored
Change the field value in model while inline editing (#205)
1 parent 0b394f2 commit 50c8538

File tree

3 files changed

+11
-13
lines changed

3 files changed

+11
-13
lines changed

fragments/tabs/hatch.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,14 +45,14 @@ module.exports = {
4545
f.bindAttribute( a, 'aria-controls', '`tab${_uid}${parseInt(i)+1}`')
4646
f.bindAttribute( a, 'aria-selected', 'active === i')
4747
f.bindEvent( a, 'click', 'toggleActive(i)')
48-
f.mapField( a, "item.title")
48+
f.mapField(a, "item.title", "model.tabs", "title")
4949

5050
let tabPanel = $.find('[role="tabpanel"]').first()
5151
f.addFor( tabPanel, 'model.tabs')
5252
f.bindAttribute(tabPanel, 'id', '`tab${_uid}${parseInt(i)+1}`')
5353
f.bindAttribute(tabPanel, 'aria-labelledby', '`tab-control-${_uid}${parseInt(i)+1}`')
54-
f.bindAttribute(tabPanel, 'class', "active === i ? 'block opacity-100' : 'hidden'", false)
55-
f.mapRichField(tabPanel, "item.text")
54+
f.bindAttribute(tabPanel, 'class', "active === i ? 'block opacity-100' : 'hidden'", false)
55+
f.mapRichField(tabPanel, "item.text", "model.tabs", "text")
5656

5757
f.addElse($);
5858
$.parent().prepend('<div class="p-5" v-if="isEditAndEmpty">no content defined for component</div>')

fragments/tabs/template.vue

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<template>
22
<themecleanflex-components-block v-bind:model="model">
33
<div class="p-5" v-if="isEditAndEmpty">no content defined for component</div>
4-
<div class="w-full" v-else>
4+
<div class="w-full" v-else="">
55
<div>
66
<h1 class="text-center pb-4" v-if="model.showtitle == 'true' &amp;&amp; model.title"
77
data-per-inline="model.title">{{model.title}}</h1>
@@ -13,8 +13,7 @@
1313
'lg:flex-row-reverse': model.mediaposition === 'after'
1414
1515
}">
16-
<div class="img-wrapper mx-3" v-if="model.showmedia == 'true'"
17-
v-bind:style="{'flex':`0 0 ${model.mediawidth}%`}">
16+
<div class="img-wrapper mx-3" v-if="model.showmedia == 'true'" v-bind:style="{'flex':`0 0 ${model.mediawidth}%`}">
1817
<themecleanflex-components-media :model="model"></themecleanflex-components-media>
1918
</div>
2019
<div class="py-3 flex flex-col mx-3 lg:flex-grow">
@@ -36,14 +35,14 @@
3635
'text-light' : active !== i &amp;&amp; model.tabcolor === 'light' || active === i &amp;&amp; model.tabcolor === 'dark',
3736
'text-dark' : active !== i &amp;&amp; model.tabcolor === 'dark' || active === i &amp;&amp; model.tabcolor === 'light',
3837
}" v-bind:id="`tab-control-${_uid}${parseInt(i)+1}`" v-bind:aria-controls="`tab${_uid}${parseInt(i)+1}`"
39-
v-bind:aria-selected="active === i" v-on:click="toggleActive(i)" data-per-inline="item.title">{{item.title}}</a>
38+
v-bind:aria-selected="active === i" v-on:click="toggleActive(i)" v-bind:data-per-inline="`model.tabs.${i}.title`">{{item.title}}</a>
4039
</div>
4140
<!-- Tab Content -->
4241
<div class="relative">
4342
<div class="w-full py-3 opacity-0 transition-opacity" role="tabpanel"
4443
v-for="(item, i) in model.tabs" :key="item.path || i" v-bind:id="`tab${_uid}${parseInt(i)+1}`"
4544
v-bind:aria-labelledby="`tab-control-${_uid}${parseInt(i)+1}`" v-bind:class="active === i ? 'block opacity-100' : 'hidden'"
46-
v-html="item.text" v-bind:data-per-inline="`item.text`"></div>
45+
v-html="item.text" v-bind:data-per-inline="`model.tabs.${i}.text`"></div>
4746
</div>
4847
</div>
4948
</div>

ui.apps/src/main/content/jcr_root/apps/themecleanflex/components/tabs/template.vue

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<template>
22
<themecleanflex-components-block v-bind:model="model">
33
<div class="p-5" v-if="isEditAndEmpty">no content defined for component</div>
4-
<div class="w-full" v-else>
4+
<div class="w-full" v-else="">
55
<div>
66
<h1 class="text-center pb-4" v-if="model.showtitle == 'true' &amp;&amp; model.title"
77
data-per-inline="model.title">{{model.title}}</h1>
@@ -13,8 +13,7 @@
1313
'lg:flex-row-reverse': model.mediaposition === 'after'
1414
1515
}">
16-
<div class="img-wrapper mx-3" v-if="model.showmedia == 'true'"
17-
v-bind:style="{'flex':`0 0 ${model.mediawidth}%`}">
16+
<div class="img-wrapper mx-3" v-if="model.showmedia == 'true'" v-bind:style="{'flex':`0 0 ${model.mediawidth}%`}">
1817
<themecleanflex-components-media :model="model"></themecleanflex-components-media>
1918
</div>
2019
<div class="py-3 flex flex-col mx-3 lg:flex-grow">
@@ -36,14 +35,14 @@
3635
'text-light' : active !== i &amp;&amp; model.tabcolor === 'light' || active === i &amp;&amp; model.tabcolor === 'dark',
3736
'text-dark' : active !== i &amp;&amp; model.tabcolor === 'dark' || active === i &amp;&amp; model.tabcolor === 'light',
3837
}" v-bind:id="`tab-control-${_uid}${parseInt(i)+1}`" v-bind:aria-controls="`tab${_uid}${parseInt(i)+1}`"
39-
v-bind:aria-selected="active === i" v-on:click="toggleActive(i)" data-per-inline="item.title">{{item.title}}</a>
38+
v-bind:aria-selected="active === i" v-on:click="toggleActive(i)" v-bind:data-per-inline="`model.tabs.${i}.title`">{{item.title}}</a>
4039
</div>
4140
<!-- Tab Content -->
4241
<div class="relative">
4342
<div class="w-full py-3 opacity-0 transition-opacity" role="tabpanel"
4443
v-for="(item, i) in model.tabs" :key="item.path || i" v-bind:id="`tab${_uid}${parseInt(i)+1}`"
4544
v-bind:aria-labelledby="`tab-control-${_uid}${parseInt(i)+1}`" v-bind:class="active === i ? 'block opacity-100' : 'hidden'"
46-
v-html="item.text" v-bind:data-per-inline="`item.text`"></div>
45+
v-html="item.text" v-bind:data-per-inline="`model.tabs.${i}.text`"></div>
4746
</div>
4847
</div>
4948
</div>

0 commit comments

Comments
 (0)