[Building Sakai] polls tool

Adam Marshall adam.marshall at oucs.ox.ac.uk
Mon Feb 7 02:26:27 PST 2011


I guess Polls wouldn't work too well in My Workspace because users (or the general public) wouldn't have site.visit which they'd need in order to get to the poll.

It is possible to find out the URL of the Poll's "vote / view results page" and if the poll were public (.anon) then everything would work, but the UI isnt really there for the casual Sakai user to exploit the tool

adam

From: sakai-dev-bounces at collab.sakaiproject.org [mailto:sakai-dev-bounces at collab.sakaiproject.org] On Behalf Of Steve Swinsburg
Sent: 05 February 2011 08:22
To: bharathi
Cc: Sakai-Dev Developers
Subject: Re: [Building Sakai] polls tool

Hi,

Do this as you would with adding any tool to a site as an Admin. Using the Sites tool in the Admin Workspace, find the !user site template, add a page, and add the tool to the page. However, I am not sure if the polls tool supports being in the My Workspace site.

Also, users that have already logged in will not get the new tool as their My Workspace site has already been created from the template. The easiest way to do this is to delete all My Workspace sites. When the user logs in again it will be recreated with the new tool.

regards,
Steve

On 05/02/2011, at 6:42 PM, bharathi wrote:


Hi Steeve,
after logging as user, in the myworkspace i need to replace calendar with polls tool. please suggest me how to do it

On Thu, 27 Jan 2011 16:37:30 +0530 Steve Swinsburg wrote
>whats on line 82?
org.sakaiproject.tool.resetpass.FormProducer.fillComponents(FormProducer.java:82)

>

>
On 27/01/2011, at 10:05 PM, bharathi wrote:


hi,
>i have added on more field PF Index No. in forgot password page and i need to validate the field for server side validation. but when i click on forgot password page the following error occurs.
>
>
>Fatal internal error handling request:
>Target exception of class java.lang.ClassCastException
>Successive lines until stack trace show causes progressing to exception site:
>java.lang.String cannot be cast to [Ljava.lang.Object;
>java.lang.ClassCastException: java.lang.String cannot be cast to [Ljava.lang.Object;
> at org.sakaiproject.tool.resetpass.FormProducer.fillComponents(FormProducer.java:82)
> at uk.org.ponder.rsf.view.support.ViewCollector.fillComponents(ViewCollector.java:56)
> at uk.org.ponder.rsf.view.support.LayoutCollector.fillComponents(LayoutCollector.java:68)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
> at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:198)
> at $Proxy143.fillComponents(Unknown Source)
> at uk.org.ponder.rsf.view.support.ViewGenerator.generateView(ViewGenerator.java:53)
> at uk.org.ponder.rsf.processor.support.RSFRenderHandler$1.run(RSFRenderHandler.java:79)
> at uk.org.ponder.rsf.processor.support.RequestInvoker$1.run(RequestInvoker.java:46)
> at uk.org.ponder.util.CollectingRunnableInvoker$1.run(CollectingRunnableInvoker.java:25)
> at uk.org.ponder.rsf.flow.support.BasicScopedAlterationWrapper.invokeRunnable(BasicScopedAlterationWrapper.java:59)
> at uk.org.ponder.rsf.flow.support.BasicScopedAlterationWrapper$$FastClassByCGLIB$$84f89202.invoke(<generated>)
> at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
> at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:628)
> at uk.org.ponder.rsf.flow.support.BasicScopedAlterationWrapper$$EnhancerByCGLIB$$715b903c.invokeRunnable(<generated>)
> at uk.org.ponder.rsf.flow.support.BasicScopedAlterationWrapper$$FastClassByCGLIB$$84f89202.invoke(<generated>)
> at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
> at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:628)
> at uk.org.ponder.rsf.flow.support.BasicScopedAlterationWrapper$$EnhancerByCGLIB$$715b903c.invokeRunnable(<generated>)
> at uk.org.ponder.util.CollectingRunnableInvoker$1.run(CollectingRunnableInvoker.java:29)
> at uk.org.ponder.util.CollectingRunnableInvoker.invokeWrappers(CollectingRunnableInvoker.java:22)
> at uk.org.ponder.util.CollectingRunnableInvoker.invokeRunnable(CollectingRunnableInvoker.java:14)
> at uk.org.ponder.rsf.processor.support.RequestInvoker.invokeRunnable(RequestInvoker.java:39)
> at uk.org.ponder.rsf.processor.support.RSFRenderHandler.handle(RSFRenderHandler.java:75)
> at uk.org.ponder.rsf.processor.support.RSFRenderHandler$$FastClassByCGLIB$$5bda3a3d.invoke(<generated>)
> at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
> at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:628)
> at uk.org.ponder.rsf.processor.support.RSFRenderHandler$$EnhancerByCGLIB$$5de8c3b7.handle(<generated>)
> at uk.org.ponder.rsf.processor.support.RenderHandlerBracketer.handle(RenderHandlerBracketer.java:82)
> at uk.org.ponder.rsf.processor.support.RenderHandlerBracketer$$FastClassByCGLIB$$3055fa0f.invoke(<generated>)
> at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
> at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:628)
> at uk.org.ponder.rsf.processor.support.RenderHandlerBracketer$$EnhancerByCGLIB$$2b7e4b09.handle(<generated>)
> at uk.org.ponder.rsf.processor.support.RootHandlerBeanBase.handleGet(RootHandlerBeanBase.java:97)
> at uk.org.ponder.rsf.processor.support.RootHandlerBeanBase.handle(RootHandlerBeanBase.java:79)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at uk.org.ponder.reflect.JDKReflectiveCache.invokeMethod(JDKReflectiveCache.java:23)
> at uk.org.ponder.reflect.JDKReflectiveCache.invokeMethod(JDKReflectiveCache.java:17)
> at uk.org.ponder.reflect.JDKReflectiveCache.invokeMethod(JDKReflectiveCache.java:77)
> at uk.org.ponder.rsac.support.RSACBeanLocatorImpl.createBean(RSACBeanLocatorImpl.java:553)
> at uk.org.ponder.rsac.support.RSACBeanLocatorImpl.access$000(RSACBeanLocatorImpl.java:75)
> at uk.org.ponder.rsac.support.RSACBeanLocatorImpl$1.run(RSACBeanLocatorImpl.java:449)
> at uk.org.ponder.rsac.RSACErrorBridge.invokeRunnable(RSACErrorBridge.java:38)
> at uk.org.ponder.rsac.support.RSACBeanLocatorImpl.createBean(RSACBeanLocatorImpl.java:447)
> at uk.org.ponder.rsac.support.RSACBeanLocatorImpl.getLocalBean(RSACBeanLocatorImpl.java:348)
> at uk.org.ponder.rsac.support.RSACBeanLocatorImpl.getBean(RSACBeanLocatorImpl.java:379)
> at uk.org.ponder.rsac.support.PerRequestInfo$1.locateBean(PerRequestInfo.java:49)
> at uk.ac.cam.caret.sakai.rsf.servlet.ReasonableSakaiServlet.service(ReasonableSakaiServlet.java:65)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
> at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:659)
> at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:457)
> at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:359)
> at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:311)
> at org.sakaiproject.tool.impl.ActiveToolComponent$MyActiveTool.forward(ActiveToolComponent.java:500)
> at org.sakaiproject.portal.charon.SkinnableCharonPortal.forwardTool(SkinnableCharonPortal.java:1329)
> at org.sakaiproject.portal.charon.handlers.ToolHandler.doTool(ToolHandler.java:204)
> at org.sakaiproject.portal.charon.handlers.ToolHandler.doGet(ToolHandler.java:96)
> at org.sakaiproject.portal.charon.SkinnableCharonPortal.doGet(SkinnableCharonPortal.java:833)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:627)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
> at org.sakaiproject.util.RequestFilter.doFilter(RequestFilter.java:650)
> at com.rsmart.sakai.kernel.request.BrandRequestFilter.doFilter(BrandRequestFilter.java:79)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
> at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
> at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
> at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
> at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
> at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
> at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
> at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:843)
> at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:679)
> at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1293)
> at java.lang.Thread.run(Thread.java:662)
>
>
>
>
>The error is in FormProducer class and the code is
>
>public void fillComponents(UIContainer tofill, ViewParameters viewParms,
> ComponentChecker comp) {
> // TODO Auto-generated method stub
>
>
> if (tml!=null) {
> if (tml.size() > 0) {
>
> for (int i = 0; i < tml.size(); i ++ ) {
> UIBranchContainer errorRow = UIBranchContainer.make(tofill,"error-row:");
> if (tml.messageAt(i).args != null ) {
> UIVerbatim.make(errorRow, "error", messageLocator.getMessage(tml.messageAt(i).acquireMessageCode(), (String[])tml.messageAt(i).args[0]));
> } else {
> UIVerbatim.make(errorRow, "error", messageLocator.getMessage(tml.messageAt(i).acquireMessageCode()));
> }
>
> }
> }
> }
> // Get the instructions from the tool placement.
> Placement placement = toolManager.getCurrentPlacement();
> if (placement != null) {
> String instuctions = placement.getConfig().getProperty("instructions");
> if (instuctions != null && instuctions.length() > 0) {
> UIVerbatim.make(tofill, "instructions", instuctions);
> }
> } else {
> String[] args = new String[1];
> args[0]=serverConfigurationService.getString("ui.service", "Sakai Based Service");
> UIVerbatim.make(tofill,"main",messageLocator.getMessage("mainText", args));
> }
> UIForm form = UIForm.make(tofill,"form");
> UIInput.make(form,"input","#{userBean.pfindexno}");
> //UIInput.make(form,"input","#{userBean.dob}");
> UIInput.make(form,"input","#{userBean.email}");
> //UIInput.make(form,"input","#{userBean.bankcode}");
> UICommand.make(form,"submit",UIMessage.make("postForm"),"#{formHandler.processAction}");
> }
>
>
> public List<NavigationCase> reportNavigationCases() {
> List<NavigationCase> togo = new ArrayList<NavigationCase>(); // Always navigate back to this view.
> togo.add(new NavigationCase(null, new SimpleViewParameters(VIEW_ID)));
> togo.add(new NavigationCase("Success", new SimpleViewParameters(ConfirmProducer.VIEW_ID)));
> return togo;
> }
>
>
>pls help me

>
>On Fri, 21 Jan 2011 15:17:00 +0530 Steve Swinsburg <steve.swinsburg at gmail.com<mailto:steve.swinsburg at gmail.com>> wrote
>>get the source for the appropriate tag in reset-pass that matches your installation:
https://source.sakaiproject.org/svn//reset-pass/tags/<https://source.sakaiproject.org/svn/reset-pass/tags/>

>>
html is then
reset-pass/src/webapp/content/templates/

>>
java is:
src/java/org/sakaiproject/tool/resetpass/

>>
FormProducer and FormHandler, and maybe COnfirmProducer most likely classes to modify.

>>

>>
good luck

>>
On 21/01/2011, at 8:37 PM, bharathi wrote:


atleast u can tell me where these rsf files are found( i mean the location)
>>
>>On Fri, 21 Jan 2011 15:05:04 +0530 Steve Swinsburg <steve.swinsburg at gmail.com<mailto:steve.swinsburg at gmail.com>> wrote
>>>Sorry, you'll have to look into this yourself. To validate them you'll need to check the form fields against some logic that you have to make sure they match your records.

>>>

>>>

>>>
On 21/01/2011, at 8:14 PM, bharathi wrote:


can u pls tell me what are the corresponding rsf classes that i need to change and how should i validate them
>>>
>>>On Fri, 21 Jan 2011 12:26:25 +0530 Steve Swinsburg <steve.swinsburg at gmail.com<mailto:steve.swinsburg at gmail.com>> wrote
>>>>If I remember correctly, there are only a couple of files for this. You will need to add some fields to the HTML template and then to the corresponding RSF classes to get those parameters and validate them.

>>>>
you'll need to write some logic to validate them though
>>>>

>>>>

>>>>

>>>>

>>>>
On 21/01/2011, at 5:45 PM, bharathi wrote:



>>>>I have some more issues
>>>>i need to put email as mandatory field in Forgot password page and need to add 3 more mandatory fields(PF index no. , Date of birth, Bank_code) in that page and i should validate that fields also. please help me how to write the code for mandatory fields and which source files i need to change to check for the validations
>>>>
>>>>its an immediate requirement pls help me Steeve
>>>>
>>>>
>>>>On Fri, 21 Jan 2011 05:39:54 +0530 Steve Swinsburg <steve.swinsburg at gmail.com<mailto:steve.swinsburg at gmail.com>> wrote
>>>>>You dont need to change anything in the java source.

>>>>>

>>>>>
On 20/01/2011, at 10:07 PM, bharathi wrote:


anything else that i need to change in the code( i mean in java files)
>>>>>
>>>>>On Thu, 20 Jan 2011 16:25:47 , Steve Swinsburg <steve.swinsburg at gmail.com<mailto:steve.swinsburg at gmail.com>> wrote
>>>>>heres the email settings we use.

>>>>>

>>>>>
# EMAIL CONFIGURATION

>>>>>
# smtp server for outgoing emails
smtp at org.sakaiproject.email.api.EmailService=smtphost.anu.edu.au

>>>>>
# dns addresses used by James for incoming email
smtp.dns.1 = 255.255.255.1
smtp.dns.2 = 255.255.255.2

>>>>>
# SMTP port on which James runs. Default is 25. Recommend running on 8025, and using a standard mailer on 25 to forward mail to Sakai.
smtp.port = 8025

>>>>>
# flag to enable or disable James for incoming email (true | false)
smtp.enabled = false

>>>>>
# email support address used in incoming email rejection messages
#mail.support=

>>>>>
# email address to send errors caught by the portal, and user bug reports in response
#portal.error.email=

>>>>>
# email address used as the "from" address for any email sent by Worksite Setup tool or Site Info tool
setup.request=steve.swinsburg at anu.edu.au<mailto:setup.request=steve.swinsburg at anu.edu.au>

>>>>>
# send an email to the user when the user is added
notifyNewUserEmail=true

>>>>>
# comma separated list of domain names that are not allowed in guest accounts
# This property is useful for preventing the accidental creation of guest accounts
# for users (based on email address) that already have an external account (based on
# username). For instance, if this property is set to umich.edu<http://umich.edu>, then a user
# trying to add knoop at umich.edu<mailto:knoop at umich.edu> to a site will receive an error, as there is an
# expectation that a "knoop" user should already exist.
invalidEmailInAccountString=anu.edu.au

>>>>>

>>>>>

>>>>>

>>>>>

>>>>>
On 20/01/2011, at 9:50 PM, bharathi wrote:


do i need to set the setup.request property in sakai.properties file. If it is to be what is the value to be given
>>>>>
>>>>>On Thu, 20 Jan 2011 14:50:30 +0530 Steve Swinsburg <steve.swinsburg at gmail.com<mailto:steve.swinsburg at gmail.com>> wrote
>>>>>>you need to set the smtp and email properties in sakai.properties.

>>>>>>
check the sample sakai.properties.
>>>>>>

>>>>>>

>>>>>>

>>>>>>
On 20/01/2011, at 6:11 PM, bharathi wrote:


i entered the email address but iam not getting the mail. when i run tomcat it is showing a warning msg like no setup.request in configuration.
>>>>>>
>>>>>>On Wed, 19 Jan 2011 18:02:45 , Steve Swinsburg <steve.swinsburg at gmail.com<mailto:steve.swinsburg at gmail.com>> wrote
>>>>>>
On that page you enter the email address of the account you want to reset. Or is it something else?
>>>>>>
>>>>>>Sent from my iPhone

>>>>>>On 19/01/2011, at 20:28, "bharathi " <bharathi.cheekatla at rediffmail.com<mailto:bharathi.cheekatla at rediffmail.com>> wrote:
>>>>>>
>>>>>>
Hi Steeve,
>>>>>>
>>>>>>Thanks for the help, i resolved the issue
>>>>>>one more issue is after clicking the forgot password link a page with the field email is existing . to get the email do i need to do anymore changes in the project.
>>>>>>
>>>>>>Cheers,
>>>>>>Bharathi
>>>>>>
>>>>>>On Wed, 19 Jan 2011 13:10:18 +0530 Steve Swinsburg <steve.swinsburg at gmail.com<mailto:steve.swinsburg at gmail.com>> wrote
>>>>>>>
If you've deployed the tool and added it to a page on the gateway, then no.
>>>>>>>
>>>>>>>Sent from my iPhone

>>>>>>>On 19/01/2011, at 17:43, "bharathi " <bharathi.cheekatla at rediffmail.com<mailto:bharathi.cheekatla at rediffmail.com>> wrote:
>>>>>>>
>>>>>>>
Hi Steeve,
>>>>>>>Do I need to do any changes in library(home.htkl) and sakai-reset-pass project folders.
>>>>>>>Pls Suggest.
>>>>>>>
>>>>>>>cheers,
>>>>>>>Bharathi
>>>>>>>
>>>>>>>On Tue, 18 Jan 2011 16:14:40 +0530 Steve Swinsburg <steve.swinsburg at gmail.com<mailto:steve.swinsburg at gmail.com>> wrote
>>>>>>>>Hello Bharathi,

>>>>>>>>
You need to add the tool to a page in the !gateway site. In the Admin Workspace, go to Sites, search for !gateway, select it, then go to Pages, add a page, then add the reset password tool to it. Save everything and you should have it on your logged out gateway site.

>>>>>>>>
There is a setting for sakai.properties which sets which types of user's can reset their password:
# Control who can use the password reset tool.

resetRoles.count=2resetRoles.1=guestresetRoles.2=external
where the count property = the number of roles you want to allow, then list one for each as per the example above.

>>>>>>>>
cheers,
Steve

>>>>>>>>

>>>>>>>>
On 18/01/2011, at 9:28 PM, bharathi.cheekatla wrote:



Hi Steve,


Iam running sakai 2.7 version. I found Reset Pass tool isavailable. My problem is iam not able to figure out how to get it on my portalpage . please help me .


Regards,

Bharathi,

SaankhyaInfotech Ltd

The NationalSmall Industries Corporation Limited, Module No 405, 4th Floor,

Exhibitioncum Marketing Development Business Park, Kushaiguda, ECIL PO, Hyderabad,500062.

bharathi at sankhya.net<mailto:bharathi at sankhya.net> | www.sankhya.net<http://www.sankhya.net>


>>>>>>>>[cid:~WRD000.jpg]

>>>>>>>>
steve.swinsburg at gmail.com<mailto:steve.swinsburg at gmail.com>>
>>>>>>>[cid:~WRD000.jpg]

>>>>>>[cid:~WRD000.jpg]

>>>>>>[cid:~WRD000.jpg]

>>>>>>
[cid:~WRD000.jpg]

>>>>><http://www.rediffmail.com/cgi-bin/red.cgi?red=http%3A%2F%2Fwww%2Erediffmail%2Ecom%2Fcgi%2Dbin%2Fred%2Ecgi%3Fred%3Dhttp%253A%252F%252Fwww%252Erediffmail%252Ecom%252Fcgi%252Dbin%252Fred%252Ecgi%253Fred%253Dhttp%25253A%25252F%25252Fwww%25252Erediffmail%25252Ecom%25252Fcgi%25252Dbin%25252Fred%25252Ecgi%25253Fred%25253Dhttp%2525253A%2525252F%2525252Fwww%2525252Erediffmail%2525252Ecom%2525252Fcgi%2525252Dbin%2525252Fred%2525252Ecgi%2525253Fred%2525253Dhttp%252525253A%252525252F%252525252Fwww%252525252Erediffmail%252525252Ecom%252525252Fcgi%252525252Dbin%252525252Fred%252525252Ecgi%252525253Fred%252525253Dhttp%25252525253A%25252525252F%25252525252Fsigads%25252525252Erediff%25252525252Ecom%25252525252FRealMedia%25252525252Fads%25252525252Fclick%25252525255Fnx%25252525252Eads%25252525252Fwww%25252525252Erediffmail%25252525252Ecom%25252525252Fsignatureline%25252525252Ehtm%252525252540Middle%25252525253F%2525252526amp%252525253BisImage%252525253D0%2525252526amp%252525253BBlockImage%252525253D0%2525252526amp%252525253Brediffng%252525253D0%25252526amp%2525253BisImage%2525253D0%25252526amp%2525253BBlockImage%2525253D0%25252526amp%2525253Brediffng%2525253D0%252526amp%25253BisImage%25253D0%252526amp%25253BBlockImage%25253D0%252526amp%25253Brediffng%25253D0%2526amp%253BisImage%253D0%2526amp%253BBlockImage%253D0%2526amp%253Brediffng%253D0%26amp%3BisImage%3D0%26amp%3BBlockImage%3D0%26amp%3Brediffng%3D0&isImage=0&BlockImage=0&rediffng=0>

>>>>><http://www.rediffmail.com/cgi-bin/red.cgi?red=http%3A%2F%2Fwww%2Erediffmail%2Ecom%2Fcgi%2Dbin%2Fred%2Ecgi%3Fred%3Dhttp%253A%252F%252Fwww%252Erediffmail%252Ecom%252Fcgi%252Dbin%252Fred%252Ecgi%253Fred%253Dhttp%25253A%25252F%25252Fwww%25252Erediffmail%25252Ecom%25252Fcgi%25252Dbin%25252Fred%25252Ecgi%25253Fred%25253Dhttp%2525253A%2525252F%2525252Fwww%2525252Erediffmail%2525252Ecom%2525252Fcgi%2525252Dbin%2525252Fred%2525252Ecgi%2525253Fred%2525253Dhttp%252525253A%252525252F%252525252Fwww%252525252Erediffmail%252525252Ecom%252525252Fcgi%252525252Dbin%252525252Fred%252525252Ecgi%252525253Fred%252525253Dhttp%25252525253A%25252525252F%25252525252Fsigads%25252525252Erediff%25252525252Ecom%25252525252FRealMedia%25252525252Fads%25252525252Fclick%25252525255Fnx%25252525252Eads%25252525252Fwww%25252525252Erediffmail%25252525252Ecom%25252525252Fsignatureline%25252525252Ehtm%252525252540Middle%25252525253F%2525252526amp%252525253BisImage%252525253D0%2525252526amp%252525253BBlockImage%252525253D0%2525252526amp%252525253Brediffng%252525253D0%25252526amp%2525253BisImage%2525253D0%25252526amp%2525253BBlockImage%2525253D0%25252526amp%2525253Brediffng%2525253D0%252526amp%25253BisImage%25253D0%252526amp%25253BBlockImage%25253D0%252526amp%25253Brediffng%25253D0%2526amp%253BisImage%253D0%2526amp%253BBlockImage%253D0%2526amp%253Brediffng%253D0%26amp%3BisImage%3D0%26amp%3BBlockImage%3D0%26amp%3Brediffng%3D0&isImage=0&BlockImage=0&rediffng=0>[cid:~WRD000.jpg]

>>>>>
steve.swinsburg at gmail.com<mailto:steve.swinsburg at gmail.com>>
>>>>[cid:~WRD000.jpg]

>>>>

>>>[cid:~WRD000.jpg]

>>>
steve.swinsburg at gmail.com<mailto:steve.swinsburg at gmail.com>>
>>[cid:~WRD000.jpg]

>>

>[cid:~WRD000.jpg]

>

[cid:~WRD000.jpg]<http://sigads.rediff.com/RealMedia/ads/click_nx.ads/www.rediffmail.com/signatureline.htm@Middle?>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://collab.sakaiproject.org/pipermail/sakai-dev/attachments/20110207/7ad0b900/attachment.html 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ~WRD000.jpg
Type: image/jpeg
Size: 823 bytes
Desc: ~WRD000.jpg
Url : http://collab.sakaiproject.org/pipermail/sakai-dev/attachments/20110207/7ad0b900/attachment.jpg 


More information about the sakai-dev mailing list