Index: openacs-4/packages/lorsm/www/delivery/index.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lorsm/www/delivery/index.adp,v diff -u -N -r1.4.2.1 -r1.4.2.2 --- openacs-4/packages/lorsm/www/delivery/index.adp 9 Mar 2007 11:51:38 -0000 1.4.2.1 +++ openacs-4/packages/lorsm/www/delivery/index.adp 10 Jul 2007 17:10:52 -0000 1.4.2.2 @@ -1,3 +1,3 @@ - Index: openacs-4/packages/lorsm/www/delivery/index.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lorsm/www/delivery/index.tcl,v diff -u -N -r1.8 -r1.8.2.1 --- openacs-4/packages/lorsm/www/delivery/index.tcl 11 Jul 2006 02:22:17 -0000 1.8 +++ openacs-4/packages/lorsm/www/delivery/index.tcl 10 Jul 2007 17:10:53 -0000 1.8.2.1 @@ -9,32 +9,46 @@ @arch-tag: 64f3397b-4558-4298-a995-fc63e472f2a1 @cvs-id $Id$ } { - menu_off:integer,notnull,optional man_id:integer,notnull + menu_off:integer,notnull,optional item_id:integer,notnull,optional ims_id:integer,notnull,optional } -properties { } -validate { } -errors { } + set debuglevel 0 +set menu_type "menu-mk" ad_set_client_property lorsm debuglevel $debuglevel +ad_set_client_property lorsm menu_type $menu_type set ses_renew [ad_parameter -package_id [ad_acs_kernel_id] SessionRenew security 300] + if { ! [info exists menu_off] } { set menu_off 0 } +set user_id [ad_conn user_id] + if { [info exists item_id] } { ad_set_client_property lorsm ims_id $item_id if { ! [info exists ims_id] } { set ims_id $item_id } } else { + if { $menu_off == 0 } { ad_set_client_property lorsm ims_id "" ns_log notice "UNSETTING LORSM IMS_ID '[ad_conn url]'" + } else { + #given menu_off without ims_id, i have to provide a default one! + #since an ims_item_id wasn't provided, we just pick up the first one + set item_list [lorsm::get_item_list $man_id $user_id] + set ims_id [lindex $item_list 0] + ad_set_client_property lorsm ims_id $ims_id + } } if { [info exists ims_id] } { @@ -44,16 +58,22 @@ set body_url [export_vars -base "record-view" -url {item_id man_id}] } + + # Get the course name if {[db_0or1row manifest " select cp.course_name, cp.fs_package_id, isscorm, pf.folder_name, - pf.format_name + pf.format_name, + case + when upper(scorm_type) = 'SCO' then 'delivery-scorm' + else 'delivery' + end as deliverymethod from - ims_cp_manifests cp, + ims_cp_manifests cp left join (select man_id, max(scorm_type) as scorm_type from ims_cp_resources group by man_id ) as cpr using (man_id) , lorsm_course_presentation_formats pf where cp.man_id = :man_id @@ -67,16 +87,24 @@ } else { set course_name "No Course Name" } + +ns_log warning "\$isscorm=$isscorm while delivery method has to be = $deliverymethod" + if {$isscorm} { set folder_name "delivery-scorm" +} else { + # workaround for when isscorm is set to inconsisten value + # (who sets it ?) + if {$deliverymethod=="delivery-scorm"} { + set folder_name delivery-scorm + } } + set return_url [dotlrn_community::get_community_url [dotlrn_community::get_community_id]] - # Student tracking set package_id [ad_conn package_id] set community_id [dotlrn_community::get_community_id] -set user_id [ad_conn user_id] ad_set_client_property lorsm currentcourse $man_id @@ -94,7 +122,11 @@ ## FIXME -db_1row get_format "select folder_name, isscorm from lorsm_course_presentation_formats f, ims_cp_manifests m where f.format_id=m.course_presentation_format and m.man_id=:man_id" -if {$isscorm} { - set folder_name delivery-scorm -} +#db_1row get_format "select folder_name, isscorm from lorsm_course_presentation_formats f, ims_cp_manifests m where f.format_id=m.course_presentation_format and m.man_id=:man_id" +#if {$isscorm} { +# set folder_name delivery-scorm +#} + +ad_set_client_property lorsm deliverymethod $folder_name + +ns_log debug "delivery/index.tcl returning with folder_name $folder_name" Index: openacs-4/packages/lorsm/www/resources/lorsm-portlet.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lorsm/www/resources/lorsm-portlet.js,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lorsm/www/resources/lorsm-portlet.js 10 Jul 2007 17:10:53 -0000 1.1.2.1 @@ -0,0 +1,48 @@ + + +function popitup(url,name) { + if (!newwindow.closed && newwindow.location) { + newwindow.location.href = url; + } + else { + newwindow=window.open(url,name,'height=200,width=150'); + if (!newwindow.opener) newwindow.opener = self; + } + if (window.focus) {newwindow.focus()} + if (!newwindow.focus) {newwindow.focus()} + + return false; +} + + +function popupnr(mylink, windowname, refocus) +{ +var mywin, href, url, options; +windowname='LRN_delivery_window'; +//alert(typeof(mylink)); +if (typeof(mylink) == 'string') + href=mylink+''; +else + href=mylink.href+''; + +options='location=no,status=no,toolbar=no,top,width=400,height=200,scrollbars=yes'; +mywin = window.open(href, windowname, options); + +try { url=mywin.document.URL; + } catch (o) { +alert ('You need to remove popup blocker'); +} + +// if we just opened the window +if ( + mywin.closed || + (! mywin.document.URL) || + (mywin.document.URL.indexOf("about") == 0) + ) + mywin.location=href; +else if (refocus) + mywin.focus(); + +return false; + +}