[XFORMS] Imbrication d'instances et trigger
Bonjour,
J'ai un petit souci sur lequel je sèche depuis maintenant quelques temps.
Le code ci-dessous illustre la situation, mais elle se résume comme suit :
Je souhaiterais que le trigger (contenu dans le div de classe "goal") ajoute à /content/opertional_strategy/goals une nouvelle "entrée" basée sur l'instance "new-goal" et que le champ "indicators" de new-goal soit rempli avec l'instance "new-indicator".
Pouvez-vous m'aider ?
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140
| <html xmlns="http://www.w3.org/1999/xhtml" xmlns:xf="http://www.w3.org/2002/xforms" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:f="http://orbeon.org/oxf/xml/formatting" xmlns:fr="http://orbeon.org/oxf/xml/form-runner" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<head>
<xf:model>
<xf:instance id="contents-instance" xmlns="">
<content>
<operational_strategy>
<goals>
<goal>
<g>g1</g>
<indicators>
<indicator>
<label>l1</label>
<baseline>b1</baseline>
<target>t1</target>
<verification>v1</verification>
</indicator>
<indicator>
<label>l2</label>
<baseline>b2</baseline>
<target>t2</target>
<verification>v2</verification>
</indicator>
</indicators>
</goal>
</goals>
</operational_strategy>
</content>
#end
</xf:instance>
<!-- GOAL instance with initial values -->
<xf:instance xmlns="" id="new-goal">
<data>
<goal>
<g></g>
<indicators></indicators>
<baseline>0</baseline>
<target>0</target>
<verification></verification>
</goal>
</data>
</xf:instance>
<!-- Indicator instance with initial values -->
<xf:instance xmlns="" id="new-indicator">
<data>
<indicator>
<label></label>
<baseline>0</baseline>
<target>0</target>
<verification></verification>
</indicator>
</data>
</xf:instance>
</xf:model>
</head>
<body>
<h1>youpi</h1>
<xf:group ref="/content/operational_strategy">
<fieldset class="formOrange">
<div class="goaltable">
<div class="header">
<div class="goal">
G
<xf:trigger appearance="minimal">
<xf:label><img src="/css/images/edit.png" alt="Add"/></xf:label>
<xf:insert ev:event="DOMActivate"
context="."
nodeset="goals/goal[last()]"
origin="instance('new-goal')/goal" />
<xf:insert ev:event="DOMActivate"
context="."
nodeset="goals/goal[last()]/indicators/indicator"
origin="instance('new-indicator')/indicator" />
</xf:trigger>
</div>
<div class="indicators">
I
</div>
<div class="baseline">B/L</div>
<div class="target">T</div>
<div class="verification">M</div>
<div class="tools">T</div>
</div>
<div class="clear"></div>
<xf:repeat id="goal-repeat" nodeset="goals/goal">
<div class="goalObject">
<div class="g">
<xf:textarea ref="g">
<xf:hint>Goal</xf:hint>
</xf:textarea>
</div>
<xf:repeat id="indicator-repeat" nodeset="./indicators/indicator">
<div class="indicatorObject">
<div class="label">
<xf:input ref="label">
</xf:input>
</div>
<div class="baseline">
<xf:input ref="baseline">
</xf:input>
</div>
<div class="target">
<xf:input ref="target">
</xf:input>
</div>
<div class="verification">
<xf:input ref="verification">
</xf:input>
</div>
<div class="tools center">
<xf:trigger appearance="minimal">
<xf:label><img src="/css/images/delete.jpg" alt="Delete"/></xf:label>
<xf:hint>Delete entry</xf:hint>
<xf:action ev:event="DOMActivate">
<xf:delete nodeset="/content/operational_strategy/goals/goal/indicators/indicator"
at="index('indicator-repeat')" />
</xf:action>
</xf:trigger>
<xf:trigger appearance="minimal">
<xf:label><img src="/css/images/edit.png" alt="Add"/></xf:label>
<xf:insert ev:event="DOMActivate"
context="."
nodeset="/content/operational_strategy/goals/goal/indicators"
origin="instance('new-indicator')/indicator" />
</xf:trigger>
</div>
</div>
</xf:repeat>
</div>
<div class="clear"></div>
</xf:repeat>
</div>
</fieldset>
</xf:group>
</body>
</html> |