Project

General

Profile

« Previous | Next » 

Revision 376

Added by nicolasboyer 6 months ago

changement chrono

View differences:

branches/1.4-sc50/model/sources/prism/web/prismW.skin.doss/css/skin.css
12 12
	color: white;
13 13
	font-size: 2.5em;
14 14
}
15

  
15 16
.home #navigation li div {
16 17
	margin-bottom: 0.5em;
17 18
}
18
.home section.article .hBk_co .logo{
19
	z-index:-1;
19

  
20
.home section.article .hBk_co .logo {
21
	z-index: -1;
20 22
}
23

  
21 24
.home #navigation li {
22 25
	height: 100px;
23 26
}
......
26 29
.default #main {
27 30
	background-image: url("../img/tpl/back-bottom-straight.svg");
28 31
}
32

  
29 33
.pageTurner .leftBtn {
30 34
	left: 15px;
31 35
	position: absolute;
32 36
}
37

  
33 38
.default #navigation li {
34 39
	height: 40px !important;
35 40
}
41

  
36 42
.autoLearningType #content {
37 43
	margin-bottom: 30px;
38 44
}
45

  
39 46
.btnSynthE {
40 47
	background: transparent url("../img/quiz/eval.svg") no-repeat scroll right 0;
41 48
	color: #434e52;
......
47 54
	padding-right: 40px;
48 55
	text-decoration: none;
49 56
}
50
.homeBtn{
57

  
58
.homeBtn {
51 59
	background: rgba(0, 0, 0, 0) url("../img/tpl/menu-tools.svg") no-repeat scroll 0 0 / 100% auto;
52 60
	box-sizing: border-box;
53 61
	display: inline-block;
......
61 69
	top: 5px;
62 70
	z-index: 2;
63 71
}
72

  
64 73
.default.autoLearningType .homeBtn {
65 74
	left: 75px;
66 75
}
76

  
67 77
.homeBtn:hover,
68
.btnZen:hover{
69
	opacity:0.9;
78
.btnZen:hover {
79
	opacity: 0.9;
70 80
}
81

  
71 82
.default.autoLearningType #navigation a.btnZen {
72 83
	background: transparent url("../img/tpl/mnuMobile.svg") no-repeat scroll 0 0 / 30px auto;
73 84
	height: 30px;
......
76 87
	top: 10px;
77 88
	width: 30px;
78 89
}
90

  
79 91
.default .zen_true #navigation a.btnZen {
80 92
	background-position: inherit;
81 93
}
94

  
82 95
.default.evalType .zen_true #navigation a.btnZen {
83 96
	display: none;
84 97
}
85
.tplChrono {
86
	color: #ffffff;
87
	font-size: 2em;
88
	left: 0;
89
	position: absolute;
90
	top: 5px;
91
	z-index: 2;
92
	width: 100%;
93
	text-align: center;
94
}
95
.tplAlert {
96
	color: #ee1c25;
97
	position: absolute;
98
	text-align: center;
99
	top: 60px;
100
	width: 100%;
101
	z-index:2;
102
}
98

  
103 99
.progressZone {
104 100
	background-color: #ffffff;
105 101
	border-radius: 5px;
106 102
	margin: 0 0.5em;
107 103
}
108
.progressBar{
104

  
105
.progressBar {
109 106
	background-color: #00909e;
110 107
	border-radius: 5px;
111 108
	height: 25px;
112 109
}
113
.quizBody > .response, .quizBody {
110

  
111
.quizBody>.response,
112
.quizBody {
114 113
	margin-top: 0 !important;
115 114
}
116
section.quiz > * > * > * > .toolbar {
115

  
116
section.quiz>*>*>*>.toolbar {
117 117
	bottom: 70px;
118 118
	justify-content: center;
119 119
	left: 0;
......
125 125
	margin-top: 1em;
126 126
}
127 127

  
128
#resetStorageData a.btnReset{
128
#resetStorageData a.btnReset {
129 129
	background: transparent url("../img/quiz/eval.svg") no-repeat scroll right -36px;
130 130
	font-size: 1.2em;
131 131
	height: 33px;
132
	line-height:33px;
132
	line-height: 33px;
133 133
	padding-left: 40px;
134 134
	padding-right: 40px;
135 135
	text-decoration: none;
136 136
	display: inline-block;
137
	color:#434e52;
137
	color: #434e52;
138 138
}
139
.home #resetStorageData a.btnReset{
139

  
140
.home #resetStorageData a.btnReset {
140 141
	background: rgba(67, 78, 82, 0.7) url("../img/tpl/button-restart.svg") no-repeat scroll right center / 40px 40px;
141 142
	color: white;
142 143
	height: 40px;
143 144
	padding-left: 10px;
144 145
	padding-right: 50px;
145 146
}
146
#resetStorageData{
147

  
148
#resetStorageData {
147 149
	display: inline-block;
148 150
}
149 151

  
150 152
/*  Menu	*/
151 153
.mnuTree ul {
152
	list-style-type:none;
154
	list-style-type: none;
153 155
	text-align: left;
154 156
	padding: 0;
155 157
	margin: 0;
156 158
	position: relative;
157 159
}
160

  
158 161
.mnuTree li {
159 162
	list-style-type: none;
160 163
	border-left: 2px solid;
161 164
	margin-left: 1.2em;
162 165
}
166

  
163 167
.mnuTree li div {
164 168
	padding-left: 1em;
165 169
	position: relative;
166 170
}
171

  
167 172
.mnuTree li div::before {
168
	content:'';
173
	content: '';
169 174
	position: absolute;
170 175
	top: 0;
171 176
	left: -2px;
......
175 180
	border-top: 0 none transparent;
176 181
	border-right: 0 none transparent;
177 182
}
178
.mnuTree ul > li:last-child {
183

  
184
.mnuTree ul>li:last-child {
179 185
	border-left: 2px solid transparent;
180 186
}
187

  
181 188
.mnuTree a {
182 189
	color: #434e52;
183 190
	display: inline-block;
184 191
	text-decoration: none;
185 192
	padding: 5px 0;
186 193
}
194

  
187 195
.home .mnuTree a {
188 196
	color: #ffffff;
189 197
}
198

  
190 199
.default #menu {
191 200
	flex: 0 0 300px;
192 201
	margin-top: 60px;
193 202
}
203

  
194 204
.default .zen_true #menu {
195 205
	display: none;
196 206
}
207

  
197 208
.default .mnuZone {
198 209
	margin-top: 30px;
199 210
}
211

  
200 212
.mnuSrlUpFra.btnOff {
201 213
	margin-top: 10px;
202 214
}
203 215

  
216
/* chrono */
217
@font-face {
218
	font-family: 'Digit';
219
	src: url('../font/DS-DIGII.TTF');
220
	font-weight: normal;
221
	font-style: normal;
222
}
223

  
224
.alertBk {
225
	color: #ee1c25;
226
	position: absolute;
227
	text-align: center;
228
	top: 0;
229
	width: 100%;
230
	z-index: 2;
231
	font-weight: bold;
232
	transition: opacity 0.3s ease-in-out;
233
}
234

  
235
.countDownBk {
236
	display: flex;
237
}
238

  
239
.page .countDownBk {
240
	justify-content: center;
241
}
242

  
243
.home .countDownBk {
244
	justify-content: left;
245
}
246

  
247
.home .countDownBk>div {
248
	padding: 0.1em;
249
}
250

  
251
.page .countDownBk .countdown {
252
	font-family: "Digit", monospace;
253
	transition: opacity 0.5s ease-in-out;
254
}
255

  
256
.page .countDownBk.top .countdown {
257
	flex: auto;
258
	position: absolute;
259
	top: -1.8em;
260
	color: #fff;
261
}
262

  
263
.page .discreet .countdown {
264
	font-size: 30px;
265
	text-shadow: 0 0 1px;
266
}
267

  
268
.display_no {
269
	opacity: 0;
270
}
271

  
272
.display_yes {
273
	opacity: 1;
274
}
275

  
276
.page .countdown {
277
	color: #666;
278
}
279

  
204 280
/*  SCORM   */
205
.home a.btnScormQuit, .default #header a.btnScormQuit {
281
.home a.btnScormQuit,
282
.default #header a.btnScormQuit {
206 283
	background: rgba(0, 0, 0, 0) url("../img/content/buttons.svg") no-repeat scroll 0 -80px / 100% auto;
207 284
	box-sizing: border-box;
208 285
	display: inline-block;
......
214 291
	position: absolute;
215 292
	top: 4px;
216 293
	width: 40px;
217
	z-index:9999;
294
	z-index: 9999;
218 295
}
219 296

  
220
.scorm .homeBtn{
221
	left:80px;
297
.scorm .homeBtn {
298
	left: 80px;
222 299
}
branches/1.4-sc50/model/sources/prism/web/svc/clock.uiservice
1 1
<?xml version="1.0"?>
2 2
<sm:freeUiService xmlns:sm="http://www.utc.fr/ics/scenari/v3/modeling" xmlns:sc="http://www.utc.fr/ics/scenari/v3/core" code="clock">
3 3
	<sm:publicService key="clock"/>
4
	<sm:serviceFiles sc:refUri="/mirage/web/svc/clock.doss">
4
	<sm:serviceFiles sc:refUri="/prism/web/svc/clock.doss">
5 5
		<sm:linkScriptForDeclaringService path="clock.js"/>
6 6
	</sm:serviceFiles>
7 7
</sm:freeUiService>
branches/1.4-sc50/model/sources/prism/web/templates/home.uitemplate
1
<?xml version="1.0" encoding="UTF-8"?>
2
<sm:openUiTemplate xmlns:sc="http://www.utc.fr/ics/scenari/v3/core" xmlns:sm="http://www.utc.fr/ics/scenari/v3/modeling" pageUnicityCriterion="hierarchicalContext" lang="?note=Langue%20par%20defaut%20des%20pages%20html&amp;key=defaultWebLangCode;fr">
1
<?xml version="1.0"?>
2
<sm:openUiTemplate xmlns:sm="http://www.utc.fr/ics/scenari/v3/modeling" xmlns:sc="http://www.utc.fr/ics/scenari/v3/core" xmlns="http://www.w3.org/1999/xhtml" pageUnicityCriterion="hierarchicalContext" lang="?note=Langue%20par%20defaut%20des%20pages%20html&amp;key=defaultWebLangCode;fr">
3 3
	<sm:head>
4 4
		<sm:windowTitle>
5 5
			<sm:rootTitle type="shortTitle"/>
......
18 18
		<sm:meta name="viewport">
19 19
			<sm:fixedContent value="width=device-width, initial-scale=1"/>
20 20
		</sm:meta>
21
		<sm:callRootModel axis="chrono"/>
22
		<sm:styleSheet src="css/main.css" srcFrom="skin" media="all"/>
23
		<sm:styleSheet src="css/skin.css" srcFrom="skin" media="all"/>
24
		<sm:styleSheet src="css/print.css" srcFrom="skin" media="print"/>
21
		<sm:styleSheet src="css/main.css" srcFrom="skin" media="all" xml:space="preserve"/>
22
		<sm:styleSheet src="css/skin.css" srcFrom="skin" media="all" xml:space="preserve"/>
23
		<sm:styleSheet src="css/print.css" srcFrom="skin" media="print" xml:space="preserve"/>
25 24
		<sm:Widget sc:refUri="/aurora/web/widg/tpl/userAgentControl.uiwidget"/>
26 25
		<sm:Widget sc:refUri="/aurora/web/widg/tpl/tplMgr.uiwidget"/>
27 26
		<sm:Widget sc:refUri="/prism/web/widg/mgr/rubisMgr.uiwidget"/>
28
		<sm:Widget sc:refUri="/prism/web/widg/tools/chrono.uiwidget"/>
27
		<sm:Widget sc:refUri="/prism/web/widg/tools/countDownMgr.uiwidget"/>
29 28
	</sm:head>
30 29
	<sm:body class="home">
31
		<div xmlns="http://www.w3.org/1999/xhtml" id="root">
30
		<div id="root">
32 31
			<main id="main" role="main">
33 32
				<div id="content" tabindex="-1">
34 33
					<sm:callMainZone format="xhtml"/>
35 34
				</div>
36 35
				<nav id="navigation" class="pageTurner" role="navigation" tabindex="-1">
37
					<hr class="hidden" />
36
					<hr class="hidden"/>
38 37
					<ul>
39 38
						<li>
40 39
							<sm:callZone key="zNav" format="xhtml"/>
......
47 46
				<sm:Widget sc:refUri="/aurora/web/widg/tpl/madeWithSc.uiwidget"/>
48 47
			</footer>
49 48
		</div>
50
		<sm:script src="js/skin.js" srcFrom="skin" type="text/JavaScript"/>
49
		<sm:script src="js/skin.js" srcFrom="skin" type="text/JavaScript" xml:space="preserve"/>
51 50
	</sm:body>
52 51
</sm:openUiTemplate>
branches/1.4-sc50/model/sources/prism/web/templates/page.uitemplate
1
<?xml version="1.0" encoding="UTF-8"?>
2
<sm:openUiTemplate xmlns:sc="http://www.utc.fr/ics/scenari/v3/core" xmlns:sm="http://www.utc.fr/ics/scenari/v3/modeling" pageUnicityCriterion="hierarchicalContext" lang="?note=Langue%20par%20defaut%20des%20pages%20html&amp;key=defaultWebLangCode;fr">
1
<?xml version="1.0"?>
2
<sm:openUiTemplate xmlns:sm="http://www.utc.fr/ics/scenari/v3/modeling" xmlns:sc="http://www.utc.fr/ics/scenari/v3/core" xmlns="http://www.w3.org/1999/xhtml" pageUnicityCriterion="hierarchicalContext" lang="?note=Langue%20par%20defaut%20des%20pages%20html&amp;key=defaultWebLangCode;fr">
3 3
	<sm:head>
4 4
		<sm:windowTitle>
5 5
			<sm:pageTitle/>
......
21 21
		<sm:meta name="viewport">
22 22
			<sm:fixedContent value="width=device-width, initial-scale=1"/>
23 23
		</sm:meta>
24
		<sm:styleSheet src="css/main.css" srcFrom="skin" media="all"/>
25
		<sm:styleSheet src="css/skin.css" srcFrom="skin" media="all"/>
26
		<sm:styleSheet src="css/print.css" srcFrom="skin" media="print"/>
24
		<sm:styleSheet src="css/main.css" srcFrom="skin" media="all" xml:space="preserve"/>
25
		<sm:styleSheet src="css/skin.css" srcFrom="skin" media="all" xml:space="preserve"/>
26
		<sm:styleSheet src="css/print.css" srcFrom="skin" media="print" xml:space="preserve"/>
27 27
		<sm:Widget sc:refUri="/aurora/web/widg/tpl/tplMgr.uiwidget"/>
28 28
		<sm:Widget sc:refUri="/prism/web/widg/mgr/rubisMgr.uiwidget"/>
29
		<sm:Widget sc:refUri="/prism/web/widg/tools/chrono.uiwidget"/>
29
		<sm:Widget sc:refUri="/prism/web/widg/tools/countDownMgr.uiwidget"/>
30 30
		<sm:Widget sc:refUri="/prism/web/widg/tools/keyMap.uiwidget"/>
31
		<sm:callRootModel axis="chrono"/>
32 31
		<sm:callRootModel axis="genSpecific"/>
33 32
	</sm:head>
34 33
	<sm:body class="default page">
35
		<addClassToBody xmlns="http://www.w3.org/1999/xhtml">
34
		<addClassToBody>
36 35
			<sm:choose>
37 36
				<sm:when sc:refUri="/prism/web/cnd/isEval.cond">evalType</sm:when>
38 37
				<sm:otherwise>autoLearningType</sm:otherwise>
39 38
			</sm:choose>
40 39
		</addClassToBody>
41
		<scBlock xmlns="http://www.w3.org/1999/xhtml" id="root">
40
		<scBlock id="root">
42 41
			<header id="header" role="banner">
43 42
				<hx>
44 43
					<span>
......
76 75
					<sm:when sc:refUri="/prism/web/cnd/isEval.cond"/>
77 76
					<sm:otherwise>
78 77
						<nav id="menu" class="pageSelector" role="navigation" tabindex="-1" aria-label="menu principal">
79
							<hr class="hidden" />
78
							<hr class="hidden"/>
80 79
							<sm:Widget sc:refUri="/aurora/web/widg/out/menu.uiwidget"/>
81 80
						</nav>
82 81
					</sm:otherwise>
......
85 84
					<div id="content" tabindex="-1">
86 85
						<div class="scroller">
87 86
							<!--<comment xmlns="scenari.eu:comment:1.0" type="thread"><comment creationTime="1414084384660">Ajouté pour compat IE11 qui ne peut pas scroller un flex auto</comment></comment>-->
88
							<hr class="hidden" />
87
							<hr class="hidden"/>
89 88
							<sm:callMainZone format="xhtml"/>
90 89
							<div class="resultE">
91 90
								<sm:callZone key="zNav" format="xhtml"/>
......
98 97
						</div>
99 98
					</div>
100 99
					<div id="navigation" tabindex="-1">
101
						<hr class="hidden" />
100
						<hr class="hidden"/>
102 101
						<nav class="pageTurner" role="navigation">
103 102
							<ul>
104 103
								<ifText>
......
126 125
				<sm:Widget sc:refUri="/aurora/web/widg/tpl/madeWithSc.uiwidget"/>
127 126
			</footer>
128 127
		</scBlock>
129
		<sm:script src="js/skin.js" srcFrom="skin" type="text/JavaScript"/>
128
		<sm:script src="js/skin.js" srcFrom="skin" type="text/JavaScript" xml:space="preserve"/>
130 129
	</sm:body>
131 130
</sm:openUiTemplate>
branches/1.4-sc50/model/sources/prism/web/transf/_common/assesment/assesment@resultUrl.xsl
4 4
	<xsl:param name="vDialog"/>
5 5
	<xsl:param name="vAgent"/>
6 6
	<xsl:template match="*">
7
chrono.fUrlEndPage = "<xsl:value-of select="getUrl(currentModel(),'result')"/>";
7
countDownMgr.fUrlEndPage = "<xsl:value-of select="getUrl(currentModel(),'result')"/>";
8 8
	</xsl:template>
9 9
</xsl:stylesheet>
branches/1.4-sc50/model/sources/prism/web/transf/eval/transf/webEvalRoot@chrono.transf
1
<?xml version="1.0" encoding="UTF-8"?>
2
<sm:compositionXhtmlTransf xmlns:sc="http://www.utc.fr/ics/scenari/v3/core" xmlns:sm="http://www.utc.fr/ics/scenari/v3/modeling">
3
	<sm:model sc:refUri="/assesment/model/root/webEvalRoot.model"/>
4
	<sm:axis code="chrono"/>
5
	<sm:content format="xhtml">
6
		<sm:callCompositionMeta axis="chrono"/>
7
	</sm:content>
8
</sm:compositionXhtmlTransf>
branches/1.4-sc50/model/sources/prism/web/transf/eval/transf/webEvalRootM@chrono.xsl
1
<?xml version="1.0" encoding="UTF-8"?>
2
<xsl:stylesheet version="1.0" xmlns:sp="http://www.utc.fr/ics/scenari/v3/primitive" xmlns:sc="http://www.utc.fr/ics/scenari/v3/core" xmlns:rbs="scpf.org:opale/rubis" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" exclude-result-prefixes="sc sp rbs">
3
	<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" omit-xml-declaration="yes"/>
4
	<xsl:param name="vDialog"/>
5
	<xsl:param name="vAgent"/>
6
	<xsl:template match="*">
7
		<xsl:if test="sp:settings/sp:chrono/sp:chronoTime">
8
			<script type="text/javascript">
9
				chrono.fTotalTime = parseFloat("<xsl:value-of select="chaineProtegeJs(sp:settings/sp:chrono/sp:chronoTime)"/>")*60*1000;
10
			</script>
11
		</xsl:if>
12
		<xsl:if test="sp:settings/sp:chrono/sp:showChrono">
13
			<script type="text/javascript">
14
				chrono.fIsChrono = "<xsl:value-of select="chaineProtegeJs(sp:settings/sp:chrono/sp:showChrono)"/>";
15
			</script>
16
		</xsl:if>
17
	</xsl:template>
18
</xsl:stylesheet>
branches/1.4-sc50/model/sources/prism/web/transf/eval/transf/webEvalRootM@chrono.transf
1
<?xml version="1.0" encoding="UTF-8"?>
2
<sm:freeXslWebSiteTransf xmlns:sc="http://www.utc.fr/ics/scenari/v3/core" xmlns:sm="http://www.utc.fr/ics/scenari/v3/modeling">
3
	<sm:model sc:refUri="/assesment/model/root/webEvalRootM.model"/>
4
	<sm:axis code="chrono"/>
5
	<sm:content>
6
		<sm:xsl sc:refUri="/prism/web/transf/eval/transf/webEvalRootM@chrono.xsl"/>
7
	</sm:content>
8
</sm:freeXslWebSiteTransf>
branches/1.4-sc50/model/sources/prism/web/transf/eval/transf/webEvalRoot@resultUrl.transf
1
<?xml version="1.0" encoding="UTF-8"?>
2
<sm:compositionXhtmlTransf xmlns:sc="http://www.utc.fr/ics/scenari/v3/core" xmlns:sm="http://www.utc.fr/ics/scenari/v3/modeling">
3
	<sm:model sc:refUri="/assesment/model/root/webEvalRoot.model"/>
4
	<sm:axis code="resultUrl"/>
5
	<sm:content format="xhtml">
6
		<sm:for codes="activity">
7
			<sm:callSubModel axis="resultUrl"/>
8
		</sm:for>
9
	</sm:content>
10
</sm:compositionXhtmlTransf>
branches/1.4-sc50/model/sources/prism/web/transf/eval/transf/webEvalRoot@countDown.transf
1
<?xml version="1.0"?>
2
<sm:freeXslWebSiteTransf xmlns:sm="http://www.utc.fr/ics/scenari/v3/modeling" xmlns:sc="http://www.utc.fr/ics/scenari/v3/core">
3
	<sm:model sc:refUri="/assesment/model/root/webEvalRoot.model"/>
4
	<sm:axis code="countDown"/>
5
	<sm:content>
6
		<sm:xsl sc:refUri="/prism/web/transf/eval/transf/webEvalRoot@countDown.xsl"/>
7
		<sm:callModel sc:refUri="/assesment/model/assesment.model" axis="resultUrl" codeView="xhtmlContent"/>
8
	</sm:content>
9
</sm:freeXslWebSiteTransf>
branches/1.4-sc50/model/sources/prism/web/transf/eval/transf/webEvalRoot@countDown.xsl
1
<?xml version="1.0" encoding="UTF-8"?>
2
<xsl:stylesheet version="1.0" xmlns:sp="http://www.utc.fr/ics/scenari/v3/primitive" xmlns:sc="http://www.utc.fr/ics/scenari/v3/core" xmlns:rbs="scpf.org:opale/rubis" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" exclude-result-prefixes="sc sp rbs">
3
	<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" omit-xml-declaration="yes"/>
4
	<xsl:param name="vDialog"/>
5
	<xsl:param name="vAgent"/>
6
	<xsl:template match="*">
7
		<xsl:if test="*/sp:settings/sp:chrono/sp:chronoTime">
8
countDownMgr.fTime = parseFloat("<xsl:value-of select="chaineProtegeJs(*/sp:settings/sp:chrono/sp:chronoTime)"/>")*60;
9
		</xsl:if>
10
		<xsl:if test="*/sp:settings/sp:chrono/sp:showChrono">
11
countDownMgr.fIsChrono = "<xsl:value-of select="chaineProtegeJs(*/sp:settings/sp:chrono/sp:showChrono)"/>";
12
		</xsl:if>
13
		<xsl:value-of select="getContent(gotoSubModel(sp:activity), 'resultUrl')"/>
14
	</xsl:template>
15
</xsl:stylesheet>
branches/1.4-sc50/model/sources/prism/web/transf/eval/eval.transflist
1
<?xml version="1.0" encoding="UTF-8"?>
2
<sm:transformerList xmlns:sc="http://www.utc.fr/ics/scenari/v3/core" xmlns:sm="http://www.utc.fr/ics/scenari/v3/modeling">
1
<?xml version="1.0"?>
2
<sm:transformerList xmlns:sm="http://www.utc.fr/ics/scenari/v3/modeling" xmlns:sc="http://www.utc.fr/ics/scenari/v3/core">
3 3
	<sm:transformer sc:refUri="/prism/web/transf/eval/transf/webEvalRoot.transf"/>
4 4
	<sm:transformer sc:refUri="/prism/web/transf/eval/transf/webEvalRoot@author.transf"/>
5
	<sm:transformer sc:refUri="/prism/web/transf/eval/transf/webEvalRoot@chrono.transf"/>
5
	<sm:transformer sc:refUri="/prism/web/transf/eval/transf/webEvalRoot@countDown.transf"/>
6 6
	<sm:transformer sc:refUri="/prism/web/transf/eval/transf/webEvalRoot@date.transf"/>
7 7
	<sm:transformer sc:refUri="/prism/web/transf/eval/transf/webEvalRoot@genSpecific.transf"/>
8 8
	<sm:transformer sc:refUri="/prism/web/transf/eval/transf/webEvalRoot@home.transf"/>
......
10 10
	<sm:transformer sc:refUri="/prism/web/transf/eval/transf/webEvalRoot@rootFilter.transf"/>
11 11
	<sm:transformer sc:refUri="/prism/web/transf/eval/transf/webEvalRoot@root.transf"/>
12 12
	<sm:transformer sc:refUri="/prism/web/transf/eval/transf/webEvalRoot@rootModelNav.transf"/>
13
	<sm:transformer sc:refUri="/prism/web/transf/eval/transf/webEvalRoot@resultUrl.transf"/>
14 13
	<sm:transformer sc:refUri="/prism/web/transf/eval/transf/webEvalRootM@author.transf"/>
15
	<sm:transformer sc:refUri="/prism/web/transf/eval/transf/webEvalRootM@chrono.transf"/>
16 14
	<sm:transformer sc:refUri="/prism/web/transf/eval/transf/webEvalRootM@date.transf"/>
17 15
	<sm:transformer sc:refUri="/prism/web/transf/eval/transf/webEvalRootM@home.transf"/>
18 16
</sm:transformerList>
branches/1.4-sc50/model/sources/prism/web/widg/mgr/rubisMgr.doss/rubisMgr.js
41 41
	},
42 42
	// Reset all scorm/storage datas
43 43
	resetAllDatas : function(){
44
		scServices.suspendDataStorage.setVal(["time"],0);
44
		scServices.clock.resetAll();
45 45
		scServices.assmntMgr.setCompletionStatus(null);
46 46
		scServices.locationStorage.setLocation("");
47 47
		if(scServices.storage && scServices.storage.isStorageActive()) {
......
62 62
		}
63 63
		scServices.assmntMgr.resetAll();
64 64
		scServices.assmntMgr.commit(true);
65
		window.location.href = scPaLib.findNode("chi:",sc$('resetStorageData')).href;
65
		window.parent.location.reload();
66 66
	},
67 67
	setProgressBar : function(){
68 68
		var vProgress = outMgr.getProgress();
branches/1.4-sc50/model/sources/prism/web/widg/nav/resetBtn.uiwidget
1
<?xml version="1.0" encoding="UTF-8"?>
2
<sm:openUiWidget xmlns:sc="http://www.utc.fr/ics/scenari/v3/core" xmlns:sm="http://www.utc.fr/ics/scenari/v3/modeling" code="resetBtn">
1
<?xml version="1.0"?>
2
<sm:openUiWidget xmlns:sm="http://www.utc.fr/ics/scenari/v3/modeling" xmlns:sc="http://www.utc.fr/ics/scenari/v3/core" xmlns="http://www.w3.org/1999/xhtml" code="resetBtn">
3 3
	<sm:fillTemplateBuffers>
4 4
		<sm:standardLibrary codeLib="PaLib"/>
5 5
	</sm:fillTemplateBuffers>
6 6
	<sm:content>
7 7
		<sm:choose>
8 8
			<sm:when sc:refUri="/prism/web/cnd/isEvalReset.cond">
9
				<div xmlns="http://www.w3.org/1999/xhtml" id="resetStorageData" style="display: none;">
10
					<a class="btnReset" onclick="rubisMgr.resetAllDatas();return false;" title="Effacer définitivement toutes mes productions relatives à cette étude de cas">
11
						<addAttribute name="href">
12
							<sm:callUrlZone key="urlPage"/>
13
						</addAttribute>
9
				<div id="resetStorageData" style="display: none;">
10
					<a class="btnReset" onclick="rubisMgr.resetAllDatas();return false;" title="Effacer définitivement toutes mes productions relatives à cette étude de cas" href="#">
14 11
						<span>;Recommencer</span>
15
						<span class="lnkImg"></span>
12
						<span class="lnkImg"/>
16 13
					</a>
17 14
				</div>
18
				<script xmlns="http://www.w3.org/1999/xhtml" type="text/JavaScript">scOnLoads[scOnLoads.length] = {
15
				<script type="text/JavaScript">scOnLoads[scOnLoads.length] = {
19 16
	onLoad: function() {
20 17
		if(scServices.locationStorage &amp;&amp; scServices.locationStorage.getLocation()) {
21 18
			if((scServices.storage &amp;&amp; scServices.storage.isStorageActive()) || (scServices.scorm12 &amp;&amp; scServices.scorm12.isScorm12Active()) || (scServices.scorm2k4 &amp;&amp; scServices.scorm2k4.isScorm2k4Active())) {
branches/1.4-sc50/model/sources/prism/web/widg/tools/chrono.doss/chrono.js
1
/* Chrono */
2
// A PASSER EN SERVICES
3
var chrono = {
4
	fTotalTime : 1*30*60*1000, //Default val - 30 minutes
5
	fFra : "bod:.page/ide:root",
6
	fNxtSibling : "ide:header",
7
	fMainCo : "bod:.home/ide:content",
8
	fResultPage : "bod:.resultPage",
9
	fQuitPage : "des:.quitContent ",
10
	fSolPage : "des:.solBody",
11
	fIsChrono : null,
12
	fTimer : null,
13
	fAlert : null,
14
	fStartTime : null,
15
	fRemainingTime : new Date(),
16

  
17
	init : function(){
18
		if (this.fIsChrono && this.fIsChrono == "yes") {
19
			var vPassedTime = scServices.suspendDataStorage ? scServices.suspendDataStorage.getVal(["time"]) || 0 : 0;
20
			//this.fStartTime est réinitialisé si l'éval est réinitialisé
21
			this.fStartTime = new Date().getTime() - vPassedTime;
22
			this.fFraNode = scPaLib.findNode(this.fFra);
23
			this.fMainCoNode = scPaLib.findNode(this.fMainCo);
24
			this.fResultPageNode = scPaLib.findNode(this.fResultPage);
25
			this.fQuitPageNode = scPaLib.findNode(this.fQuitPage);
26
			this.fSolPageNode = scPaLib.findNode(this.fSolPage);
27
			this.fNxtSiblingNode = scPaLib.findNode(this.fNxtSibling);
28
			this.fRemainingTime.setTime(this.fTotalTime - vPassedTime);
29
			if(this.fFraNode) {
30
				if(!(this.fResultPageNode || this.fSolPageNode) && !scServices.isInReadOnlyMode) {
31
					this.fChronoNode = this.xAddElt("div",this.fFraNode,"tplChrono",null,null,this.fNxtSiblingNode);
32
					this.fAlertNode = this.xAddElt("div",this.fFraNode,"tplAlert",null,null,this.fChronoNode);
33
					this.chronoExec();
34
					this.fTimer = window.setInterval("chrono.chronoExec()", 200);
35
					//Gère le timer si on revient sur la page d'accueil afin que le temps proposé corresponde toujours au temps total et non au temps restant
36
					this.fAlert = window.setTimeout("chrono.chronoAlert()", (this.fTotalTime-this.fRemainingTime<=this.fTotalTime/3 ? this.fTotalTime/3-(this.fTotalTime-this.fRemainingTime) : (this.fRemainingTime>this.fTotalTime/3 ? this.fRemainingTime-this.fTotalTime/3 : this.fRemainingTime)));
37
				} else {
38
					//Arrêt du chrono si on est sur la page de résultat ...
39
					this.fChronoNode = this.xAddElt("div",this.fFraNode,"tplChrono",null,null,this.fNxtSiblingNode);
40
					this.chronoExec();
41
					window.clearInterval(this.fTimer);
42
					window.clearTimeout(this.fAlert);
43
				}
44
			}
45
			else if(!this.fQuitPageNode) {
46
				//Affichage du temps sur la page d'accueil
47
				if(vPassedTime == 0) {
48
					this.fTimeoutStartNode = this.xAddElt("div",this.fMainCoNode,"tplTimeout",null,null,null);
49
					this.fTimeoutStartNode.innerHTML = 'Vous avez ' + this.xFormatTime(this.fRemainingTime, true) + ' pour réaliser ce test';
50
				} else {
51
					this.fTimeoutRestartNode = this.xAddElt("div",this.fMainCoNode,"tplTimeout",null,null,null);
52
					if(this.fRemainingTime > 0) this.fTimeoutRestartNode.innerHTML = 'Il reste ' + this.xFormatTime(this.fRemainingTime, true) + ' pour terminer ce test';
53
					else {
54
						this.fTimeoutRestartNode.innerHTML = 'Le temps pour réaliser ce test est écoulé ...';
55
					}
56
				}
57
			}
58
		}
59
		scCoLib.util.log("chrono.init");
60
	},
61
	chronoExec : function() {
62
		var vTime = new Date();
63
		var vPassedTime = vTime.getTime() - this.fStartTime;
64
		if(scServices.suspendDataStorage) scServices.suspendDataStorage.setVal(["time"], vPassedTime);
65
		this.fRemainingTime.setTime(this.fTotalTime - vPassedTime);
66
		if(this.fRemainingTime.getTime() > 0) {
67
			if (this.fChronoNode) this.fChronoNode.innerHTML = this.xFormatTime(this.fRemainingTime);
68
		} else window.clearInterval(this.fTimer);
69
	},
70
	chronoAlert : function() {
71
		if(this.fRemainingTime.getTime() > 0) {
72
			if(this.fRemainingTime.getTime() >= 200) this.fAlertNode.innerHTML = '<div class="chronoAlertDeco"></div><span>Il reste ' + this.xFormatTime(this.fRemainingTime, true) + ' pour terminer ce test</span>';
73
			else {
74
				this.fAlertNode.innerHTML = '<div class="chronoAlertDeco"></div><span>Le temps disponible est écoulé. Vous devriez avoir fini le test !</span>';
75
				scServices.exitModeStorage.fTimeOut = true;
76
				setTimeout(function(){ window.location.href = chrono.fUrlEndPage; }, 1000);
77
			}
78
			//Fade du div
79
			try {
80
				new chrono.FadeEltTask(this.fAlertNode,1,null,null,null);
81
			} catch(e) {scCoLib.util.logError("ERROR chrono.chronoAlert",e);}
82
			window.clearTimeout(this.fAlert);
83
			this.fAlert = window.setTimeout("chrono.chronoAlert()", this.fTotalTime/3);
84
			this.fHideAlert = setTimeout("chrono.hideAlertNode()",10000);
85
		} else window.clearTimeout(this.fAlert);
86
	},
87
	hideAlertNode : function() {
88
		//Fade du div
89
		try {
90
			new chrono.FadeEltTask(this.fAlertNode,0,null,null,null);
91
		} catch(e) {scCoLib.util.logError("ERROR chrono.chronoAlert",e);}
92
		window.clearTimeout(this.fHideAlert);
93
	},
94
/** === Tools ============================================================== */
95
	xFormatTime : function(pTime,pFormat) {
96
		var vH = pTime.getUTCHours();
97
		var vM = pTime.getUTCMinutes();
98
		var vS = pTime.getUTCSeconds();
99
		if(!pFormat) var vStr = (vH > 0 ? (vH > 9 ? "" : "0") + vH + ":" : "") + (vM > 9 ? "" : "0") + vM + (vS > 9 ? ":" : ":0") + vS;
100
		else var vStr = (vH > 0 ? (vH > 9 ? "" : "0") + vH + " heures " : "") + (vM > 0 ? (vM > 9 ? "" : "0") + vM + " minutes " : "") + (vS > 0 ? (vS > 9 ? "" : "0") + vS + " secondes " : "");
101
		return(vStr);
102
	},
103
	xAddElt : function(pName, pParent, pClassName, pNoDisplay, pHidden, pNxtSib){
104
		var vElt;
105
		if(scCoLib.isIE && pName.toLowerCase() == "iframe") {
106
			//BUG IE : impossible de masquer les bordures si on ajoute l'iframe via l'API DOM.
107
			var vFrmHolder = pParent.ownerDocument.createElement("div");
108
			if (pNxtSib) pParent.insertBefore(vFrmHolder,pNxtSib)
109
			else pParent.appendChild(vFrmHolder);
110
			vFrmHolder.innerHTML = "<iframe scrolling='no' frameborder='0'></iframe>";
111
			vElt = vFrmHolder.firstChild;
112
		} else {
113
			vElt = pParent.ownerDocument.createElement(pName);
114
			if (pNxtSib) pParent.insertBefore(vElt,pNxtSib)
115
			else pParent.appendChild(vElt);
116
		}
117
		if (pClassName) vElt.className = pClassName;
118
		if (pNoDisplay) vElt.style.display = "none";
119
		if (pHidden) vElt.style.visibility = "hidden";
120
		return vElt;
121
	},
122
	loadSortKey : "zChrono"
123
}
124
/* === Generic tasks ======================================================== */
125
/** chrono.FadeEltTask : TiLib task that fades a given element in or out.
126
 * @param pElt element to fade.
127
 * @param pDir fade direction : 0=out, 1=in.
128
 * @param pStartFunc optionnal function that will be executed at the start of the task.
129
 * @param pEndFunc optionnal function that will be executed at the end of the task.
130
 * @param pInstant optionnal parameter if true no animation. */
131
chrono.FadeEltTask = function(pElt,pDir,pStartFunc,pEndFunc,pInstant){
132
	//scCoLib.util.log("New scHPS.FadeEltTask");
133
	this.fRate = new Array();
134
	this.fRate[0] = [.9, .85, .8, .7, .6, .5, .4, .3, .2, .15, .1];
135
	this.fRate[1] = [.1, .15, .2, .3, .4, .5, .6, .7, .8, .85, .9];
136
	try{
137
		this.fElt = pElt;
138
		this.fDir = (pDir >= 1 ? 1 : 0);
139
		this.fMgr = {fEnableEffects:"true"};
140
		this.fStartFunc = pStartFunc || function(){};
141
		this.fEndFunc = pEndFunc || function(){};
142
		if (pInstant || !this.fMgr.fEnableEffects) {
143
			this.terminate();
144
			return;
145
		}
146
		if (this.fElt.fFadeTask) {
147
			this.fElt.fFadeTask.changeDir(this.fDir);
148
		} else {
149
			this.fStartFunc();
150
			if(scCoLib.isIE) this.fElt.style.filter = 1-this.fDir==1 ? "progid:DXImageTransform.Microsoft.Alpha(opacity=100)" : "progid:DXImageTransform.Microsoft.Alpha(opacity=0)";
151
			else this.fElt.style.opacity = 1-this.fDir;
152
			this.fElt.style.visibility = "";
153
			this.fEndTime = ( Date.now  ? Date.now() : new Date().getTime() ) + 100;
154
			this.fIdx = -1;
155
			this.fElt.fFadeTask = this;
156
			scTiLib.addTaskNow(this);
157
		}
158
	}catch(e){scCoLib.util.log("ERROR chrono.FadeEltTask : "+e);}
159
}
160
chrono.FadeEltTask.prototype = {
161
	/** FadeEltTask.execTask */
162
	execTask : function(){
163
		while(this.fEndTime < (Date.now ? Date.now() : new Date().getTime()) && this.fIdx < this.fRate[this.fDir].length) {
164
			this.fIdx++;
165
			this.fEndTime += 100;
166
		}
167
		this.fIdx++;
168
		this.fEndTime += 100;
169
		if(this.fIdx >= this.fRate[this.fDir].length) {
170
			if(scCoLib.isIE) this.fElt.style.filter = "";
171
			else this.fElt.style.opacity = this.fDir;
172
			if(this.fDir == 0) this.fElt.style.visibility = "hidden";
173
			else this.fElt.style.visibility = "";
174
			this.fEndFunc();
175
			this.fElt.fFadeTask = null;
176
			return false;
177
		}
178
		if(scCoLib.isIE) this.fElt.filters.item("DXImageTransform.Microsoft.Alpha").opacity = this.fRate[this.fDir][this.fIdx]*100;
179
		else this.fElt.style.opacity = this.fRate[this.fDir][this.fIdx];
180
		return true;
181
	},
182
	/** FadeEltTask.execchangeDirTask */
183
	changeDir : function(pDir){
184
		var vDir = (pDir >= 1 ? 1 : 0)
185
		if (vDir != this.fDir) this.fIdx = this.fRate[this.fDir].length - this.fIdx - 1;
186
		this.fDir = vDir;
187
	},
188
	/** FadeEltTask.terminate */
189
	terminate : function(){
190
		// 	scCoLib.util.log("scHPS.FadeEltTask.terminate");
191
		this.fIdx = this.fRate[this.fDir].length;
192
		this.execTask();
193
	}
194
}
branches/1.4-sc50/model/sources/prism/web/widg/tools/chrono.uiwidget
1
<?xml version="1.0" encoding="UTF-8"?>
2
<sm:openUiWidget code="chrono" xmlns:sm="http://www.utc.fr/ics/scenari/v3/modeling" xmlns:sc="http://www.utc.fr/ics/scenari/v3/core">
3
	<sm:widgetFiles sc:refUri="/prism/web/widg/tools/chrono.doss"/>
4
	<sm:fillTemplateBuffers>
5
		<sm:standardLibrary codeLib="PaLib"/>
6
		<sm:standardLibrary codeLib="TiLib"/>
7
		<!--Ajout init JS de chrono à la page.-->
8
		<sm:postXslFragment keyXsl="xhtml">&lt;xsl:overlay match=&quot;body&quot;&gt;
9
	&lt;xsl:value-of select=&quot;execute(java:append($vBufJs, 'chrono.init();'))&quot;/&gt;
10
&lt;/xsl:overlay&gt;</sm:postXslFragment>
11
		<sm:linkScript path="chrono.js" pathFrom="widgetFiles" sortKey="A"/>
12
	</sm:fillTemplateBuffers>
13
	<sm:content>
14
		<script type="text/JavaScript" xmlns="http://www.w3.org/1999/xhtml">
15
			<sm:callModel>
16
				<sm:root axis="resultUrl"/>
17
			</sm:callModel>
18
		</script>
19
	</sm:content>
20
</sm:openUiWidget>
branches/1.4-sc50/model/sources/prism/web/widg/tools/countDownMgr.doss/countDownMgr.js
1
/**
2
 * LICENCE[[
3
 * Version: MPL 2.0/GPL 3.0/LGPL 3.0/CeCILL 2.1
4
 *
5
 * The contents of this file are subject to the Mozilla Public License Version
6
 * 2.0 (the "License"); you may not use this file except in compliance with
7
 * the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/
8
 *
9
 * Software distributed under the License is distributed on an "AS IS" basis,
10
 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
11
 * for the specific language governing rights and limitations under the
12
 * License.
13
 *
14
 * The Original Code is kelis.fr code.
15
 *
16
 * The Initial Developer of the Original Code is
17
 * nicolas.boyer@kelis.fr
18
 *
19
 * Portions created by the Initial Developer are Copyright (C) 2017
20
 * the Initial Developer. All Rights Reserved.
21
 *
22
 * Contributor(s):
23
 *
24
 * Alternatively, the contents of this file may be used under the terms of
25
 * either of the GNU General Public License Version 3 or later (the "GPL"),
26
 * or the GNU Lesser General Public License Version 3.0 or later (the "LGPL"),
27
 * or the CeCILL Licence Version 2.1 (http://www.cecill.info/licences.en.html),
28
 * in which case the provisions of the GPL, the LGPL or the CeCILL are applicable
29
 * instead of those above. If you wish to allow use of your version of this file
30
 * only under the terms of either the GPL, the LGPL or the CeCILL, and not to allow
31
 * others to use your version of this file under the terms of the MPL, indicate
32
 * your decision by deleting the provisions above and replace them with the notice
33
 * and other provisions required by the GPL, the LGPL or the CeCILL. If you do not
34
 * delete the provisions above, a recipient may use your version of this file under
35
 * the terms of any one of the MPL, the GPL, the LGPL or the CeCILL.
36
 * ]]LICENCE
37
 */
38

  
39
var countDownMgr = {
40
	fClockPath : "ide:content",
41
	fStrings : ["Fin","Vous avez atteint la fin du parcours."],
42
	fTime : 30*60, //Default val - 30 minutes,
43
	fStrings : [
44
		"Le temps disponible est écoulé. Vous devriez avoir fini le test !","Il reste %s pour terminer ce test",
45
		"Le temps pour réaliser ce test est écoulé ...", "Vous avez ",
46
		"Il reste ", " pour réaliser ce test",
47
		" pour terminer ce test"
48
	],
49

  
50
	init : function() {
51
		if(!this.fIsChrono || this.fIsChrono === "no") return;
52

  
53
		// Init variables
54
		var vClockLocation = scPaLib.findNode(this.fClockPath);
55
		var vAlertBk = scDynUiMgr.addElement("div", vClockLocation, "alertBk", vClockLocation.firstChild, {opacity: 0});
56
		var vCountDownBk = scDynUiMgr.addElement("div", vClockLocation, "countDownBk discreet display_yes top", vClockLocation.firstChild
57
		);
58
		var vIsPage = document.body.classList.contains("page") && !document.body.classList.contains("resultPage");
59

  
60
		// Init chrono
61
		var vCountDownDiv = scDynUiMgr.addElement("div", vCountDownBk, "countdown", null, {display: "none"});
62

  
63
		// Set countdown
64
		var vClock = this.fClock = scServices.clock.init(vCountDownDiv, {
65
			format 		        : vIsPage ? "shorttime" : "longtime",
66
			countdown 			: true,
67
			time 				: this.fTime,
68
			autostart			: vIsPage,
69
			callbacks 			: {
70
				stop : function() {
71
					vAlertBk.innerHTML = countDownMgr.fStrings[0];
72
					vAlertBk.style.opacity = 1;
73
					setTimeout(function(){ window.location.href = scServices.scLoad.resolveDestUri("/co/" + countDownMgr.fUrlEndPage); }, 2000);
74
				},
75
				interval : function(){
76
					if (vClock) {
77
						var vRemainingTime = Math.round(vClock.getRemainingTime("second"));
78
						if (vRemainingTime%Math.round(countDownMgr.fTime/3) === 1 && vRemainingTime > 1) {
79
							vAlertBk.innerHTML = countDownMgr.fStrings[1].replace("%s", vClock.getRemainingTime("longtime"));
80
							vAlertBk.style.opacity = 1;
81
							countDownMgr.fAlert = setTimeout(function() {
82
								vAlertBk.style.opacity = 0;
83
								clearTimeout(countDownMgr.fAlert);
84
							}, 3000);
85
						}
86
					}
87
				}
88
			}
89
		});
90

  
91
		// Affichage chrono
92
		var vRemainingTime = scServices.clock.getRemainingTimeById();
93
		var vPassedTime = scServices.clock.getPassedTimeById();
94
		if (vRemainingTime <= 1) {
95
			vCountDownBk.innerHTML = this.fStrings[2]
96
		} else {
97
			var vCountDownDivBegin, vCountDownDivEnd;
98
			if (!vIsPage) {
99
				vCountDownDivBegin = scDynUiMgr.addElement("div", vCountDownBk, null, vCountDownDiv);
100
				vCountDownDivBegin.innerHTML = vPassedTime === 0 ? this.fStrings[3] : this.fStrings[4];
101
			}
102
			vCountDownDiv.style.display = "";
103
			if (!vIsPage) {
104
				vCountDownDivEnd = scDynUiMgr.addElement("div", vCountDownBk);
105
				vCountDownDivEnd.innerHTML = vPassedTime === 0 ? this.fStrings[5] : this.fStrings[6];
106
			}
107
		}
108
	},
109

  
110
	onUnload : function() {
111
		this.fClock.pause();
112
	},
113

  
114
	loadSortKey : "ZcountDownMgr"
115
};
116

  
117
scOnUnloads.push(countDownMgr);
branches/1.4-sc50/model/sources/prism/web/widg/tools/countDownMgr.uiwidget
1
<?xml version="1.0"?>
2
<sm:openUiWidget xmlns:sm="http://www.utc.fr/ics/scenari/v3/modeling" xmlns:sc="http://www.utc.fr/ics/scenari/v3/core" xmlns="http://www.w3.org/1999/xhtml" code="countDownMgr">
3
	<sm:widgetFiles sc:refUri="/prism/web/widg/tools/countDownMgr.doss"/>
4
	<sm:fillTemplateBuffers>
5
		<sm:standardLibrary codeLib="PaLib"/>
6
		<sm:standardLibrary codeLib="TiLib"/>
7
		<sm:postXslFragment keyXsl="xhtml" xml:space="preserve">&lt;xsl:overlay match="body"&gt;
8
	&lt;xsl:value-of select="execute(java:append($vBufJs, 'countDownMgr.init();'))"/&gt;
9
&lt;/xsl:overlay&gt;</sm:postXslFragment>
10
		<sm:linkScript path="countDownMgr.js" pathFrom="widgetFiles" sortKey="c"/>
11
	</sm:fillTemplateBuffers>
12
	<sm:content>
13
		<script type="text/JavaScript">
14
			<sm:callModel>
15
				<sm:root axis="countDown"/>
16
			</sm:callModel>
17
		</script>
18
	</sm:content>
19
</sm:openUiWidget>
branches/1.4-sc50/model/tests/Rubis/sources/_noSvn/_noSvn_webEval.publi
1 1
<?xml version="1.0"?>
2
<sc:item xmlns:sc="http://www.utc.fr/ics/scenari/v3/core" xmlns:sp="http://www.utc.fr/ics/scenari/v3/primitive" xmlns:rbs="scpf.org:opale/rubis"><rbs:webEvalRoot><rbs:webEvalRootM><sp:commonDatas><rbs:commonDatas/></sp:commonDatas></rbs:webEvalRootM><sp:activity sc:refUri=""/></rbs:webEvalRoot></sc:item>
2
<sc:item xmlns:sc="http://www.utc.fr/ics/scenari/v3/core" xmlns:sp="http://www.utc.fr/ics/scenari/v3/primitive" xmlns:rbs="scpf.org:opale/rubis">
3
	<rbs:webEvalRoot>
4
		<rbs:webEvalRootM>
5
			<sp:commonDatas><rbs:commonDatas/></sp:commonDatas>
6
			<sp:settings><sp:chrono><sp:showChrono>yes</sp:showChrono><sp:chronoTime>1</sp:chronoTime></sp:chrono></sp:settings>
7
		</rbs:webEvalRootM>
8
		<sp:activity sc:refUri="/_noSvn/&amp;/exercice_.xml"/>
9
	</rbs:webEvalRoot>
10
</sc:item>

Also available in: Unified diff