Index: openacs-4/packages/imsld-portlet/imsld-portlet.info =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/imsld-portlet/imsld-portlet.info,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/imsld-portlet/imsld-portlet.info 27 Sep 2005 11:22:46 -0000 1.1 @@ -0,0 +1,26 @@ +<?xml version="1.0"?> +<!-- Generated by the OpenACS Package Manager --> + +<package key="imsld-portlet" url="http://openacs.org/repository/apm/packages/imsld-portlet" type="apm_service"> + <package-name>IMS LD Portlet</package-name> + <pretty-plural>IMS LD Portlets</pretty-plural> + <initial-install-p>f</initial-install-p> + <singleton-p>t</singleton-p> + + <version name="0.1d1" url="http://openacs.org/repository/download/apm/imsld-portlet-0.1d1.apm"> + <owner url="mailto:eperez@it.uc3m.es">Eduardo Pérez Ureta</owner> + <release-date>2005-09-27</release-date> + + <provides url="imsld-portlet" version="0.2d1"/> + <requires url="imsld" version="0.1d"/> + + <callbacks> + <callback type="after-install" proc="apm::imsld_portlet::after_install"/> + <callback type="before-uninstall" proc="apm::imsld_portlet::before_uninstall"/> + </callbacks> + <parameters> + <!-- No version parameters --> + </parameters> + + </version> +</package> Index: openacs-4/packages/imsld-portlet/tcl/apm-callback-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/imsld-portlet/tcl/apm-callback-procs.tcl,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/imsld-portlet/tcl/apm-callback-procs.tcl 27 Sep 2005 11:22:46 -0000 1.1 @@ -0,0 +1,29 @@ +ad_library { + Procedures for initializing service contracts etc. for the + imsld portlet package. Should only be executed + once upon installation. + + @creation-date 2005-09-27 + @author eperez@it.uc3m.es + @cvs-id $Id: apm-callback-procs.tcl,v 1.1 2005/09/27 11:22:46 eduardop Exp $ +} + +namespace eval apm::imsld_portlet {} +namespace eval apm::imsld_admin_portlet {} + +ad_proc -public apm::imsld_portlet::after_install {} { + Create the datasources needed by the imsld portlets. +} { + imsld_portlet::after_install + imsld_admin_portlet::after_install +} + +ad_proc -public apm::imsld_portlet::before_uninstall {} { + IMS LD Portlet package uninstall proc +} { + + db_transaction { + imsld_portlet::uninstall + imsld_admin_portlet::uninstall + } +} Index: openacs-4/packages/imsld-portlet/tcl/imsld-portlet-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/imsld-portlet/tcl/imsld-portlet-procs.tcl,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/imsld-portlet/tcl/imsld-portlet-procs.tcl 27 Sep 2005 11:22:46 -0000 1.1 @@ -0,0 +1,354 @@ +ad_library { + + Procedures to support the imsld portlets + + @creation-date 2005-09-27 + @author eperez@it.uc3m.es + @cvs_id $Id: imsld-portlet-procs.tcl,v 1.1 2005/09/27 11:22:46 eduardop Exp $ + +} + +namespace eval imsld_portlet {} +namespace eval imsld_admin_portlet {} + + +# +# imsld namespace +# + +ad_proc -private imsld_portlet::get_my_name { +} { + return "imsld_portlet" +} + + + +ad_proc -private imsld_portlet::my_package_key { +} { + return "imsld-portlet" +} + + + +ad_proc -public imsld_portlet::get_pretty_name { +} { + return "#imsld.imsld#" +} + + + +ad_proc -public imsld_portlet::link { +} { + return "" +} + + + +ad_proc -public imsld_portlet::add_self_to_page { + {-portal_id:required} + {-package_id:required} + {-param_action:required} + {-force_region ""} + {-page_name "" } +} { + Adds a imsld PE to the given portal. + + @param portal_id The page to add self to + @param package_id The community with the folder + + @return element_id The new element's id +} { + return [portal::add_element_parameters \ + -portal_id $portal_id \ + -portlet_name [get_my_name] \ + -value $package_id \ + -force_region $force_region \ + -page_name $page_name \ + -pretty_name [get_pretty_name] \ + -param_action $param_action + ] +} + + + +ad_proc -public imsld_portlet::remove_self_from_page { + {-portal_id:required} + {-package_id:required} +} { + Removes a imsld PE from the given page or the package_id of the + imsld package from the portlet if there are others remaining + + @param portal_id The page to remove self from + @param package_id +} { + portal::remove_element_parameters \ + -portal_id $portal_id \ + -portlet_name [get_my_name] \ + -value $package_id +} + + + +ad_proc -public imsld_portlet::show { + cf +} { + portal::show_proc_helper \ + -package_key [my_package_key] \ + -config_list $cf \ + -template_src "imsld-portlet" +} + +# +# imsld admin namespace +# + +ad_proc -private imsld_admin_portlet::get_my_name {} { + return "imsld_admin_portlet" +} + + +ad_proc -public imsld_admin_portlet::get_pretty_name {} { + return "#imsld.imsld_Administration#" +} + + + +ad_proc -private imsld_admin_portlet::my_package_key {} { + return "imsld-portlet" +} + + + +ad_proc -public imsld_admin_portlet::link {} { + return "" +} + + + +ad_proc -public imsld_admin_portlet::add_self_to_page { + {-portal_id:required} + {-page_name ""} + {-package_id:required} +} { + Adds a imsld admin PE to the given portal + + @param portal_id The page to add self to + @param package_id The package_id of the imsld package + + @return element_id The new element's id +} { + return [portal::add_element_parameters \ + -portal_id $portal_id \ + -portlet_name [get_my_name] \ + -key package_id \ + -value $package_id + ] +} + +ad_proc -public imsld_admin_portlet::remove_self_from_page { + {-portal_id:required} +} { + Removes a imsld admin PE from the given page +} { + portal::remove_element \ + -portal_id $portal_id \ + -portlet_name [get_my_name] +} + + +ad_proc -public imsld_admin_portlet::show { + cf +} { + portal::show_proc_helper \ + -package_key [my_package_key] \ + -config_list $cf \ + -template_src "imsld-admin-portlet" +} + +ad_proc -private imsld_portlet::after_install {} { + Create the datasources needed by the imsld portlet. +} { + + db_transaction { + set ds_id [portal::datasource::new \ + -name "imsld_portlet" \ + -description "IMS LD Portlet"] + + portal::datasource::set_def_param \ + -datasource_id $ds_id \ + -config_required_p t \ + -configured_p t \ + -key shadeable_p \ + -value t + + portal::datasource::set_def_param \ + -datasource_id $ds_id \ + -config_required_p t \ + -configured_p t \ + -key hideable_p \ + -value t + + portal::datasource::set_def_param \ + -datasource_id $ds_id \ + -config_required_p t \ + -configured_p t \ + -key user_editable_p \ + -value f + + portal::datasource::set_def_param \ + -datasource_id $ds_id \ + -config_required_p t \ + -configured_p t \ + -key shaded_p \ + -value f + + portal::datasource::set_def_param \ + -datasource_id $ds_id \ + -config_required_p t \ + -configured_p t \ + -key link_hideable_p \ + -value f + + portal::datasource::set_def_param \ + -datasource_id $ds_id \ + -config_required_p t \ + -configured_p f \ + -key package_id \ + -value "" + + register_portal_datasource_impl + + } +} + +ad_proc -private imsld_portlet::register_portal_datasource_impl {} { + Create the service contracts needed by the imsld portlet. +} { + set spec { + name "imsld_portlet" + contract_name "portal_datasource" + owner "imsld-portlet" + aliases { + GetMyName imsld_portlet::get_my_name + GetPrettyName imsld_portlet::get_pretty_name + Link imsld_portlet::link + AddSelfToPage imsld_portlet::add_self_to_page + Show imsld_portlet::show + Edit imsld_portlet::edit + RemoveSelfFromPage imsld_portlet::remove_self_from_page + } + } + + acs_sc::impl::new_from_spec -spec $spec +} + +ad_proc -private imsld_admin_portlet::after_install {} { + Create the datasources needed by the imsld portlet. +} { + + db_transaction { + set ds_id [portal::datasource::new \ + -name "imsld_admin_portlet" \ + -description "IMS LD Admin Portlet"] + + portal::datasource::set_def_param \ + -datasource_id $ds_id \ + -config_required_p t \ + -configured_p t \ + -key shadeable_p \ + -value f + + portal::datasource::set_def_param \ + -datasource_id $ds_id \ + -config_required_p t \ + -configured_p t \ + -key hideable_p \ + -value f + + portal::datasource::set_def_param \ + -datasource_id $ds_id \ + -config_required_p t \ + -configured_p t \ + -key user_editable_p \ + -value f + + portal::datasource::set_def_param \ + -datasource_id $ds_id \ + -config_required_p t \ + -configured_p t \ + -key shaded_p \ + -value f + + portal::datasource::set_def_param \ + -datasource_id $ds_id \ + -config_required_p t \ + -configured_p t \ + -key link_hideable_p \ + -value t + + portal::datasource::set_def_param \ + -datasource_id $ds_id \ + -config_required_p t \ + -configured_p f \ + -key package_id \ + -value "" + + register_portal_datasource_impl + } + +} + + + +ad_proc -private imsld_admin_portlet::register_portal_datasource_impl {} { + Create the service contracts needed by the imsld admin portlet. +} { + set spec { + name "imsld_admin_portlet" + contract_name "portal_datasource" + owner "imsld-portlet" + aliases { + GetMyName imsld_admin_portlet::get_my_name + GetPrettyName imsld_admin_portlet::get_pretty_name + Link imsld_admin_portlet::link + AddSelfToPage imsld_admin_portlet::add_self_to_page + Show imsld_admin_portlet::show + Edit imsld_admin_portlet::edit + RemoveSelfFromPage imsld_admin_portlet::remove_self_from_page + } + } + + acs_sc::impl::new_from_spec -spec $spec +} + +ad_proc -private imsld_portlet::uninstall {} { + IMS LD Portlet package uninstall proc +} { + unregister_implementations + set ds_id [portal::get_datasource_id imsld_portlet] + db_exec_plsql delete_imsld_ds { *SQL* } +} + +ad_proc -private imsld_admin_portlet::uninstall {} { + IMS LD Portlet package uninstall proc +} { + unregister_implementations + set ds_id [portal::get_datasource_id imsld_admin_portlet] + db_exec_plsql delete_admin_ds { *SQL* } +} + +ad_proc -private imsld_portlet::unregister_implementations {} { + Unregister service contract implementations +} { + acs_sc::impl::delete \ + -contract_name "portal_datasource" \ + -impl_name "imsld_portlet" +} + +ad_proc -private imsld_admin_portlet::unregister_implementations {} { + Unregister service contract implementations +} { + acs_sc::impl::delete \ + -contract_name "portal_datasource" \ + -impl_name "imsld_admin_portlet" +} Index: openacs-4/packages/imsld-portlet/www/imsld-admin-portlet.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/imsld-portlet/www/imsld-admin-portlet.adp,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/imsld-portlet/www/imsld-admin-portlet.adp 27 Sep 2005 11:22:47 -0000 1.1 @@ -0,0 +1,3 @@ +<ul> + <li><a href="@url@admin">#imsld-portlet.imsld_admin#</a> +</ul> Index: openacs-4/packages/imsld-portlet/www/imsld-admin-portlet.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/imsld-portlet/www/imsld-admin-portlet.tcl,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/imsld-portlet/www/imsld-admin-portlet.tcl 27 Sep 2005 11:22:47 -0000 1.1 @@ -0,0 +1,26 @@ +# /imsld-portlet/www/imsld-admin-portlet.tcl + +ad_page_contract { + The display logic for the imsld admin portlet + + @author eperez@it.uc3m.es + @creation-date 2005-09-27 + @cvs_id $Id: imsld-admin-portlet.tcl,v 1.1 2005/09/27 11:22:47 eduardop Exp $ +} -properties { + +} + +array set config $cf +set user_id [ad_conn user_id] +set list_of_package_ids $config(package_id) + +if {[llength $list_of_package_ids] > 1} { + # We have a problem! + return -code error "[_ imsld-portlet.error_one_imsld] " +} + +set package_id [lindex $list_of_package_ids 0] + +set url [lindex [site_node::get_url_from_object_id -object_id $package_id] 0] + +ad_return_template Index: openacs-4/packages/imsld-portlet/www/imsld-portlet.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/imsld-portlet/www/imsld-portlet.adp,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/imsld-portlet/www/imsld-portlet.adp 27 Sep 2005 11:22:47 -0000 1.1 @@ -0,0 +1,16 @@ +<if @shaded_p@ false> +<if @one_instance_p@ true> + <include src="/packages/lorsm/lib/user-lorsm" package_id="@list_of_package_ids@" /> +</if> +<else> + +<list name="list_of_package_ids"> + <include src="/packages/lorsm/lib/user-lorsm" package_id="@list_of_package_ids:item@" /> +</list> + +</else> + +</if> +<else> + +</else> Index: openacs-4/packages/imsld-portlet/www/imsld-portlet.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/imsld-portlet/www/imsld-portlet.tcl,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/imsld-portlet/www/imsld-portlet.tcl 27 Sep 2005 11:22:47 -0000 1.1 @@ -0,0 +1,18 @@ +ad_page_contract { + + The logic for the imsld portlet. + + @author eperez@it.uc3m.es + @creation-date 2005-09-27 + @cvs-id $Id: imsld-portlet.tcl,v 1.1 2005/09/27 11:22:47 eduardop Exp $ + +} -query { +} + +array set config $cf + +set shaded_p $config(shaded_p) +set list_of_package_ids [lsort $config(package_id)] +set one_instance_p [ad_decode [llength $list_of_package_ids] 1 1 0] + +ad_return_template