I backported some code from sds trunk to the stable production sds 
running here:

   http://saildataservice.concord.org/

The changes shouldn't affect any existing users, but if you are using 
it please test to make sure projects start up and learner data is 
persisted.

The changes consist of adding two more optional parameters which can 
be added onto the end of the the url which generates the jnlp.

- jnlp_filename

The value of this parameter is used by the sds when it constructs the 
Content-Disposition header. By setting this a portal can determine 
what is the filename of the jnlp when it is saved onto a client 
computer. This is mainly useful for debugging.

- jnlp_properties

The value for jnlp_properties is a string of key-value pairs in a url 
query-string format in which the reserved characters are escaped.

Here is an example:

http://saildataservice.concord.org/7/offering/662/jnlp/855/view?sailotrunk.otmlurl=http://itsidiy.concord.org/page/otml/6/16/247/view&jnlp_filename=itsidiy_relative_humidity_graph_vernier_goio.jnlp&jnlp_properties=otrunk.view.author%253Dtrue%2526otrunk.view.hide_tree%253Dtrue%2526otrunk.view.frame_title%253DITSI%20Do%20It%20Yourself


Deconstructing that url the parameters passed after the main url:

   http://saildataservice.concord.org/7/offering/662/jnlp/855/view

are:

1)
sailotrunk.otmlurl=http://itsidiy.concord.org/page/otml/6/16/247/view

This is used to create properties loaded by sail in the config 
system. This particular property is used to tell an OTunk curnit to 
get it's author data from the url:

   http://itsidiy.concord.org/page/otml/6/16/247/view

2)
jnlp_filename=itsidiy_relative_humidity_graph_vernier_goio.jnlp

This is used by the sds to set the Content-Disposition header when 
the jnlp is downloaded to a client to:

   itsidiy_relative_humidity_graph_vernier_goio.jnlp

3)
jnlp_properties=otrunk.view.author%253Dtrue%2526otrunk.view.hide_tree%253Dtrue%2526otrunk.view.frame_title%253DITSI%20Do%20It%20Yourself

The value of jnlp_properties is set to:

otrunk.view.author%253Dtrue%2526otrunk.view.hide_tree%253Dtrue%2526otrunk.view.frame_title%253DITSI%20Do%20It%20Yourself

Unescaping that once using Ruby:

URI.unescape("otrunk.view.author%253Dtrue%2526otrunk.view.hide_tree%253Dtrue%2526otrunk.view.frame_title%253DITSI%20Do%20It%20Yourself")

=> 
"otrunk.view.author%3Dtrue%26otrunk.view.hide_tree%3Dtrue%26otrunk.view.frame_title%3DITSI
 
Do It Yourself"

%3D = '&'
%26 = '='

decomposing this one level further these three properties will end up 
in the jnlp itself like this:

     <property name="otrunk.view.author" value="true"/>
     <property name="otrunk.view.hide_tree" value="true"/>
     <property name="otrunk.view.frame_title" value="ITSI Do It Yourself"/>

-- 
- Stephen Bannasch

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"SAIL-Dev" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/SAIL-Dev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to