Weitere ähnliche Inhalte Ähnlich wie NeXTPLAN: Enterprise software that rocks! (20) Kürzlich hochgeladen (20) NeXTPLAN: Enterprise software that rocks!1. NeXTPLAN*
Enterprise software that rocks!
with Seaside & Smalltalk
Johan Brichau - johan@inceptive.be
Monday 13 September 2010
2. NeXTPLAN is...
• A collaborative resource planning tool for
event organizers of all sizes.
• Developed for and with major player of
Belgian cultural scene (Vooruit, Gent).
• Features: Event planning, resource planning
& management, contact management, retro
planning, billing, reporting.
Monday 13 September 2010
5. In this talk....
• Smalltalk and Seaside are an impressive
platform to create highly dynamic web
applications that blur the traditional distinction
with desktop applications
• Some details:
• Local AJAX updates
• OODBs
• SVG + AJAX in Seaside
• Testing, porting to Gemstone
Monday 13 September 2010
6. Demo 1
• [demo to show component interactions in
calendar: grouped events & bubbles,
changing names, decoration]
Monday 13 September 2010
10. Ajax Updates Architecture
• Every operation eventually invokes the
update rendering
• Update rendering
• Component re-rendering
• Ajax-jQuery replace operation
Monday 13 September 2010
13. Global Ajax Update
scriptToUpdatebodyOn: html
^ (html jQuery: #cells)
load: [:r | self renderCellsOn: r]
+ Easy and crisp
+ Universally applicable
- Re-renders too much (too long!)
- Wastes in-place editing advantage
- Most of the time updates are local
Monday 13 September 2010
18. Local updates
Updates of other users (via database changes)!
Monday 13 September 2010
19. Pitfalls
• Instance variable values
• Capture concurrent changes to calendar
• Client side behavior (Javascript)
• Invoke again or not?
• For example:
• Drag & drop of cells
• Context menu on cells
• Dynamic calendar extension on page scroll
Monday 13 September 2010
20. Seaside Design Pattern?
UpdateableComponent
htmlId
renderContentOn: Complete render
renderInternalOn: Internal render
needsRefresh Wants to render?
scriptToUpdateOn: Script to render
Monday 13 September 2010
21. Local updates
CalendarComponent>>updateScriptOn: canvas
^ canvas jQuery ajax script: [:s |
self cells do: [:c|
c needsRefresh ifTrue:[
s << (c updateScriptOn: s)]]]
Cell>>updateScriptOn: canvas
^(canvas jQuery id: self htmlId)
load:[:r| self renderInternalOn: r]
Monday 13 September 2010
22. Local updates
CalendarComponent>>updateScriptOn: canvas
^ canvas jQuery ajax script: [:s |
self childrendo: [:c|
cells
c needsRefresh ifTrue:[
s << (c updateScriptOn: s)]]]
Cell>>updateScriptOn: canvas
^(canvas jQuery id: self htmlId)
load:[:r| self renderInternalOn: r]
Monday 13 September 2010
23. Local updates
CalendarComponent>>updateScriptOn: canvas
^ canvas jQuery ajax script: [:s |
self childrendo: [:c|
cells
c needsRefresh ifTrue:[
s << (c updateScriptOn: s)]]]
Cell>>updateScriptOn: canvas
^(canvas jQuery id: self htmlId)
load:[:r| self renderInternalOn: r]
replaceWith: renderContentOn:
Monday 13 September 2010
24. Local updates
• Own session changes
• True object-based change propagation
• Concurrent session changes
• Manual handling
Monday 13 September 2010
25. SVG in Seaside
• SeasideDynamicSVG package
• SVG canvas & brushes
• SVG + jQuery
• SVG + AJAX
• Dynamic load of svg content
• Problem: Painterʼs algorithm for "z-index"
• Solution: svgLoad
Monday 13 September 2010
26. Demo 2
• [show Tree view animations driven by Ajax
updates]
Monday 13 September 2010
27. JQuery svgLoad
<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head><title>NextPlan Structure Editor 0.24</title><meta http-equiv="Content-Type" content="text/html;charset=utf-8"/><meta http-equiv="Content-Script-Type" content="text/javascript"/><link rel="stylesheet" type="text/css" href="/files/WADevelopmentFiles/development.css"/><link rel="stylesheet stylesheet" type="text/css" href="./stylesheets/main.css"/><link rel="stylesheet stylesheet"
type="text/css" href="./stylesheets/calendar.css"/><script type="text/javascript" src="./javascripts/jQuery.js"></script><script type="text/javascript" src="./javascripts/jQueryUi.js"></script><script type="text/javascript" src="./javascripts/underscore.js"></script><script type="text/javascript" src="./javascripts/calendar-scripts.js"></script><script type="text/javascript" src="./javascripts/jquery.viewportforframe.js"></script><script type="text/javascript" src="./
javascripts/jquery.tablesorter.bugfixed.js"></script><script type="text/javascript" src="./javascripts/resizable-tables.js"></script><script type="text/javascript" src="./javascripts/jquery.rightClick.js"></script><script type="text/javascript" src="./javascripts/resourcefinder.js"></script><script type="text/javascript" src="./javascripts/jquery.jeditable.js"></script><script type="text/javascript" src="./javascripts/jquery.jeditable.masked.js"></script><script
type="text/javascript" src="./javascripts/jquery.maskedinput-1.2.2.min.js"></script><link rel="stylesheet stylesheet" type="text/css" href="./stylesheets/se.css"/><script type="text/javascript" src="/files/JQWidgetBoxDevelopmentLibrary/mbMenusvgPatched.js"></script><script type="text/javascript" src="/files/JQWidgetBoxDevelopmentLibrary/jqueryhoverintent.js"></script><script type="text/javascript" src="./javascripts/keynavigation.js"></script><script type="text/
javascript" src="./javascripts/textselection.js"></script><script type="text/javascript" src="./javascripts/jquery.svg.js"></script><script type="text/javascript" src="./javascripts/jquery.svgdom.js"></script><script type="text/javascript" src="./javascripts/jquery.svganim.js"></script><script type="text/javascript" src="./javascripts/jquery.svgpatch.js"></script><script type="text/javascript" src="./javascripts/se-scripts.js"></script><script type="text/javascript"
src="./javascripts/modernizr-1.1.min.js"></script><script type="text/javascript" src="./javascripts/np-common.js"></script><script type="text/javascript" src="./javascripts/modernizr-1.1.min.js"></script><script type="text/javascript" src="/files/JQWidgetBoxDevelopmentLibrary/jeditable.js"></script><script type="text/javascript" src="/files/JQWidgetBoxDeploymentLibrary/jquerymetadata.js"></script><script type="text/javascript" src="./javascripts/modernizr-1.1.min.js"></
script><script type="text/javascript" src="./javascripts/modernizr-1.1.min.js"></script><script type="text/javascript" src="./javascripts/modernizr-1.1.min.js"></script></head><body id="calendar-tab" oncontextmenu="return false;" onload="onLoad()"><div id="branding"><h1><a title="Go to the homepage" href="/">NextPlan</a></h1><ul><li id="skip-to-main"><a href="#nav-main">Skip to main navigation</a></li><li id="skip-to-tools"><a href="#nav-tools">Skip to tools</a></li><li
id="skip-to-user"><a href="#nav-user">Skip to user panel</a></li></ul></div><div id="treeeditor" style="position:relative;margin:0 auto;width:100%;height:100%;min-height:100%;"><div id="menucontainer"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="100px" height="80px"><g id="menu_background"><path d="M86,29.5c0,6.627-5.373,12-12,12H22c-6.627,0-12-5.373-12-12v-16c0-6.627,5.373-12,12-12h52c6.627,0,12,5.373,12,12V29.5z"></path></
g><g id="clock_icon" class="active" onclick="$.ajax({"dataType":"script","url":"/NextPlan","data":["_s=CY_Wx_-A8j-Q3hcq","_k=RPZesCNB2JeNsKlE","7"].join("&")})" transform="translate(-49,-5)"><rect x="66" y="11.5" style="opacity:0" width="27" height="27"></rect><path d="M79.5,12.5C72.597,12.5,67,18.097,67,25s5.597,12.5,12.5,12.5S92,31.903,92,25S86.403,12.5,79.5,12.5z
M79.5,34.5c-5.246,0-9.5-4.255-9.5-9.5c0-5.246,4.254-9.5,9.5-9.5c5.245,0,9.5,4.254,9.5,9.5C89,30.245,84.745,34.5,79.5,34.5z"></path><path d="M84.801,27.404c0.521,0.365,0.561,1.211,0.085,1.891l0,0c-0.476,0.678-1.284,0.932-1.806,0.566l-4.662-3.265c-0.522-0.366-0.561-1.212-0.086-1.891l0,0c0.477-0.679,1.285-0.933,1.806-0.567L84.801,27.404z"></path><path
d="M81,25.346c0,0.637-0.672,1.154-1.5,1.154l0,0c-0.828,0-1.5-0.518-1.5-1.154v-6.691c0-0.638,0.672-1.154,1.5-1.154l0,0c0.828,0,1.5,0.517,1.5,1.154V25.346z"></path></g><g id="tree_icon" onclick="$.ajax({"dataType":"script","url":"/NextPlan","data":["_s=CY_Wx_-A8j-Q3hcq","_k=RPZesCNB2JeNsKlE","8"].join("&")})" transform="translate(50,7)"><rect x="0" y="-3.5" style="opacity:0"
width="27" height="27"></rect><rect x="6" y="21.5" width="9" height="1"></rect><rect x="6" y="14.5" width="9" height="1"></rect><rect x="6" y="7.5" width="9" height="1"></rect><rect x="6" y="4.5" width="1" height="20"></rect><path d="M15,19.5v5h11v-5"></path><path d="M15,12.5v5h11v-5"></path><path d="M15,5.5v5h11v-5"></path><path d="M1,-0.5v5h11v-5"></path></g><g id="draft" onclick="$.ajax({"dataType":"script","url":"/
NextPlan","data":["_s=CY_Wx_-A8j-Q3hcq","_k=RPZesCNB2JeNsKlE","9"].join("&")})" transform="translate(25,60)"><path d="M38,6c0,3.313-2.485,6-5.55,6h-25.9C3.485,12,1,9.313,1,6l0,0c0-3.313,2.485-6,5.55-6h25.9C35.515,0,38,2.687,38,6L38,6z"></path><text transform="translate(6,8.8555)">DRAFT</text></g><g id="undo" onclick="$.ajax({"dataType":"script","url":"/
NextPlan","data":["_s=CY_Wx_-A8j-Q3hcq","_k=RPZesCNB2JeNsKlE","10"].join("&")})" transform="translate(10,45)"><path d="M38,6c0,3.313-2.485,6-5.55,6h-25.9C3.485,12,1,9.313,1,6l0,0c0-3.313,2.485-6,5.55-6h25.9C35.515,0,38,2.687,38,6L38,6z"></path><text transform="translate(8,8.8555)">UNDO</text></g><g id="redo" onclick="$.ajax({"dataType":"script","url":"/
NextPlan","data":["_s=CY_Wx_-A8j-Q3hcq","_k=RPZesCNB2JeNsKlE","11"].join("&")})" transform="translate(50,45)"><path d="M38,6c0,3.313-2.485,6-5.55,6h-25.9C3.485,12,1,9.313,1,6l0,0c0-3.313,2.485-6,5.55-6h25.9C35.515,0,38,2.687,38,6L38,6z"></path><text transform="translate(8,8.8555)">REDO</text></g></svg></div><div id="svgcontainer" class="svgcontainer" cMenu="canvasMenu"
permissions="["addEvent","addResource"]"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1200px" height="642px"><g id="lines" xmlns="http://www.w3.org/2000/svg"><line id="lineNPCompositeEvent173-NPEvent144" x1="183" y1="313" x2="401" y2="54" style="stroke-width:2" class="SUIDdatetimenode1line NPResourceInstance85line SUIDnodelist6line SUIDresourcegroupnode2line SUIDresourcedetailnode3line
SUIDresourcegroupnode4line SUIDresourcedetailnode5line NPCompositeEvent173line NPEvent144line nodeline eventline eventline" xmlns="http://www.w3.org/2000/svg"></line><line id="lineNPCompositeEvent173-NPEvent164" x1="183" y1="313" x2="401" y2="213" style="stroke-width:2" class="NPCompositeEvent173line NPEvent164line nodeline eventline eventline" xmlns="http://www.w3.org/2000/svg"></line><line id="lineNPCompositeEvent173-NPEvent171" x1="183" y1="313" x2="401" y2="409"
style="stroke-width:2" class="NPCompositeEvent173line NPEvent171line nodeline eventline eventline" xmlns="http://www.w3.org/2000/svg"></line><line id="lineNPEvent144-SUIDdatetimenode1" x1="529" y1="54" x2="651" y2="54" style="stroke-width:2" class="permanentselected NPCompositeEvent173line NPEvent144line SUIDdatetimenode1line nodeline eventline datetimenodeline" xmlns="http://www.w3.org/2000/svg"></line><g id="lineNPEvent144-NPResourceInstance85"
class="permanentselected NPCompositeEvent173line NPEvent144line NPResourceInstance85line nodeline eventline locationnodeline" xmlns="http://www.w3.org/2000/svg"><line id="lineNPEvent144-NPResourceInstance85-hor" x1="621" y1="91" x2="651" y2="91" style="stroke-width:2" xmlns="http://www.w3.org/2000/svg"></line><line id="lineNPEvent144-NPResourceInstance85-vert" x1="621" y1="54" x2="621" y2="91" style="stroke-width:2" xmlns="http://www.w3.org/2000/svg"></line></g><g
id="lineNPEvent144-SUIDnodelist6" class="permanentselected NPCompositeEvent173line SUIDresourcegroupnode2line SUIDresourcedetailnode3line SUIDresourcegroupnode4line SUIDresourcedetailnode5line NPEvent144line SUIDnodelist6line nodeline eventline nodelistline" xmlns="http://www.w3.org/2000/svg"><line id="lineNPEvent144-SUIDnodelist6-hor" x1="621" y1="128" x2="646" y2="128" style="stroke-width:2" xmlns="http://www.w3.org/2000/svg"></line><line id="lineNPEvent144-
SUIDnodelist6-vert" x1="621" y1="54" x2="621" y2="128" style="stroke-width:2" xmlns="http://www.w3.org/2000/svg"></line></g><line id="lineSUIDresourcegroupnode2-SUIDresourcedetailnode3" x1="779" y1="128" x2="809" y2="128" style="stroke-width:2" class="permanentselected SUIDnodelist6line NPEvent144line NPCompositeEvent173line SUIDresourcegroupnode2line SUIDresourcedetailnode3line nodeline resourcegroupnodeline resourcedetailnodeline" xmlns="http://www.w3.org/2000/svg"></
line><line id="lineSUIDresourcegroupnode4-SUIDresourcedetailnode5" x1="779" y1="157" x2="809" y2="157" style="stroke-width:2" class="permanentselected SUIDnodelist6line NPEvent144line NPCompositeEvent173line SUIDresourcegroupnode4line SUIDresourcedetailnode5line nodeline resourcegroupnodeline resourcedetailnodeline" xmlns="http://www.w3.org/2000/svg"></line></g><g id="nodes" xmlns="http://www.w3.org/2000/svg"><g id="NPCompositeEvent173" cMenu="eventMenu"
permissions="["readEvent","writeEvent","deleteEvent","readResourceMgmt","writeResourceMgmt","deleteResourceMgmt"]" class="NPEvent144 SUIDdatetimenode1 NPResourceInstance85 SUIDnodelist6 SUIDresourcegroupnode2 SUIDresourcedetailnode3 SUIDresourcegroupnode4 SUIDresourcedetailnode5 NPEvent164 NPEvent171 treenode" xmlns="http://www.w3.org/2000/svg"><path stroke="none" style="stroke-width:2;"
d="M188,314c0,6.627-5.373,12-12,12H62c-6.627,0-12-5.373-12-12v-1
! ! c0-6.627,5.373-12,12-12h114c6.627,0,12,5.373,12,12V314z" xmlns="http://www.w3.org/2000/svg"></path><foreignObject width="111" height="18" transform="translate(62,305.5)" xmlns="http://www.w3.org/2000/svg"><pre id="NPCompositeEvent173-text" xmlns="http://www.w3.org/1999/xhtml" title="Othello">Othello</pre></foreignObject><a class="conflict" onmouseover="var thisbb = getAbsoluteBoundingBox($
('#NPCompositeEvent173')[0]);$('.conflict-summary').html("<strong>Conflicts:</strong><span class='conflict-item'>The schedule of Othello2 exceeds the day boundaries</span>
<span class='conflict-item'>Stekkerdoos in event Othello2 is already used by event(s) Othello3.</span>
<span class='conflict-item'>2KW Fresnell in event Othello2 is already used by event(s) Othello3.</span>
<span class='conflict-item'>Stekkerdoos in event Othello3 is already used by event(s) Othello2.</span>
<span class='conflict-item'>2KW Fresnell in event Othello3 is already used by event(s) Othello2.</span><span class='tip'></span>").css('top',thisbb.y-40).css('left',thisbb.x+thisbb.width+20).show()" onmouseout="$('.conflict-summary').hide()" xlink:href="javascript:void(0)"><g class="conflict-alert" style="display:block" id="NPCompositeEvent173-alert" transform="translate(178,293)" xmlns="http://www.w3.org/2000/svg"><polygon
style="fill:#FFF000" points="9.041,2.756 11.37,0.063 12.041,3.56 15.405,2.392 14.237,5.756 17.734,6.427 15.041,8.756 17.734,11.085 14.237,11.756 15.405,15.121 12.041,13.953 11.37,17.45 9.041,14.756 6.711,17.45 6.04,13.953 2.676,15.121 3.844,11.756 0.347,11.085 3.04,8.756 0.347,6.427 3.844,5.756 2.676,2.392 6.04,3.56 6.711,0.063" xmlns="http://www.w3.org/2000/svg"></polygon><rect x="8.347" y="4.756" width="2.001" height="6" xmlns="http://www.w3.org/2000/svg"></rect><rect
x="8.347" y="11.756" width="2.001" height="2" xmlns="http://www.w3.org/2000/svg"></rect></g></a></g><g id="NPEvent144" cMenu="eventMenu" permissions="["readEvent","writeEvent","deleteEvent","readResourceMgmt","writeResourceMgmt","deleteResourceMgmt"]" class="NPCompositeEvent173 SUIDdatetimenode1 NPResourceInstance85 SUIDnodelist6 SUIDresourcegroupnode2 SUIDresourcedetailnode3 SUIDresourcegroupnode4
z-index 1
SUIDresourcedetailnode5 NPEvent144 SUIDdatetimenode1 NPResourceInstance85 SUIDnodelist6 SUIDresourcegroupnode2 SUIDresourcedetailnode3 SUIDresourcegroupnode4 SUIDresourcedetailnode5 NPEvent164 NPEvent171 treenode" xmlns="http://www.w3.org/2000/svg"><path stroke="none" style="stroke-width:2;" d="M534,55c0,6.627-5.373,12-12,12H408c-6.627,0-12-5.373-12-12v-1
! ! c0-6.627,5.373-12,12-12h114c6.627,0,12,5.373,12,12V55z" xmlns="http://www.w3.org/2000/svg"></path><foreignObject width="111" height="18" transform="translate(408,46.5)" xmlns="http://www.w3.org/2000/svg"><pre id="NPEvent144-text" xmlns="http://www.w3.org/1999/xhtml" title="Othello 1">Othello 1</pre></foreignObject></g><g id="SUIDdatetimenode1"
permissions="["readEvent","writeEvent","deleteEvent","writeResourceMgmt","deleteResourceMgmt"]" cMenu="resourceMenu" class="datetimenode treenode abstractresourcenode" xmlns="http://www.w3.org/2000/svg"><path stroke="none" style="stroke-width:2;" d="M784,55c0,6.627-5.373,12-12,12H658c-6.627,0-12-5.373-12-12v-1
! ! c0-6.627,5.373-12,12-12h114c6.627,0,12,5.373,12,12V55z" xmlns="http://www.w3.org/2000/svg"></path><foreignObject width="111" height="18" transform="translate(658,46.5)" xmlns="http://www.w3.org/2000/svg"><pre id="SUIDdatetimenode1-text" xmlns="http://www.w3.org/1999/xhtml" title="12-9-2010">12-9-2010</pre></foreignObject></g><g id="NPResourceInstance85"
permissions="["readEvent","writeEvent","deleteEvent","readResourceMgmt"]" cMenu="resourceMenu" class="locationnode treenode abstractresourcenode" xmlns="http://www.w3.org/2000/svg"><path stroke="none" style="stroke-width:2;" d="M784,92c0,6.627-5.373,12-12,12H658c-6.627,0-12-5.373-12-12v-1
! ! c0-6.627,5.373-12,12-12h114c6.627,0,12,5.373,12,12V92z" xmlns="http://www.w3.org/2000/svg"></path><foreignObject width="111" height="18" transform="translate(658,83.5)" xmlns="http://www.w3.org/2000/svg"><pre id="NPResourceInstance85-text" xmlns="http://www.w3.org/1999/xhtml" title="Theaterzaal">Theaterzaal</pre></foreignObject><g style="display:none" id="NPResourceInstance85-arrow" xmlns="http://www.w3.org/
2000/svg"><g class="arrow" xmlns="http://www.w3.org/2000/svg"><path transform="translate(764,87)" d="M 10 0 L 5 8 L 0 0 Z" xmlns="http://www.w3.org/2000/svg"></path></g></g></g><g id="SUIDresourcegroupnode2" permissions="[]" cMenu="resourceMenu" class="resourcegroupnode treenode abstractresourcenode" xmlns="http://www.w3.org/2000/svg"><path stroke="none" style="stroke-width:2;" d="M784,129c0,6.627-5.373,12-12,12H658c-6.627,0-12-5.373-12-12v-1
! ! c0-6.627,5.373-12,12-12h114c6.627,0,12,5.373,12,12V129z" xmlns="http://www.w3.org/2000/svg"></path><foreignObject width="111" height="18" transform="translate(658,120.5)" xmlns="http://www.w3.org/2000/svg"><pre id="SUIDresourcegroupnode2-text" xmlns="http://www.w3.org/1999/xhtml" title="Theatertechniek">Theatertechniek</pre></foreignObject></g><g id="SUIDresourcegroupnode4" permissions="[]" cMenu="resourceMenu"
class="resourcegroupnode treenode abstractresourcenode" xmlns="http://www.w3.org/2000/svg"><path stroke="none" style="stroke-width:2;" d="M784,158c0,6.627-5.373,12-12,12H658c-6.627,0-12-5.373-12-12v-1
! ! c0-6.627,5.373-12,12-12h114c6.627,0,12,5.373,12,12V158z" xmlns="http://www.w3.org/2000/svg"></path><foreignObject width="111" height="18" transform="translate(658,149.5)" xmlns="http://www.w3.org/2000/svg"><pre id="SUIDresourcegroupnode4-text" xmlns="http://www.w3.org/1999/xhtml" title="Facility">Facility</pre></foreignObject></g><g id="SUIDresourcedetailnode3" class="resourcedetailnode treenode
abstractresourcenode" xmlns="http://www.w3.org/2000/svg"><path stroke="none" style="stroke-width:2;" d="M854,128c0,6.627-5.373,8-12,8H816c-6.627,0-12-1.373-12-8l0,0
! ! ! c0-6.627,5.373-8,12-8h26C848.627,120,854,121.373,854,128L854,128z" xmlns="http://www.w3.org/2000/svg"></path><text style="font-family: 'HelveticaNeue-Bold','Helvetica Neue',Arial,sans-serif; font-size: 9px; font-weight: bold;" transform="translate(816,130.5)" xmlns="http://www.w3.org/2000/svg">details</text><a class="incomplete" onmouseover="var thisbb = getAbsoluteBoundingBox($
('#SUIDresourcedetailnode3')[0]);$('.incomplete-summary').html("<strong>Incomplete:</strong><span class='incomplete-item'>placeholder Engineer</span><span class='tip'></span>").css('top',thisbb.y-40).css('left',thisbb.x+thisbb.width+20).show()" onmouseout="$('.incomplete-summary').hide()" xlink:href="javascript:void(0)"><g class="conflict-incomplete" transform="translate(844,109)" xmlns="http://www.w3.org/2000/svg"><polygon
style="fill:#FFF000" points="8.999,2.787 11.41,0 12.104,3.621 15.589,2.411 14.38,5.893 18,6.59 15.211,8.999 18,11.41 14.38,12.104 15.589,15.589 12.104,14.38 11.41,18 8.999,15.211 6.588,18 5.893,14.38 2.411,15.589 3.621,12.104 0,11.41 2.787,8.999 0,6.59 3.621,5.893 2.411,2.411 5.893,3.621 6.588,0" xmlns="http://www.w3.org/2000/svg"></polygon><rect x="8.25" y="11.6" width="1.8" height="1.8" xmlns="http://www.w3.org/2000/svg"></rect><path
d="M6.425,6.318c0.144-0.347,0.341-0.649,0.599-0.905C7.279,5.158,7.588,4.959,7.95,4.815C8.312,4.672,8.715,4.6,9.163,4.6c0.578,0,1.06,0.076,1.446,0.227c0.384,0.15,0.692,0.339,0.934,0.562c0.232,0.226,0.402,0.466,0.505,0.727C12.15,6.376,12.2,6.617,12.2,6.843c0,0.371-0.052,0.676-0.152,0.916c-0.103,0.24-0.229,0.445-0.379,0.617c-0.147,0.17-0.315,0.314-0.5,0.434c-0.185,0.121-0.354,0.24-0.519,0.361c-0.164,0.119-0.309,0.257-0.434,0.412c-0.127,0.153-0.208,0.347-0.238,0.578V10.6H8.
333v-0.521c0.025-0.332,0.092-0.611,0.202-0.837c0.109-0.224,0.238-0.415,0.383-0.573c0.148-0.158,0.301-0.295,0.465-0.412C9.545,8.142,9.693,8.025,9.834,7.91c0.139-0.117,0.25-0.245,0.334-0.386c0.086-0.139,0.124-0.312,0.116-0.521c0-0.355-0.093-0.619-0.274-0.789S9.573,5.958,9.249,5.958c-0.22,0-0.409,0.041-0.567,0.122c-0.158,0.082-0.29,0.19-0.391,0.326C8.189,6.541,8.114,6.699,8.066,6.881c-0.05,0.183-0.073,0.378-0.073,0.587H6.2C6.208,7.05,6.283,6.667,6.425,6.318z"
xmlns="http://www.w3.org/2000/svg"></path></g></a></g><g id="SUIDresourcedetailnode5" class="resourcedetailnode treenode abstractresourcenode" xmlns="http://www.w3.org/2000/svg"><path stroke="none" style="stroke-width:2;" d="M854,157c0,6.627-5.373,8-12,8H816c-6.627,0-12-1.373-12-8l0,0
! ! ! c0-6.627,5.373-8,12-8h26C848.627,149,854,150.373,854,157L854,157z" xmlns="http://www.w3.org/2000/svg"></path><text style="font-family: 'HelveticaNeue-Bold','Helvetica Neue',Arial,sans-serif; font-size: 9px; font-weight: bold;" transform="translate(816,159.5)" xmlns="http://www.w3.org/2000/svg">details</text></g><g id="NPEvent164" cMenu="eventMenu"
permissions="["readEvent","writeEvent","deleteEvent","readResourceMgmt","writeResourceMgmt","deleteResourceMgmt"]" class="NPCompositeEvent173 NPEvent144 SUIDdatetimenode1 NPResourceInstance85 SUIDnodelist6 SUIDresourcegroupnode2 SUIDresourcedetailnode3 SUIDresourcegroupnode4 SUIDresourcedetailnode5 NPEvent164 NPEvent171 treenode" xmlns="http://www.w3.org/2000/svg"><path stroke="none" style="stroke-width:2;"
d="M534,214c0,6.627-5.373,12-12,12H408c-6.627,0-12-5.373-12-12v-1
! ! c0-6.627,5.373-12,12-12h114c6.627,0,12,5.373,12,12V214z" xmlns="http://www.w3.org/2000/svg"></path><foreignObject width="111" height="18" transform="translate(408,205.5)" xmlns="http://www.w3.org/2000/svg"><pre id="NPEvent164-text" xmlns="http://www.w3.org/1999/xhtml" title="Othello2">Othello2</pre></foreignObject><a class="conflict" onmouseover="var thisbb = getAbsoluteBoundingBox($('#NPEvent164')[0]);$
('.conflict-summary').html("<strong>Conflicts:</strong><span class='conflict-item'>The schedule of Othello2 exceeds the day boundaries</span>
<span class='conflict-item'>Stekkerdoos in event Othello2 is already used by event(s) Othello3.</span>
<span class='conflict-item'>2KW Fresnell in event Othello2 is already used by event(s) Othello3.</span><span class='tip'></span>").css('top',thisbb.y-40).css('left',thisbb.x+thisbb.width+20).show()" onmouseout="$('.conflict-summary').hide()" xlink:href="javascript:void(0)"><g class="conflict-alert" style="display:block" id="NPEvent164-alert" transform="translate(524,193)" xmlns="http://www.w3.org/2000/svg"><polygon style="fill:#FFF000"
points="9.041,2.756 11.37,0.063 12.041,3.56 15.405,2.392 14.237,5.756 17.734,6.427 15.041,8.756 17.734,11.085 14.237,11.756 15.405,15.121 12.041,13.953 11.37,17.45 9.041,14.756 6.711,17.45 6.04,13.953 2.676,15.121 3.844,11.756 0.347,11.085 3.04,8.756 0.347,6.427 3.844,5.756 2.676,2.392 6.04,3.56 6.711,0.063" xmlns="http://www.w3.org/2000/svg"></polygon><rect x="8.347" y="4.756" width="2.001" height="6" xmlns="http://www.w3.org/2000/svg"></rect><rect x="8.347" y="11.756"
width="2.001" height="2" xmlns="http://www.w3.org/2000/svg"></rect></g></a></g><g id="NPEvent171" cMenu="eventMenu" permissions="["readEvent","writeEvent","deleteEvent","readResourceMgmt","writeResourceMgmt","deleteResourceMgmt"]" class="NPCompositeEvent173 NPEvent144 SUIDdatetimenode1 NPResourceInstance85 SUIDnodelist6 SUIDresourcegroupnode2 SUIDresourcedetailnode3 SUIDresourcegroupnode4
SUIDresourcedetailnode5 NPEvent164 NPEvent171 treenode" xmlns="http://www.w3.org/2000/svg"><path stroke="none" style="stroke-width:2;" d="M534,410c0,6.627-5.373,12-12,12H408c-6.627,0-12-5.373-12-12v-1
! ! c0-6.627,5.373-12,12-12h114c6.627,0,12,5.373,12,12V410z" xmlns="http://www.w3.org/2000/svg"></path><foreignObject width="111" height="18" transform="translate(408,401.5)" xmlns="http://www.w3.org/2000/svg"><pre id="NPEvent171-text" xmlns="http://www.w3.org/1999/xhtml" title="Othello3">Othello3</pre></foreignObject><a class="conflict" onmouseover="var thisbb = getAbsoluteBoundingBox($('#NPEvent171')[0]);$
('.conflict-summary').html("<strong>Conflicts:</strong><span class='conflict-item'>Stekkerdoos in event Othello3 is already used by event(s) Othello2.</span>
<span class='conflict-item'>2KW Fresnell in event Othello3 is already used by event(s) Othello2.</span><span class='tip'></span>").css('top',thisbb.y-40).css('left',thisbb.x+thisbb.width+20).show()" onmouseout="$('.conflict-summary').hide()" xlink:href="javascript:void(0)"><g class="conflict-alert" style="display:block" id="NPEvent171-alert" transform="translate(524,389)" xmlns="http://www.w3.org/2000/svg"><polygon style="fill:#FFF000"
points="9.041,2.756 11.37,0.063 12.041,3.56 15.405,2.392 14.237,5.756 17.734,6.427 15.041,8.756 17.734,11.085 14.237,11.756 15.405,15.121 12.041,13.953 11.37,17.45 9.041,14.756 6.711,17.45 6.04,13.953 2.676,15.121 3.844,11.756 0.347,11.085 3.04,8.756 0.347,6.427 3.844,5.756 2.676,2.392 6.04,3.56 6.711,0.063" xmlns="http://www.w3.org/2000/svg"></polygon><rect x="8.347" y="4.756" width="2.001" height="6" xmlns="http://www.w3.org/2000/svg"></rect><rect x="8.347" y="11.756"
width="2.001" height="2" xmlns="http://www.w3.org/2000/svg"></rect></g></a></g><g id="SUIDfetch7" xmlns="http://www.w3.org/2000/svg"><g class="fetch" transform="translate(416,0)" xmlns="http://www.w3.org/2000/svg"><path d="M86,7c0,3.866-2.484,7-5.551,7h-73.898c-3.066,0-5.551-3.134-5.551-7l0,0c0-3.866,2.484-7,5.551-7h73.898C83.516,0,86,4.834,86,7L86,7z" xmlns="http://www.w3.org/2000/svg"></path><text transform="translate(8,10)" xmlns="http://www.w3.org/2000/svg">FETCH
MORE</text><path class="datepicker" d="M76,11h1v-1h1v-1h-2V29z M68,3v8h7v-3h3v-5H68z M71,10h-2v-2h2V28z M71,7h-2v-2h2V25zM74,10h-2v-2h2V28z M74,7h-2v-2h2V25z M77,7h-2v-2h2V25z" xmlns="http://www.w3.org/2000/svg"></path></g></g><g id="SUIDdatetimelinenode8" class="datetimelinenode" xmlns="http://www.w3.org/2000/svg"><rect width="300" height="14" transform="translate(266,17)" xmlns="http://www.w3.org/2000/svg"></rect><text transform="translate(277,28)" xmlns="http://
www.w3.org/2000/svg">sun 12-9-2010</text></g><g id="SUIDdatetimelinenode9" class="datetimelinenode" xmlns="http://www.w3.org/2000/svg"><rect width="300" height="14" transform="translate(266,78)" xmlns="http://www.w3.org/2000/svg"></rect><text transform="translate(277,89)" xmlns="http://www.w3.org/2000/svg">mo 13-9-2010</text></g><g id="NPEvent187" cMenu="eventMenu"
permissions="["readEvent","writeEvent","deleteEvent","readResourceMgmt","writeResourceMgmt","deleteResourceMgmt"]" class="timelinenode" xmlns="http://www.w3.org/2000/svg"><path stroke="none" style="stroke-width:2;" d="M534,116c0,6.627-5.373,12-12,12H408c-6.627,0-12-5.373-12-12v-1
! ! c0-6.627,5.373-12,12-12h114c6.627,0,12,5.373,12,12V116z" xmlns="http://www.w3.org/2000/svg"></path><foreignObject width="111" height="18" transform="translate(408,107.5)" xmlns="http://www.w3.org/2000/svg"><pre id="NPEvent187-text" xmlns="http://www.w3.org/1999/xhtml" title="Macbeth 1">Macbeth 1</pre></foreignObject></g><g id="NPEvent217" cMenu="eventMenu"
permissions="["readEvent","writeEvent","deleteEvent","readResourceMgmt","writeResourceMgmt","deleteResourceMgmt"]" class="timelinenode" xmlns="http://www.w3.org/2000/svg"><path stroke="none" style="stroke-width:2;" d="M534,153c0,6.627-5.373,12-12,12H408c-6.627,0-12-5.373-12-12v-1
! ! c0-6.627,5.373-12,12-12h114c6.627,0,12,5.373,12,12V153z" xmlns="http://www.w3.org/2000/svg"></path><foreignObject width="111" height="18" transform="translate(408,144.5)" xmlns="http://www.w3.org/2000/svg"><pre id="NPEvent217-text" xmlns="http://www.w3.org/1999/xhtml" title="The Room 1">The Room 1</pre></foreignObject></g><g id="SUIDdatetimelinenode10" class="datetimelinenode" xmlns="http://www.w3.org/2000/
svg"><rect width="300" height="14" transform="translate(266,176)" xmlns="http://www.w3.org/2000/svg"></rect><text transform="translate(277,187)" xmlns="http://www.w3.org/2000/svg">tue 14-9-2010</text></g><g id="NPEvent233" cMenu="eventMenu" permissions="["readEvent","writeEvent","deleteEvent","readResourceMgmt","writeResourceMgmt","deleteResourceMgmt"]" class="timelinenode" xmlns="http://www.w3.org/2000/
svg"><path stroke="none" style="stroke-width:2;" d="M534,251c0,6.627-5.373,12-12,12H408c-6.627,0-12-5.373-12-12v-1
! ! c0-6.627,5.373-12,12-12h114c6.627,0,12,5.373,12,12V251z" xmlns="http://www.w3.org/2000/svg"></path><foreignObject width="111" height="18" transform="translate(408,242.5)" xmlns="http://www.w3.org/2000/svg"><pre id="NPEvent233-text" xmlns="http://www.w3.org/1999/xhtml" title="The Room 2">The Room 2</pre></foreignObject></g><g id="SUIDdatetimelinenode11" class="datetimelinenode" xmlns="http://www.w3.org/2000/
svg"><rect width="300" height="14" transform="translate(266,274)" xmlns="http://www.w3.org/2000/svg"></rect><text transform="translate(277,285)" xmlns="http://www.w3.org/2000/svg">wed 15-9-2010</text></g><g id="NPEvent197" cMenu="eventMenu" permissions="["readEvent","writeEvent","deleteEvent","readResourceMgmt","writeResourceMgmt","deleteResourceMgmt"]" class="timelinenode" xmlns="http://www.w3.org/2000/
svg"><path stroke="none" style="stroke-width:2;" d="M534,312c0,6.627-5.373,12-12,12H408c-6.627,0-12-5.373-12-12v-1
! ! c0-6.627,5.373-12,12-12h114c6.627,0,12,5.373,12,12V312z" xmlns="http://www.w3.org/2000/svg"></path><foreignObject width="111" height="18" transform="translate(408,303.5)" xmlns="http://www.w3.org/2000/svg"><pre id="NPEvent197-text" xmlns="http://www.w3.org/1999/xhtml" title="Hamlet 1">Hamlet 1</pre></foreignObject></g><g id="SUIDdatetimelinenode12" class="datetimelinenode" xmlns="http://www.w3.org/2000/
svg"><rect width="300" height="14" transform="translate(266,335)" xmlns="http://www.w3.org/2000/svg"></rect><text transform="translate(277,346)" xmlns="http://www.w3.org/2000/svg">thu 16-9-2010</text></g><g id="NPEvent138" cMenu="eventMenu" permissions="["readEvent","writeEvent","deleteEvent","readResourceMgmt","writeResourceMgmt","deleteResourceMgmt"]" class="timelinenode" xmlns="http://www.w3.org/2000/
svg"><path stroke="none" style="stroke-width:2;" d="M534,373c0,6.627-5.373,12-12,12H408c-6.627,0-12-5.373-12-12v-1
! ! c0-6.627,5.373-12,12-12h114c6.627,0,12,5.373,12,12V373z" xmlns="http://www.w3.org/2000/svg"></path><foreignObject width="111" height="18" transform="translate(408,364.5)" xmlns="http://www.w3.org/2000/svg"><pre id="NPEvent138-text" xmlns="http://www.w3.org/1999/xhtml" title="Ongedecideerd">Ongedecideerd</pre></foreignObject></g><g id="NPEvent191" cMenu="eventMenu"
permissions="["readEvent","writeEvent","deleteEvent","readResourceMgmt","writeResourceMgmt","deleteResourceMgmt"]" class="timelinenode" xmlns="http://www.w3.org/2000/svg"><path stroke="none" style="stroke-width:2;" d="M534,447c0,6.627-5.373,12-12,12H408c-6.627,0-12-5.373-12-12v-1
! ! c0-6.627,5.373-12,12-12h114c6.627,0,12,5.373,12,12V447z" xmlns="http://www.w3.org/2000/svg"></path><foreignObject width="111" height="18" transform="translate(408,438.5)" xmlns="http://www.w3.org/2000/svg"><pre id="NPEvent191-text" xmlns="http://www.w3.org/1999/xhtml" title="Macbeth 2">Macbeth 2</pre></foreignObject></g><g id="SUIDdatetimelinenode13" class="datetimelinenode" xmlns="http://www.w3.org/2000/
svg"><rect width="300" height="14" transform="translate(266,470)" xmlns="http://www.w3.org/2000/svg"></rect><text transform="translate(277,481)" xmlns="http://www.w3.org/2000/svg">fri 17-9-2010</text></g><g id="SUIDdatetimelinenode14" class="datetimelinenode" xmlns="http://www.w3.org/2000/svg"><rect width="300" height="14" transform="translate(266,494)" xmlns="http://www.w3.org/2000/svg"></rect><text transform="translate(277,505)" xmlns="http://www.w3.org/2000/svg">sat
18-9-2010</text></g><g id="SUIDdatetimelinenode15" class="datetimelinenode" xmlns="http://www.w3.org/2000/svg"><rect width="300" height="14" transform="translate(266,518)" xmlns="http://www.w3.org/2000/svg"></rect><text transform="translate(277,529)" xmlns="http://www.w3.org/2000/svg">sun 19-9-2010</text></g><g id="SUIDfetch16" xmlns="http://www.w3.org/2000/svg"><g class="fetch" transform="translate(416,542)" xmlns="http://www.w3.org/2000/svg"><path
d="M86,7c0,3.866-2.484,7-5.551,7h-73.898c-3.066,0-5.551-3.134-5.551-7l0,0c0-3.866,2.484-7,5.551-7h73.898C83.516,0,86,4.834,86,7L86,7z" xmlns="http://www.w3.org/2000/svg"></path><text transform="translate(8,10)" xmlns="http://www.w3.org/2000/svg">FETCH MORE</text><path class="datepicker" d="M76,11h1v-1h1v-1h-2V29z M68,3v8h7v-3h3v-5H68z M71,10h-2v-2h2V28z M71,7h-2v-2h2V25zM74,10h-2v-2h2V28z M74,7h-2v-2h2V25z M77,7h-2v-2h2V25z" xmlns="http://www.w3.org/2000/svg"></path></
g></g><g id="NPCompositeEvent201" class="node ancestornode" xmlns="http://www.w3.org/2000/svg"><path stroke="none" style="stroke-width:2;" d="M120,285c0,6.627-5.373,8-12,8H52c-6.627,0-12-1.373-12-8l0,0
! ! ! c0-6.627,5.373-8,12-8h56C114.627,277,120,278.373,120,285L120,285z" xmlns="http://www.w3.org/2000/svg"></path><text style="font-family: 'HelveticaNeue-Bold','Helvetica Neue',Arial,sans-serif; font-size: 9px; font-weight: bold;" transform="translate(52,287.5)" xmlns="http://www.w3.org/2000/svg">Shakespeare</text></g></g></svg></div><ul id="canvasMenu" style="display:none"><li><a
action="$.ajax({"dataType":"script","url":"/NextPlan","data":["_s=CY_Wx_-A8j-Q3hcq","_k=RPZesCNB2JeNsKlE","15"].join("&")})" permissions="addEvent">Add new event</a></li><li><a action="$.ajax({"dataType":"script","url":"/NextPlan","data":["_s=CY_Wx_-A8j-Q3hcq","_k=RPZesCNB2JeNsKlE","16"].join
("&")})" permissions="addEvent">Add new group</a></li><li><a action="$.ajax({"dataType":"script","url":"/NextPlan","data":["_s=CY_Wx_-A8j-Q3hcq","_k=RPZesCNB2JeNsKlE","17"].join("&")})" id="addresourcemenuitem" permissions="addResource">Add new resource</a></li><li><a isDisable="true" class="disabled pastemenuitem" action="$.ajax
({"dataType":"script","url":"/NextPlan","data":["_s=CY_Wx_-A8j-Q3hcq","_k=RPZesCNB2JeNsKlE","18"].join("&")})">Paste</a></li></ul><ul id="eventMenu" style="display:none"><li><a action="$.ajax({"dataType":"script","url":"/NextPlan","data":["_s=CY_Wx_-A8j-Q3hcq","_k=RPZesCNB2JeNsKlE","19"].join
("&")})" permissions="writeEvent">Rename</a></li><li><a action="$.ajax({"dataType":"script","url":"/NextPlan","data":["_s=CY_Wx_-A8j-Q3hcq","_k=RPZesCNB2JeNsKlE","20"].join("&")})" permissions="writeEvent">Ungroup</a></li><li><a menu="groupsmenu" onmouseover="setTimeout(function(){$(":input:visible").focus()},250)" permissions="writeEvent">Add to group</
a></li><li><a action="$.ajax({"dataType":"script","url":"/NextPlan","data":["_s=CY_Wx_-A8j-Q3hcq","_k=RPZesCNB2JeNsKlE","21"].join("&")})" permissions="deleteEvent">Delete</a></li><li><a action="$.ajax({"dataType":"script","url":"/NextPlan","data":["_s=CY_Wx_-A8j-Q3hcq","_k=RPZesCNB2JeNsKlE","
22"].join("&")})" permissions="readEvent">Copy</a></li><li><a isDisable="true" class="disabled pastemenuitem" action="$.ajax({"dataType":"script","url":"/NextPlan","data":["_s=CY_Wx_-A8j-Q3hcq","_k=RPZesCNB2JeNsKlE","23"].join("&")})">Paste</a></li><li><a action="$('#resourceFinder').show().css('visibility','visible');$("#dropbox").add($
("#finderlock")).show();$("#title").hide();finders['resourceFinder'].finderMode = 'finder';finders['resourceFinder'].allowDragging = true;$.ajax({"dataType":"script","url":"/NextPlan","data":["_s=CY_Wx_-A8j-Q3hcq","_k=RPZesCNB2JeNsKlE","24"].join("&")});$("#finderbasket").load("/NextPlan",["_s=CY_Wx_-A8j-
Q3hcq","_k=RPZesCNB2JeNsKlE","25"].join("&"),function(){tickResourcesInBasket()});displayInitialTable();$("#timelineHeaderInFinder").hide();$("#availabilityButton").show()" permissions="writeResourceMgmt">Add resources</a></li><li><a action="$('#resourceFinder').show().css('visibility','visible');$("#dropbox").add($("#finderlock")).hide();finders['resourceFinder']['finderMode'] =
'manager';finders['resourceFinder'].allowDragging = false;$.ajax({"dataType":"script","url":"/NextPlan","data":["_s=CY_Wx_-A8j-Q3hcq","_k=RPZesCNB2JeNsKlE","26"].join("&"),"complete":function(){$("#finderSearch").val("");finderQueryChanged('#finderSearch',finders['resourceFinder'],true);event.preventDefault();}})"
permissions="readResourceMgmt">List resources</a></li></ul><ul id="resourceMenu" style="display:none"><li><a action="$.ajax({"dataType":"script","url":"/NextPlan","data":["_s=CY_Wx_-A8j-Q3hcq","_k=RPZesCNB2JeNsKlE","27"].join("&"),"complete":function(){$("#resourceInspector").load("/NextPlan",["_s=CY_Wx_-A8j-
Q3hcq","_k=RPZesCNB2JeNsKlE","28"].join("&"),function(){$('#resourceInspector').css('top',$(window).scrollTop()+10).css('left',$(window).scrollLeft()+10).show().css('visibility','visible')})}})" permissions="readResourceMgmt">Info</a></li><li><a action="$('#resourceFinder').show().css('visibility','visible');$("#dropbox").add($("#finderlock")).show();$("#title").hide();finders
['resourceFinder'].finderMode = 'finder';finders['resourceFinder'].allowDragging = true;$.ajax({"dataType":"script","url":"/NextPlan","data":["_s=CY_Wx_-A8j-Q3hcq","_k=RPZesCNB2JeNsKlE","29"].join("&")});$("#finderbasket").load("/NextPlan",["_s=CY_Wx_-A8j-Q3hcq","_k=RPZesCNB2JeNsKlE","30"].join("&"),function()
{tickResourcesInBasket()});displayInitialTable();$("#timelineHeaderInFinder").hide();$("#availabilityButton").show()" permissions="writeResourceMgmt">Add resource</a></li><li><a menu="edit-submenu" permissions="writeResourceMgmt" id="edit-submenu">Edit</a></li><li><a action="$.ajax({"dataType":"script","url":"/NextPlan","data":["_s=CY_Wx_-A8j-Q3hcq","_k=RPZesCNB2JeNsKlE","
31"].join("&")})" permissions="writeResourceMgmt">Copy</a></li><li><a class="pastemenuitem disabled" isDisable="true" permissions="writeResourceMgmt" action="$.ajax({"dataType":"script","url":"/NextPlan","data":["_s=CY_Wx_-A8j-Q3hcq","_k=RPZesCNB2JeNsKlE","32"].join("&")})">Paste</a></li><li><a permissions="deleteResourceMgmt" action="$.getScript("/
NextPlan"+"?"+["_s=CY_Wx_-A8j-Q3hcq","_k=RPZesCNB2JeNsKlE","33"].join("&"))">Delete</a></li><li><a menu="" permissions="writeResourceMgmt" id="promote-submenu">Promote to</a></li><li><a menu="" permissions="writeResourceMgmt" id="degrade-submenu">Degrade to</a></li></ul><ul id="groupsmenu" style="display:none"><a rel="text"><form accept-charset="utf-8" method="post" action="/NextPlan?_s=CY_Wx_-A8j-
Q3hcq&_k=RPZesCNB2JeNsKlE"><input name="34" type="hidden" class="hidden"/><input onkeypress="if((window.event ? window.event.keyCode : event.which) == 13){$.ajax({"url":"/NextPlan","data":["_s=CY_Wx_-A8j-Q3hcq","_k=RPZesCNB2JeNsKlE","35",$(this).closest("form").find(":input").serialize()].join("&"),"complete":function(){$.ajax
({"dataType":"script","url":"/NextPlan","data":["_s=CY_Wx_-A8j-Q3hcq","_k=RPZesCNB2JeNsKlE","36"].join("&")});$(".menuDiv").remove()}}); return false}; return true" name="37" onfocus="$(this).autocomplete({"select":function(event,ui){$(this).parent().find(":input:hidden").val(ui.item.id)},"source":function(request,response){$.getJSON
("/NextPlan"+"?"+["_s=CY_Wx_-A8j-Q3hcq","_k=RPZesCNB2JeNsKlE","38","39="+encodeURIComponent(request.term)].join("&"),function(){response(arguments[0])})}});$(this).parent().find(":input:hidden").val("")" type="text" class="text"/></form></a></ul><input id="datepicker" type="hidden" class="hidden"/><input id="fetchmoredatepicker" type="hidden" class="hidden"/><div
id="renamedialog" style="display:none; position: absolute;"><form accept-charset="utf-8" method="post" action="/NextPlan?_s=CY_Wx_-A8j-Q3hcq&_k=RPZesCNB2JeNsKlE"><fieldset><input onblur="setTimeout(function(){$("#renamedialog").hide()},300)" onkeypress="if((window.event ? window.event.keyCode : event.which) == 13){$.ajax({"url":"/NextPlan","data":["_s=CY_Wx_-A8j-Q3hcq","_k=RPZesCNB2JeNsKlE","46",$
(this).closest("form").find(":input").serialize()].join("&"),"complete":function(){$.ajax({"dataType":"script","url":"/NextPlan","data":["_s=CY_Wx_-A8j-Q3hcq","_k=RPZesCNB2JeNsKlE","47"].join("&")});$("#renamedialog").hide()}}); return false}; return true" name="48" type="text" class="text"/><button onclick="$.ajax
({"url":"/NextPlan","data":["_s=CY_Wx_-A8j-Q3hcq","_k=RPZesCNB2JeNsKlE","49",$(this).closest("form").find(":input").serialize()].join("&"),"complete":function(){$.ajax({"dataType":"script","url":"/NextPlan","data":["_s=CY_Wx_-A8j-Q3hcq","_k=RPZesCNB2JeNsKlE","50"].join
("&")});$("#renamedialog").hide()}})" type="button" class="button">ok</button><button onclick="$("#renamedialog").hide()" type="button" class="button">cancel</button></fieldset></form></div><div id="changeplaceholdernumberdialog" style="display:none; position: absolute;"><form accept-charset="utf-8" method="post" action="/NextPlan?_s=CY_Wx_-A8j-Q3hcq&_k=RPZesCNB2JeNsKlE"><fieldset><input onkeypress="if((window.event ?
window.event.keyCode : event.which) == 13){$.ajax({"url":"/NextPlan","data":["_s=CY_Wx_-A8j-Q3hcq","_k=RPZesCNB2JeNsKlE","51",$(this).closest("form").find(":input").serialize()].join("&"),"complete":function(){$.ajax({"dataType":"script","url":"/NextPlan","data":["_s=CY_Wx_-A8j-
Q3hcq","_k=RPZesCNB2JeNsKlE","52"].join("&")});$("#changeplaceholdernumberdialog").hide()}}); return false}; return true" name="53" type="text" class="text"/><button onclick="$.ajax({"url":"/NextPlan","data":["_s=CY_Wx_-A8j-Q3hcq","_k=RPZesCNB2JeNsKlE","54",$(this).closest("form").find(":input").serialize()].join
("&"),"complete":function(){$.ajax({"dataType":"script","url":"/NextPlan","data":["_s=CY_Wx_-A8j-Q3hcq","_k=RPZesCNB2JeNsKlE","55"].join("&")});$("#changeplaceholdernumberdialog").hide()}})" type="button" class="button">ok</button><button onclick="$("#changeplaceholdernumberdialog").hide()" type="button" class="button">cancel</
button></fieldset></form></div><ul id="addtoset-submenu" style="display:none"><a rel="text"><form accept-charset="utf-8" method="post" action="/NextPlan?_s=CY_Wx_-A8j-Q3hcq&_k=RPZesCNB2JeNsKlE"><input name="67" type="hidden" class="hidden"/><input onkeypress="if((window.event ? window.event.keyCode : event.which) == 13){$.ajax({"url":"/NextPlan","data":["_s=CY_Wx_-A8j-Q3hcq","_k=RPZesCNB2JeNsKlE","68",$
(this).closest("form").find(":input").serialize()].join("&"),"complete":function(){$("body").append("<div class="loading"><img alt="" src="/images/wait.gif"/></div>");$.ajax({"dataType":"script","url":"/NextPlan","data":["_s=CY_Wx_-A8j-Q3hcq","_k=RPZesCNB2JeNsKlE","69"].join
z-index 2
("&"),"complete":function(){archiveOpenSets(finders['resourceFinder']);finderQueryChanged('#finderSearch',finders['resourceFinder'],false);$.ajax({"dataType":"script","url":"/NextPlan","data":["_s=CY_Wx_-A8j-Q3hcq","_k=RPZesCNB2JeNsKlE","70"].join("&")});$.ajax({"dataType":"script","url":"/
NextPlan","data":["_s=CY_Wx_-A8j-Q3hcq","_k=RPZesCNB2JeNsKlE","71"].join("&")});$.ajax({"dataType":"script","url":"/NextPlan","data":["_s=CY_Wx_-A8j-Q3hcq","_k=RPZesCNB2JeNsKlE","72"].join("&")});$("#resourcefinderPrice").load("/NextPlan",["_s=CY_Wx_-A8j-
Q3hcq","_k=RPZesCNB2JeNsKlE","73"].join("&"));$("#addtoset-submenu").load("/NextPlan",["_s=CY_Wx_-A8j-Q3hcq","_k=RPZesCNB2JeNsKlE","74"].join("&"));$("body").children(".loading").remove();$.ajax({"dataType":"script","url":"/NextPlan","data":["_s=CY_Wx_-A8j-
Q3hcq","_k=RPZesCNB2JeNsKlE","75"].join("&")})}});$(".menuDiv").remove()}}); return false}; return true" name="76" onfocus="$(this).autocomplete({"select":function(event,ui){$(this).parent().find(":input:hidden").val(ui.item.id)},"source":function(request,response){$.getJSON("/NextPlan"+"?"+["_s=CY_Wx_-A8j-Q3hcq","_k=RPZesCNB2JeNsKlE","
77","78="+encodeURIComponent(request.term)].join("&"),function(){response(arguments[0])})}});$(this).parent().find(":input:hidden").val("")" type="text" class="text"/></form></a></ul><ul id="finderMenu" style="display:none"><li><a action="$.ajax({"url":"/NextPlan","data":["_s=CY_Wx_-A8j-Q3hcq","_k=RPZesCNB2JeNsKlE","99"].join
("&"),"complete":function(){$("#resourceInspector").load("/NextPlan",["_s=CY_Wx_-A8j-Q3hcq","_k=RPZesCNB2JeNsKlE","100"].join("&"),function(){$('#resourceInspector').css('top',$(window).scrollTop()+10).css('left',$(window).scrollLeft()+10).show().css('visibility','visible')})}})" permissions="["readResource"]">Info</a></li><li><a
permissions="["unlocked","addResource"]" action="$.ajax({"url":"/NextPlan","data":["_s=CY_Wx_-A8j-Q3hcq","_k=RPZesCNB2JeNsKlE","101"].join("&"),"complete":function(){$.ajax({"url":"/NextPlan","data":["_s=CY_Wx_-A8j-Q3hcq","_k=RPZesCNB2JeNsKlE","102"].join("&"),"complete":function(){$
("#resourceInspector").load("/NextPlan",["_s=CY_Wx_-A8j-Q3hcq","_k=RPZesCNB2JeNsKlE","103"].join("&"),function(){$('#resourceInspector').css('top',$(window).scrollTop()+10).css('left',$(window).scrollLeft()+10).show().css('visibility','visible')})}})}})">Add new resource</a></li><li><a permissions="["unlocked","addResource"]" action="$.ajax({"url":"/
NextPlan","data":["_s=CY_Wx_-A8j-Q3hcq","_k=RPZesCNB2JeNsKlE","104"].join("&"),"complete":function(){$.ajax({"url":"/NextPlan","data":["_s=CY_Wx_-A8j-Q3hcq","_k=RPZesCNB2JeNsKlE","105"].join("&"),"complete":function(){$("#resourceInspector").load("/NextPlan",["_s=CY_Wx_-A8j-
Q3hcq","_k=RPZesCNB2JeNsKlE","106"].join("&"),function(){$('#resourceInspector').css('top',$(window).scrollTop()+10).css('left',$(window).scrollLeft()+10).show().css('visibility','visible')})}})}})">Add new financial resource</a></li><li><a permissions="["unlocked","addResource"]" action="$.ajax({"url":"/NextPlan","data":["_s=CY_Wx_-A8j-
Q3hcq","_k=RPZesCNB2JeNsKlE","107"].join("&"),"complete":function(){$("body").append("<div class="loading"><img alt="" src="/images/wait.gif"/></div>");$.ajax({"dataType":"script","url":"/NextPlan","data":["_s=CY_Wx_-A8j-Q3hcq","_k=RPZesCNB2JeNsKlE","108"].join
("&"),"complete":function(){archiveOpenSets(finders['resourceFinder']);finderQueryChanged('#finderSearch',finders['resourceFinder'],false);$.ajax({"dataType":"script","url":"/NextPlan","data":["_s=CY_Wx_-A8j-Q3hcq","_k=RPZesCNB2JeN
z-index 3
...
Monday 13 September 2010
28. JQuery-SVG
• jQuery load for SVG content
• Load new content in SVG canvas
• Add content at end of SVG Canvas
• + add content to existing SVG element
• Control "z-index" by adding to SVG
groups
• Not yet present on squeaksource / jQuery
plugin
Monday 13 September 2010