<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:p="urn:schemas-microsoft-com:office:powerpoint" xmlns:a="urn:schemas-microsoft-com:office:access" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema" xmlns:b="urn:schemas-microsoft-com:office:publisher" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:c="urn:schemas-microsoft-com:office:component:spreadsheet" xmlns:odc="urn:schemas-microsoft-com:office:odc" xmlns:oa="urn:schemas-microsoft-com:office:activation" xmlns:html="http://www.w3.org/TR/REC-html40" xmlns:q="http://schemas.xmlsoap.org/soap/envelope/" xmlns:rtc="http://microsoft.com/officenet/conferencing" xmlns:D="DAV:" xmlns:Repl="http://schemas.microsoft.com/repl/" xmlns:mt="http://schemas.microsoft.com/sharepoint/soap/meetings/" xmlns:x2="http://schemas.microsoft.com/office/excel/2003/xml" xmlns:ppda="http://www.passport.com/NameSpace.xsd" xmlns:ois="http://schemas.microsoft.com/sharepoint/soap/ois/" xmlns:dir="http://schemas.microsoft.com/sharepoint/soap/directory/" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:dsp="http://schemas.microsoft.com/sharepoint/dsp" xmlns:udc="http://schemas.microsoft.com/data/udc" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sub="http://schemas.microsoft.com/sharepoint/soap/2002/1/alerts/" xmlns:ec="http://www.w3.org/2001/04/xmlenc#" xmlns:sp="http://schemas.microsoft.com/sharepoint/" xmlns:sps="http://schemas.microsoft.com/sharepoint/soap/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:udcs="http://schemas.microsoft.com/data/udc/soap" xmlns:udcxf="http://schemas.microsoft.com/data/udc/xmlfile" xmlns:udcp2p="http://schemas.microsoft.com/data/udc/parttopart" xmlns:wf="http://schemas.microsoft.com/sharepoint/soap/workflow/" xmlns:dsss="http://schemas.microsoft.com/office/2006/digsig-setup" xmlns:dssi="http://schemas.microsoft.com/office/2006/digsig" xmlns:mdssi="http://schemas.openxmlformats.org/package/2006/digital-signature" xmlns:mver="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns:mrels="http://schemas.openxmlformats.org/package/2006/relationships" xmlns:spwp="http://microsoft.com/sharepoint/webpartpages" xmlns:ex12t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:ex12m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:pptsl="http://schemas.microsoft.com/sharepoint/soap/SlideLibrary/" xmlns:spsl="http://microsoft.com/webservices/SharePointPortalServer/PublishedLinksService" xmlns:Z="urn:schemas-microsoft-com:" xmlns:st="&#1;" xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:SimSun;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:SimSun;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:"\@SimSun";
        panose-1:2 1 6 0 3 1 1 1 1 1;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page Section1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.Section1
        {page:Section1;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body lang=EN-GB link=blue vlink=purple>

<div class=Section1>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Can you do it by having a protoNode somewhere the flow never
goes, and when you kick up the question get that node, append it to the
appropriate parent and then dupe it?<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Then when you return, loop over childNodes, deleting each one
using removeNode(), then put back your protoNode and duplicate it. You might
need to make sure you are getting a copy of the protoNode and not a reference.<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Does that sound like what you are trying to do?<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm'>

<p class=MsoNormal style='margin-left:36.0pt'><b><span lang=EN-US
style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span
lang=EN-US style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>
xerte-bounces@lists.nottingham.ac.uk
[mailto:xerte-bounces@lists.nottingham.ac.uk] <b>On Behalf Of </b>Kemp Johnathan<br>
<b>Sent:</b> 09 June 2010 15:32<br>
<b>To:</b> Xerte discussion list<br>
<b>Subject:</b> Re: [Xerte] xerte 2.n - Help needed to remove and then
re-duplicateicons<o:p></o:p></span></p>

</div>

<p class=MsoNormal style='margin-left:36.0pt'><o:p>&nbsp;</o:p></p>

<div>

<p class=MsoNormal style='margin-left:36.0pt'>No that's not it.<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal style='margin-left:36.0pt'><o:p>&nbsp;</o:p></p>

</div>

<div>

<p class=MsoNormal style='margin-left:36.0pt'>The page I am trying to create
will allow the end user (not the designer who sets up the wizard) to select
options that will decide which questions are offered to them. This means that
each time they reach the &quot;quiz&quot; end and click restart it will be
necessary to as far as is possible get back to the situation that applied
before the page was first run.<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal style='margin-left:36.0pt'><o:p>&nbsp;</o:p></p>

</div>

<div>

<p class=MsoNormal style='margin-left:36.0pt'>The quiz works by taking an icon
structure called protoQuestion and duplicating it to accomodate the number of
questions to be displayed.<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal style='margin-left:36.0pt'><o:p>&nbsp;</o:p></p>

</div>

<div>

<p class=MsoNormal style='margin-left:36.0pt'>For my page to work, if built ==
true, I need to remove all nodes that were duplications of protoQuestion and
then re-duplicate the nodes the number of times appropriate for the current
selections the user has made.<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal style='margin-left:36.0pt'><o:p>&nbsp;</o:p></p>

</div>

<div>

<p class=MsoNormal style='margin-left:36.0pt'>You will get a feel for what I am
trying to achieve if you open the project example I attached to my last email
and use the TOC to go to the randomSequence page. The part of the quiz code
that builds the pages is not run in the getPageID script. The user selections
are processed first to create an array with one element for each
&quot;question&quot; &quot;option&quot;. The create questions script then runs
to duplicate protoQuestion as many times as is necessary based on the length of
the array. The page works once but fails on the restart - at present I have
removed code that represents early attempts to remove and re-duplicate the
icons.<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal style='margin-left:36.0pt'><o:p>&nbsp;</o:p></p>

</div>

<div>

<p class=MsoNormal style='margin-left:36.0pt'>I have included the quiz page as
a simpler example that is closer to the original script for the quiz page. The
only difference being that I have separated out the part of the getPageId
script that makes the pages and moved it to the end of the icon sequence to
just before the Decision icon. The quiz page still works. <o:p></o:p></p>

</div>

<div>

<p class=MsoNormal style='margin-left:36.0pt'><o:p>&nbsp;</o:p></p>

</div>

<div>

<p class=MsoNormal style='margin-left:36.0pt'>The challenge is to take the code
in the &quot;make questions&quot; script of the quiz page and add an else
section to it.<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal style='margin-left:36.0pt'>e.g.<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal style='margin-left:36.0pt'><o:p>&nbsp;</o:p></p>

</div>

<div>

<p class=MsoNormal style='margin-left:36.0pt'>if (icon.attributes.built !=
'true'){<br>
icon.parentNode.getChildByName(&quot;questions&quot;).firstChild.duplicate(pageIcon.templateData.learningObject[0].quiz[0].question.length
- 1);<br>
<br>
icon.attributes.built = 'true';<br>
<br>
}<br>
else {<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal style='margin-left:36.0pt'>&nbsp; // code needed here that
will<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal style='margin-left:36.0pt'>&nbsp;// 1. remove all the pages
created by the duplication that occurred in the if section above;<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal style='margin-left:36.0pt'>&nbsp;// 2. duplicate the pages
affresh, such that the page still works each time it is restarted or revisited.<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal style='margin-left:36.0pt'>}<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal style='margin-left:36.0pt'><o:p>&nbsp;</o:p></p>

</div>

<div>

<p class=MsoNormal style='margin-left:36.0pt'>If I can find out how to do this
it should be straight forward to modify this so that the code<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal style='margin-left:36.0pt'>a) removes all the pages
duplicated the last time the page was run<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal style='margin-left:36.0pt'>b) duplicates the appropriate
number of new pages required to meet the end users latest selection<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal style='margin-left:36.0pt'><o:p>&nbsp;</o:p></p>

</div>

<div>

<p class=MsoNormal style='margin-left:36.0pt'>which are the requirements of my
new wizard.<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal style='margin-left:36.0pt'><o:p>&nbsp;</o:p></p>

</div>

<div>

<p class=MsoNormal style='margin-left:36.0pt'>The quiz page at present can
remove nodes and re-create them, but comparison of the xml of the pages that
existed after the initial, build by using debug, with the new pages created,
shows them not to be the same and the page fails to run correctly in the second
running. .i.e. when it is restarted or revisited.<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal style='margin-left:36.0pt'><o:p>&nbsp;</o:p></p>

</div>

<div>

<p class=MsoNormal style='margin-left:36.0pt'>Is what I am trying to achieve
possible? I cannot recall a Xerte page that actually allows the end user to
take actions that effectively allow the end user to configure in some way the
pages structure.<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal style='margin-left:36.0pt'><o:p>&nbsp;</o:p></p>

</div>

<div>

<p class=MsoNormal style='margin-left:36.0pt'>Kind regards<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal style='margin-left:36.0pt'><o:p>&nbsp;</o:p></p>

</div>

<div>

<p class=MsoNormal style='margin-left:36.0pt'>Johnathan&nbsp;<br>
&nbsp;<o:p></o:p></p>

</div>

<p class=MsoNormal style='margin-left:36.0pt'><o:p>&nbsp;</o:p></p>

<div>

<p class=MsoNormal style='margin-left:36.0pt'>On 9 June 2010 11:30, Julian
Tenney &lt;<a href="mailto:Julian.Tenney@nottingham.ac.uk">Julian.Tenney@nottingham.ac.uk</a>&gt;
wrote:<o:p></o:p></p>

<div>

<div>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
margin-left:36.0pt'><span style='font-size:11.0pt;color:#1F497D'>When
you&#8217;re manipulating xml, I always do:</span><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
margin-left:36.0pt'><span style='font-size:11.0pt;color:#1F497D'>&nbsp;</span><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
margin-left:36.0pt'><span style='font-size:11.0pt;color:#1F497D'>If (icon.built
!= true){</span><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
margin-left:36.0pt'><span style='font-size:11.0pt;color:#1F497D'>&nbsp;
//manipulate the xml</span><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
margin-left:36.0pt'><span style='font-size:11.0pt;color:#1F497D'>&nbsp;
icon.built = true;</span><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
margin-left:36.0pt'><span style='font-size:11.0pt;color:#1F497D'>}</span><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
margin-left:36.0pt'><span style='font-size:11.0pt;color:#1F497D'>&nbsp;</span><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
margin-left:36.0pt'><span style='font-size:11.0pt;color:#1F497D'>Then it will
only happen once, and bult = true is set on the underlying XML node itself. Is
that it?</span><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
margin-left:36.0pt'><span style='font-size:11.0pt;color:#1F497D'>&nbsp;</span><o:p></o:p></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
margin-left:36.0pt'><span style='font-size:11.0pt;color:#1F497D'>&nbsp;</span><o:p></o:p></p>

<div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm'>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
margin-left:72.0pt'><b><span lang=EN-US style='font-size:10.0pt'>From:</span></b><span
lang=EN-US style='font-size:10.0pt'> <a
href="mailto:xerte-bounces@lists.nottingham.ac.uk" target="_blank">xerte-bounces@lists.nottingham.ac.uk</a>
[mailto:<a href="mailto:xerte-bounces@lists.nottingham.ac.uk" target="_blank">xerte-bounces@lists.nottingham.ac.uk</a>]
<b>On Behalf Of </b>Kemp Johnathan<br>
<b>Sent:</b> 09 June 2010 10:08<br>
<b>To:</b> Xerte discussion list<br>
<b>Subject:</b> [Xerte] xerte 2.n - Help needed to remove and then
re-duplicateicons</span><o:p></o:p></p>

</div>

<div>

<div>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
margin-left:72.0pt'>&nbsp;<o:p></o:p></p>

<div>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
margin-left:72.0pt'>I am working on a new page wizard that is based on the quiz
page.<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
margin-left:72.0pt'>&nbsp;<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
margin-left:72.0pt'>As part of its functioning it presents the user with an
option screen.<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
margin-left:72.0pt'>&nbsp;<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
margin-left:72.0pt'>The selections the user makes will decide how many
&quot;questions&quot; are presented to the user.<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
margin-left:72.0pt'>&nbsp;<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
margin-left:72.0pt'>The problem is that whilst I can get the page to run once,
if the user then clicks on the restart button, or returns to the page at a
later time, the page will not run correctly a second time as I am not able to
successfully remove and re-duplicate the &quot;proQuestion&quot; that is the
master for all the questions that are created at run time.<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
margin-left:72.0pt'>&nbsp;<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
margin-left:72.0pt'>Can anyone see what I am doing wrong, or suggest the
correct way to achieve this?<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
margin-left:72.0pt'>&nbsp;<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
margin-left:72.0pt'>I have attached a sample project which includes both a quiz
page that attempts to remove and re-duplicate the questions each time the page
is returned to or the Restart button is clicked. If I can get this to work I
should be able to get the same process to work in my new page.<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
margin-left:72.0pt'>&nbsp;<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
margin-left:72.0pt'>The sample project also includes an example of my new page
so that you can see what I am trying to achieve.<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
margin-left:72.0pt'>&nbsp;<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
margin-left:72.0pt'>The idea of the new page is to support music practice where
for example the end result may be to play a number of different scales with
both hands with variety of expression and style. Initially practice may be to
learn the scales playing only the left or right hand, and then later add
playing hands together, then later add variations of style and expression.
Selection of an easy level only offers for practice single handed scales.
Harder levels then introduce double handed play, variation in style and
expression.<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
margin-left:72.0pt'>&nbsp;<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
margin-left:72.0pt'>In both example pages it is the &quot;make pages&quot;
script icon that needs attention. The quiz page gives you some idea of what I
have tried so far.<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
margin-left:72.0pt'>&nbsp;<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
margin-left:72.0pt'>Any help would be most appreciated.<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
margin-left:72.0pt'>&nbsp;<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
margin-left:72.0pt'>Kind regards<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
margin-left:72.0pt'>&nbsp;<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
margin-left:72.0pt'>Johnathan<o:p></o:p></p>

</div>

</div>

</div>

</div>

</div>

<p class=MsoNormal style='mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:36.0pt'><br>
_______________________________________________<br>
Xerte mailing list<br>
<a href="mailto:Xerte@lists.nottingham.ac.uk">Xerte@lists.nottingham.ac.uk</a><br>
<a href="http://lists.nottingham.ac.uk/mailman/listinfo/xerte" target="_blank">http://lists.nottingham.ac.uk/mailman/listinfo/xerte</a><o:p></o:p></p>

</div>

<p class=MsoNormal style='margin-left:36.0pt'><o:p>&nbsp;</o:p></p>

</div>

</body>

</html>