Index: openacs-4/packages/eduwiki/catalog/eduwiki.en_US.ISO-8859-1.xml
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki/catalog/eduwiki.en_US.ISO-8859-1.xml,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki/catalog/eduwiki.en_US.ISO-8859-1.xml 7 Oct 2009 19:11:52 -0000 1.1
@@ -0,0 +1,119 @@
+
+
+
+ Eduwiki Activities
+ Activities by other groups
+ Eduwiki activities by other students
+ Activity Index
+ View activity related pages
+ Add Eduwiki Activity
+ New Group
+ Add Member
+ Add Group
+ Group creation
+ Admin
+ at
+ Go Back
+ Cancel
+ Group can't be deleted, It's related with Eduwiki Tasks
+ Category
+ Close Date
+ Close Date must be after current date
+ Close Date must be after Start Date
+ Close time
+ Community Members
+ Class Members
+ Comparing
+ Content
+ Delete Group
+ Delete this page ...
+ Description not available
+ diff
+ Differences for: %page_title%
+ Hide
+ Edit Eduwiki Task
+ Edit Eduwiki Page
+ Creator
+ Description
+ This is the default start page of Eduwiki.
+ In this page you will find your Activity Index.
+ Related Eduwiki Pages to this Activity
+ Eduwiki Pages Administration
+ Educational Wiki
+ Student
+ Students not in activity
+ Eduwiki Activity Description
+ Activity Pages
+ Eduwiki Administration
+ Title
+ Eduwiki Task
+ Enabled
+ Finish
+ Function mode
+ Groups Administration
+ Group Wiki
+ Group member added
+ Group member removed
+ Group Members
+ Group name
+ Available Groups
+ Groups Administration
+ Group Members
+ Selected Groups for Activity
+ Final date to edit Eduwiki Pages
+ If you select Yes, all class members will be able to edit the pages. If you select No, only Wiki owner will edit the page.
+ This is the date to start editing the Wiki Pages.
+ Hide Groups display
+ Index
+ Eduwiki Index
+ Live Revision
+ You must select one group to add members
+ Can owner (student, group, teacher) create new wiki pages?
+ Will the Wiki be editable by all members of the class?
+ Will the Wiki be editable by members of the group?
+ Will the Wiki be editable by the student?
+ Will the Wiki be visible by all members of the class?
+ Will this wiki require a grade on the class?
+ Make this Revision Current
+ modified by
+ New Page
+ No
+ No groups
+ No selected groups
+ No available groups
+ No available members
+ No members for group
+ No selected group
+ Wiki Title
+ There are not available pages for this Eduwiki Task
+ points
+ Start date must be after current date
+ Start Date
+ Start time
+ Remove Member
+ Remove Group
+ Revisions history:
+ Save
+ Save Group
+ Please, choose one Eduwiki Activity
+ Select Groups
+ Show revisions of this page ...
+ Separate Groups
+ Add student to activity
+ Student Wiki
+ Students Administration
+ Eduwiki task Groups
+ Teacher Wiki
+ No Eduwiki Activity available
+ Version
+ View activities by other groups and activity description
+ View activities by other students and activity description
+ View activity description
+ Current Live Revision
+ View Item
+ Visible Groups
+ You must let all users to view pages to let them edit pages
+ Wiki Type
+ with
+ Yes
+
Index: openacs-4/packages/eduwiki/catalog/eduwiki.es_ES.ISO-8859-1.xml
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki/catalog/eduwiki.es_ES.ISO-8859-1.xml,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki/catalog/eduwiki.es_ES.ISO-8859-1.xml 7 Oct 2009 19:11:52 -0000 1.1
@@ -0,0 +1,121 @@
+
+
+
+ Actividades Eduwiki
+ Actividad de otros grupos
+ Actividad de otros estudiantes
+ �ndice de Actividad
+ Ver p�ginas relacionadas
+ Agregar actividad Eduwiki
+ Crear Grupo
+ Agregar Miembro
+ Agregar Grupo
+ Creaci�n de Grupo
+ Administrar
+ en la fecha
+ Regresar
+ Cancelar
+ El grupo no pudo ser borrado. Est� relacionado con otras actividades de Eduwiki.
+ Categor�a
+ Fecha de Finalizaci�n
+ La fecha de Fin de la actividad debe ser mayor a la fecha actual
+ La fecha de finalizaci�n debe ser mayor a la fecha de inicio
+ Hora de Finalizaci�n
+ Miembros del Curso
+ Miembros del Curso
+ Comparaci�n de versiones
+ Contenido
+ Eliminar Grupo
+ Eliminar esta p�gina ...
+ Descripci�n no disponible
+ diferencias
+ Diferencias para: %page_title%
+ Ocultar
+ Editar actividad Eduwiki
+ Editar P�gina Eduwiki
+ Autor
+ Descripci�n
+ Esta es la p�gina de Inicio de Eduwiki, en esta p�gina encontrar� el �ndice de P�ginas creadas para la actividad de Eduwiki, seg�n el tipo de Actividad
+asignada por el catedr�tico usted tendr� la opci�n de Crear o Editar P�ginas.
+ A continuaci�n econtrar� el listado de actividades disponibles y el listado de p�ginas de su actividad.
+ P�ginas relacionadas con Actividad
+ Administraci�n de P�ginas Eduwiki
+ Wiki Educativo
+ Estudiante
+ Estudiantes no asociados a la actividad
+ Descripci�n de la Actividad
+ P�ginas de Actividad Eduwiki
+ Administraci�n Eduwiki
+ T�tulo
+ Actividad Eduwiki
+ Mostrar
+ Finalizar
+ Modo de Funci�n
+ Administraci�n de Grupos
+ Wiki de Grupos
+ Miembro del Grupo Agregado
+ Miembro del Grupo removido
+ Miembros del grupo
+ Nombre de grupo
+ Grupos Disponibles
+ Administraci�n de Grupos
+ Miembros del Grupo
+ Grupos Seleccionados para Actividad
+ Luego de esta fecha la edici�n de p�ginas para la actividad ser� deshabilitada (No es requerida)
+ Al seleccionar S�, todos los miembros del curso podr�n editar la p�gina, de lo contrario, �nicamente el due�o de la p�gina podr� editar.
+
+ Fecha que indica el inicio del per�odo para editar la actividad (No es requerida)
+ Esconder vista de Administraci�n de Grupos
+ �ndice
+ �ndice Eduwiki
+ Versi�n Activa
+ Debe seleccionar un grupo para agregar usuarios
+ �El due�o del wiki podr� crear nuevas p�ginas?
+ �Ser� el wiki editable por todos los miembros de la clase?
+ �Ser� el wiki editable por los miembros del grupo?
+ �Ser� el Wiki editable por el estudiante?
+ �El Wiki ser� visible por todos los miembros de la clase?
+ �El Wiki tendr� una nota asociada?
+ Marcar como versi�n activa
+ modificada por
+ Nueva P�gina
+ No
+ Sin Grupos
+ No hay grupos para la actividad
+ No hay grupos disponibles
+ No hay miembros disponibles
+ El grupo no tiene miembros
+ No hay grupo seleccionado
+ T�tulo de P�gina
+ No hay p�ginas disponibles para esta actividad
+ puntos
+ La fecha de inicio de la actividad debe ser mayor a la fecha actual
+ Fecha de Inicio
+ Hora de Inicio
+ Remover Miembro
+ Remover Grupo
+ Historial de modificaciones:
+ Guardar
+ Guardar Grupo
+ Debe seleccionar una Actividad de Eduwiki
+ Seleccionar Grupos
+ Mostrar versiones de esta p�gina ...
+ Grupos Separados
+ Asociar estudiante a la actividad
+ Wiki de Estudiante
+ Administraci�n de Estudiantes
+ Grupos de actividad Eduwiki
+ Wiki de Profesor
+ No hay actividades Eduwiki disponibles
+ Versi�n
+ Ver actividades de otros grupos y descripci�n de la actividad
+ Ver actividades de otros alumnos y descripci�n de actividad
+ Ver descripci�n de la Actividad
+ Versi�n Activa actual
+ Ver P�gina
+ Grupos Visibles
+ Debe habilitar que todos los alumnos puedan ver las p�ginas para permitir que editen las mismas.
+ Tipo de Eduwiki
+ con
+ S�
+
Index: openacs-4/packages/eduwiki/catalog/eduwiki.es_GT.ISO-8859-1.xml
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki/catalog/eduwiki.es_GT.ISO-8859-1.xml,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki/catalog/eduwiki.es_GT.ISO-8859-1.xml 7 Oct 2009 19:11:52 -0000 1.1
@@ -0,0 +1,121 @@
+
+
+
+ Actividades Eduwiki
+ Actividad de otros grupos
+ Actividad de otros estudiantes
+ �ndice de Actividad
+ Ver p�ginas relacionadas
+ Agregar actividad Eduwiki
+ Crear Grupo
+ Agregar Miembro
+ Agregar Grupo
+ Creaci�n de Grupo
+ Administrar
+ en la fecha
+ Regresar
+ Cancelar
+ El grupo no pudo ser borrado. Est� relacionado con otras actividades de Eduwiki.
+ Categor�a
+ Fecha de Finalizaci�n
+ La fecha de Fin de la actividad debe ser mayor a la fecha actual
+ La fecha de finalizaci�n debe ser mayor a la fecha de inicio
+ Hora de Finalizaci�n
+ Miembros del Curso
+ Miembros del Curso
+ Comparaci�n de versiones
+ Contenido
+ Eliminar Grupo
+ Eliminar esta p�gina ...
+ Descripci�n no disponible
+ diferencias
+ Diferencias para: %page_title%
+ Ocultar
+ Editar actividad Eduwiki
+ Editar P�gina Eduwiki
+ Autor
+ Descripci�n
+ Esta es la p�gina de Inicio de Eduwiki, en esta p�gina encontrar� el �ndice de P�ginas creadas para la actividad de Eduwiki, seg�n el tipo de Actividad
+asignada por el catedr�tico usted tendr� la opci�n de Crear o Editar P�ginas.
+ A continuaci�n econtrar� el listado de actividades disponibles y el listado de p�ginas de su actividad.
+ P�ginas relacionadas con Actividad
+ Administraci�n de P�ginas Eduwiki
+ Wiki Educativo
+ Estudiante
+ Estudiantes no asociados a la actividad
+ Descripci�n de la Actividad
+ P�ginas de Actividad Eduwiki
+ Administraci�n Eduwiki
+ T�tulo
+ Actividad Eduwiki
+ Mostrar
+ Finalizar
+ Modo de Funci�n
+ Administraci�n de Grupos
+ Wiki de Grupos
+ Miembro del Grupo Agregado
+ Miembro del Grupo removido
+ Miembros del grupo
+ Nombre de grupo
+ Grupos Disponibles
+ Administraci�n de Grupos
+ Miembros del Grupo
+ Grupos Seleccionados para Actividad
+ Luego de esta fecha la edici�n de p�ginas para la actividad ser� deshabilitada (No es requerida)
+ Al seleccionar S�, todos los miembros del curso podr�n editar la p�gina, de lo contrario, �nicamente el due�o de la p�gina podr� editar.
+
+ Fecha que indica el inicio del per�odo para editar la actividad (No es requerida)
+ Esconder vista de Administraci�n de Grupos
+ �ndice
+ �ndice Eduwiki
+ Versi�n Activa
+ Debe seleccionar un grupo para agregar usuarios
+ �El due�o del wiki podr� crear nuevas p�ginas?
+ �Ser� el wiki editable por todos los miembros de la clase?
+ �Ser� el wiki editable por los miembros del grupo?
+ �Ser� el Wiki editable por el estudiante?
+ �El Wiki ser� visible por todos los miembros de la clase?
+ �El Wiki tendr� una nota asociada?
+ Marcar como versi�n activa
+ modificada por
+ Nueva P�gina
+ No
+ Sin Grupos
+ No hay grupos para la actividad
+ No hay grupos disponibles
+ No hay miembros disponibles
+ El grupo no tiene miembros
+ No hay grupo seleccionado
+ T�tulo de P�gina
+ No hay p�ginas disponibles para esta actividad
+ puntos
+ La fecha de inicio de la actividad debe ser mayor a la fecha actual
+ Fecha de Inicio
+ Hora de Inicio
+ Remover Miembro
+ Remover Grupo
+ Historial de modificaciones:
+ Guardar
+ Guardar Grupo
+ Debe seleccionar una Actividad de Eduwiki
+ Seleccionar Grupos
+ Mostrar versiones de esta p�gina ...
+ Grupos Separados
+ Asociar estudiante a la actividad
+ Wiki de Estudiante
+ Administraci�n de Estudiantes
+ Grupos de actividad Eduwiki
+ Wiki de Profesor
+ No hay actividades Eduwiki disponibles
+ Versi�n
+ Ver actividades de otros grupos y descripci�n de la actividad
+ Ver actividades de otros alumnos y descripci�n de actividad
+ Ver descripci�n de la Actividad
+ Versi�n Activa actual
+ Ver P�gina
+ Grupos Visibles
+ Debe habilitar que todos los alumnos puedan ver las p�ginas para permitir que editen las mismas.
+ Tipo de Eduwiki
+ con
+ S�
+
Index: openacs-4/packages/eduwiki/tcl/apm-callback-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki/tcl/apm-callback-procs.tcl,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki/tcl/apm-callback-procs.tcl 7 Oct 2009 19:11:52 -0000 1.1
@@ -0,0 +1,88 @@
+# /packages/eduwiki/tcl/apm-callback-procs.tcl
+
+ad_library {
+
+ @author Hector Amado (hr_amado@galileo.edu)
+ @creation-date 2009-07-22
+}
+
+::xo::db::require package xowiki
+
+namespace eval eduwiki::apm {}
+
+ad_proc -public eduwiki::apm::after_mount {
+ {-package_id:required}
+ {-node_id:required}
+} {
+ Set eduwiki pages permissions
+} {
+
+ ::xowiki::Package initialize -package_id $package_id
+
+ # set eduwiki permissions
+ if { [permission::inherit_p -object_id $package_id] } {
+ permission::toggle_inherit -object_id $package_id
+ }
+
+ # set admin_rels
+ set sw_group_id [application_group::group_id_from_package_id -package_id [ad_conn subsite_id]]
+ set rel_id [group::get_rel_segment -group_id $sw_group_id -type admin_rel]
+ permission::grant -object_id $package_id -party_id $rel_id -privilege admin
+
+ # set dotlrn_admin_rel
+ set comm_id [dotlrn_community::get_community_id]
+ set rel_id [group::get_rel_segment -group_id $comm_id -type dotlrn_admin_rel]
+ permission::grant -object_id $package_id -party_id $rel_id -privilege admin
+
+ # set dotlrn_member_rel
+ set rel_id [group::get_rel_segment -group_id $comm_id -type dotlrn_member_rel]
+ permission::grant -object_id $package_id -party_id $rel_id -privilege read
+
+ set root_directory [get_server_root]
+ set prototypes_path "$root_directory/packages/eduwiki/www/prototypes"
+ set folder_id [content::folder::get_folder_from_package \
+ -package_id $package_id]
+
+ # set object_id
+ set folder_object_id [content::item::get_id_by_name \
+ -name "::$folder_id"\
+ -parent_id $folder_id]
+ set p [::xowiki::Package instantiate_page_from_id -item_id $folder_object_id]
+ set editor_page [source "${prototypes_path}/editor.page"]
+ $p set text [$editor_page set text]
+ $p save
+
+ # set index
+ set index "$prototypes_path/index.page"
+ set lang_prefix [string range [lang::system::locale] 0 1]
+ set index_name "${lang_prefix}:index"
+ if {[file readable $index]} {
+ set page [source $index]
+ $page configure -name $index_name \
+ -parent_id $folder_id -package_id $package_id
+ $page set nls_language [lang::system::locale]
+ $page destroy_on_cleanup
+ $page initialize_loaded_object
+ $page save_new
+ set item_id [$page set item_id]
+ #set index permissions
+ if { [permission::inherit_p -object_id $item_id] } {
+ permission::toggle_inherit -object_id $item_id
+ }
+
+ # set admin_rels
+ set sw_group_id [application_group::group_id_from_package_id -package_id [ad_conn subsite_id]]
+ set rel_id [group::get_rel_segment -group_id $sw_group_id -type admin_rel]
+ permission::grant -object_id $item_id -party_id $rel_id -privilege admin
+
+ # set dotlrn_admin_rel
+ set comm_id [dotlrn_community::get_community_id]
+ set rel_id [group::get_rel_segment -group_id $comm_id -type dotlrn_admin_rel]
+ permission::grant -object_id $item_id -party_id $rel_id -privilege read
+
+ # set dotlrn_member_rel
+ set rel_id [group::get_rel_segment -group_id $comm_id -type dotlrn_member_rel]
+ permission::grant -object_id $item_id -party_id $rel_id -privilege read
+ }
+}
+
Index: openacs-4/packages/eduwiki/tcl/eduwiki-includelet-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki/tcl/eduwiki-includelet-procs.tcl,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki/tcl/eduwiki-includelet-procs.tcl 7 Oct 2009 19:11:52 -0000 1.1
@@ -0,0 +1,447 @@
+# /packages/eduwiki/tcl/eduwiki-includelet-procs.tcl
+
+::xo::library doc {
+ Eduwiki - includelet definitions
+
+ @author Hector Amado (hr_amado@galileo.edu)
+ @creation-date 2009-07-16
+ @cvs-id $Id $
+}
+
+::xo::db::require package xowiki
+
+namespace eval ::xowiki::includelet {
+ #
+ # Define additional elements for includelets
+ # eduwiki-activities-pages
+ # activity-pages
+ # activity-info
+
+ #
+ # Create an includelet called eduwiki-activities-pages, to present the pages for the activity
+ #
+
+ ::xowiki::IncludeletClass create eduwiki-activities-pages \
+ -superclass ::xowiki::Includelet \
+ -parameter {
+ {title "#eduwiki.activities#"}
+ {parameter_declaration {
+ {-eduwiki_id ""}
+ {-orderby "title,desc"}
+ {-menu_buttons edit}
+ {-locale ""}
+ {-range ""}
+ }}
+ }
+
+ eduwiki-activities-pages instproc render {} {
+ my get_parameters
+
+ my instvar __including_page
+ ::xo::Page requireCSS "/resources/acs-templating/lists.css"
+ set admin_p [::xo::cc permission -object_id $package_id -privilege admin \
+ -party_id [::xo::cc set untrusted_user_id]]
+ set show_heritage $admin_p
+
+ lappend ::xowiki_page_item_id_rendered [$__including_page item_id]
+ $__including_page set __is_book_page 1
+
+ foreach {locale locale_clause} \
+ [::xowiki::Includelet locale_clause -revisions p -items p $package_id $locale] break
+
+ set return_url [::xo::cc url]
+ # eduwiki_category
+ set ecategory ""
+
+ if { ![empty_string_p $eduwiki_id] } {
+ # show activity related pages
+ if {[::xo::db::Class exists_in_db -id $eduwiki_id]} {
+ set eduwiki_item_id [::eduwiki::EduwikiTask get_instance_from_db -item_id $eduwiki_id]
+ set ecategory [$eduwiki_item_id set eduwiki_category]
+ }
+
+ TableWidget index -volatile \
+ -actions "" \
+ -columns {
+ AnchorField title -label "[_ eduwiki.Eduwiki_Title_]" -orderby title
+ Field creator -label "[_ eduwiki.Eduwiki_creator_]" -orderby creator
+ }
+
+ foreach {att order} [split $orderby ,] break
+ index orderby -order [expr {$order eq "asc" ? "increasing" : "decreasing"}] $att
+
+ #
+ # The query selects all Eduwiki Pages from the Package specific folder.
+ # Per default the following attributes are retrieved:
+ # - item_id, name, publish_status, and object_type.
+ #
+ set folder_id [$package_id folder_id]
+ set where_clause "e.page_id = ci.item_id and e.index_p = 't'"
+ if { ![empty_string_p $eduwiki_id] } {
+ append where_clause " and e.eduwiki_id = :eduwiki_id"
+ }
+ # check publish_status
+ append where_clause " and ci.publish_status = 'ready'"
+
+ db_foreach instance_select \
+ [::xowiki::Page instance_select_query \
+ -parent_id $folder_id \
+ -from_clause ", eduwiki_pages_map e" \
+ -select_attributes [list "bt.revision_id as page_id" title creation_user party_id ]\
+ -where_clause $where_clause \
+ ] {
+
+ if { [permission::permission_p -object_id $item_id -privilege read] } {
+ set page_url "./$name"
+ if {![empty_string_p $party_id] } {
+ set creator [eduwiki::get_party_name -party_id $party_id]
+ } else {
+ set creator ""
+ }
+ index add \
+ -title $title \
+ -title.href [export_vars -base $page_url {{m view}}] \
+ -creator $creator
+ }
+ }
+ } else {
+ my set title "#eduwiki.activities#"
+ # show eduwiki activities
+ TableWidget index -volatile \
+ -actions "" \
+ -columns {
+ AnchorField title -label "[_ eduwiki.Eduwiki_Title_]" -orderby title
+ }
+ foreach {att order} [split $orderby ,] break
+ index orderby -order [expr {$order eq "asc" ? "increasing" : "decreasing"}] $att
+ set folder_id [$package_id folder_id]
+ set user_id [::xo::cc user_id]
+
+ db_foreach instance_select \
+ [::eduwiki::EduwikiTask instance_select_query \
+ -parent_id $package_id \
+ -from_clause ", eduwiki_tasks e" \
+ -select_attributes [list "object_id as eduwiki_id" title eduwiki_category creation_user \
+ "to_char(release_date,'DD-MM-YYYY HH24:MI:SS') as release_date" \
+ "to_char(close_date,'DD-MM-YYYY HH24:MI:SS') as close_date"]\
+ -where_clause "e.eduwiki_id = acs_objects.object_id and ci.publish_status = 'ready'" \
+ ] {
+
+ set page_url [eduwiki::get_best_eduwiki_page_url -eduwiki_id $item_id \
+ -user_id $user_id \
+ -folder_id $folder_id \
+ -eduwiki_category $eduwiki_category]
+ if {[empty_string_p $page_url]} {
+ set page_url "./"
+ set page_url [export_vars -base $page_url {{eduwiki_id $item_id}}]
+ } else {
+ set page_url "./$page_url"
+ set page_url [export_vars -base $page_url {{m view}}]
+ }
+
+
+ index add \
+ -title $title \
+ -title.href $page_url
+ }
+
+ }
+
+ if { [llength [$index children]] } {
+ if { ![empty_string_p $eduwiki_id] } {
+ if {$ecategory == "student"} {
+ my set title #eduwiki.activities_by_other_students#
+ }
+ if {$ecategory == "group"} {
+ my set title #eduwiki.activities_by_other_groups#
+ }
+ }
+
+ return [index asHTML]
+
+ } else {
+ return "[_ eduwiki.There_are_not_eduwiki_activities]"
+ }
+
+ }
+######
+## activity-pages
+
+ ::xowiki::IncludeletClass create activity-pages \
+ -superclass ::xowiki::Includelet \
+ -parameter {
+ {title "#eduwiki.Eduwiki_task_Pages#"}
+ {parameter_declaration {
+ {-eduwiki_id ""}
+ {-party_id ""}
+ {-orderby "title,desc"}
+ {-menu_buttons edit}
+ {-locale ""}
+ {-range ""}
+ }}
+ }
+
+ activity-pages instproc render {} {
+ my get_parameters
+
+ my instvar __including_page
+ ::xo::Page requireCSS "/resources/acs-templating/lists.css"
+ template::head::add_css -href "/resources/eduwiki/xowiki.css"
+ set admin_p [::xo::cc permission -object_id $package_id -privilege admin \
+ -party_id [::xo::cc set untrusted_user_id]]
+ set show_heritage $admin_p
+ set activity_pages_p 0
+
+ lappend ::xowiki_page_item_id_rendered [$__including_page item_id]
+ $__including_page set __is_book_page 1
+
+ set page_item_id [$__including_page item_id]
+ #set party_id
+ if {![empty_string_p $page_item_id]} {
+ if {[empty_string_p $eduwiki_id]} {
+ set eduwiki_id [eduwiki::get_eduwiki_task_id -page_item_id $page_item_id]
+ }
+
+ if {![empty_string_p $eduwiki_id] && [empty_string_p $party_id] } {
+ set party_id [eduwiki::get_eduwiki_party_id -eduwiki_id $eduwiki_id -page_item_id $page_item_id]
+ }
+
+ }
+ # check for index activity page
+ if {![empty_string_p $page_item_id] && ![empty_string_p $eduwiki_id]} {
+ set index_eduwiki_id [eduwiki::get_eduwiki_task_id -page_item_id $page_item_id]
+ if { [empty_string_p $index_eduwiki_id] } {
+ set activity_pages_p 1
+ }
+ }
+
+
+ foreach {locale locale_clause} \
+ [::xowiki::Includelet locale_clause -revisions p -items p $package_id $locale] break
+
+ set return_url [::xo::cc url]
+
+ if { !$activity_pages_p } {
+
+ TableWidget index -volatile \
+ -actions "" \
+ -columns {
+ AnchorField title -label "[_ eduwiki.Page_Title_]"
+ }
+
+ #
+ # The query selects all Eduwiki Pages from the Activity
+ # Per default the following attributes are retrieved:
+ # - item_id, name, publish_status, and object_type.
+ #
+ set folder_id [$package_id folder_id]
+ set where_clause "e.page_id = ci.item_id"
+ set eduwiki_category "professor"
+ if { ![empty_string_p $eduwiki_id] } {
+ append where_clause " and e.eduwiki_id = :eduwiki_id"
+ }
+ if { ![empty_string_p $party_id] } {
+ append where_clause " and e.party_id = :party_id"
+ }
+ if { ![empty_string_p $eduwiki_id] } {
+ # get eduwiki_category
+ set eduwiki_task_id [content::item::get_live_revision -item_id $eduwiki_id]
+ if {![empty_string_p $eduwiki_task_id]} {
+ set data_id [::xo::db::CrClass get_instance_from_db -revision_id $eduwiki_task_id]
+ set eduwiki_category [$data_id set eduwiki_category]
+ }
+ }
+
+ # check publish_status
+ append where_clause " and ci.publish_status = 'ready'"
+
+ set user_id [::xo::cc user_id]
+ db_foreach instance_select \
+ [::xowiki::Page instance_select_query \
+ -parent_id $folder_id \
+ -from_clause ", eduwiki_pages_map e" \
+ -select_attributes [list "bt.revision_id as page_id" title creation_user "e.party_id as creator_id" index_p]\
+ -where_clause $where_clause \
+ ] {
+
+ if { [permission::permission_p -object_id $item_id -privilege read] } {
+ set page_url "./$name"
+ if { $index_p } {
+ if {![empty_string_p $creator_id] } {
+ set creator [eduwiki::get_party_name -party_id $creator_id]
+ } else {
+ set creator ""
+ }
+ } else {
+ if {![empty_string_p $creation_user] } {
+ set creator [eduwiki::get_party_name -party_id $creation_user]
+ } else {
+ set creator ""
+ }
+ }
+
+ if { ![empty_string_p $party_id] } {
+ index add \
+ -title $title \
+ -title.href [export_vars -base $page_url {{m view}}]
+ } else {
+ if { $eduwiki_category == "professor" } {
+ #category professor
+ index add \
+ -title $title \
+ -title.href [export_vars -base $page_url {{m view}}]
+ } elseif { $eduwiki_category == "student" } {
+ #category student
+ if { $user_id == $creator_id } {
+ index add \
+ -title $title \
+ -title.href [export_vars -base $page_url {{m view}}]
+ }
+ } else {
+ #category group , check if member
+ if {[group::member_p -user_id $user_id -group_id $creator_id]} {
+ index add \
+ -title $title \
+ -title.href [export_vars -base $page_url {{m view}}]
+ }
+ }
+ }
+ }
+ }
+ } else {
+
+ my set title "#eduwiki.activities#"
+ # show eduwiki activities
+ TableWidget index -volatile \
+ -actions "" \
+ -columns {
+ AnchorField title -label "[_ eduwiki.Eduwiki_Title_]" -orderby title
+ }
+ foreach {att order} [split $orderby ,] break
+ index orderby -order [expr {$order eq "asc" ? "increasing" : "decreasing"}] $att
+ set folder_id [$package_id folder_id]
+ set user_id [::xo::cc user_id]
+
+ db_foreach instance_select \
+ [::eduwiki::EduwikiTask instance_select_query \
+ -parent_id $package_id \
+ -from_clause ", eduwiki_tasks e" \
+ -select_attributes [list "object_id as eduwiki_id" title eduwiki_category creation_user \
+ "to_char(release_date,'DD-MM-YYYY HH24:MI:SS') as release_date" \
+ "to_char(close_date,'DD-MM-YYYY HH24:MI:SS') as close_date"]\
+ -where_clause "e.eduwiki_id = acs_objects.object_id and ci.publish_status = 'ready'" \
+ ] {
+
+ set page_url [eduwiki::get_best_eduwiki_page_url -eduwiki_id $item_id \
+ -user_id $user_id \
+ -folder_id $folder_id \
+ -eduwiki_category $eduwiki_category]
+ if {[empty_string_p $page_url]} {
+ set page_url "./"
+ set page_url [export_vars -base $page_url {{eduwiki_id $item_id}}]
+ } else {
+ set page_url "./$page_url"
+ set page_url [export_vars -base $page_url {{m view}}]
+ }
+
+
+ index add \
+ -title $title \
+ -title.href $page_url
+ }
+
+ }
+
+ set output ""
+ if { ![empty_string_p $eduwiki_id] } {
+ if { [llength [$index children]] } {
+ set output [index asHTML]
+ #append autor
+ if {![empty_string_p $party_id] } {
+ set creator [eduwiki::get_party_name -party_id $party_id]
+ append output "#eduwiki.Eduwiki_creator_#: $creator
"
+ }
+ set description_link [$package_id make_link -privilege public -link "" $package_id {} eduwiki_id party_id]
+ set title_desc_link "#eduwiki.View_activity_description#"
+ if { $eduwiki_category == "student"} {
+ set title_desc_link "#eduwiki.view_activities_by_other_students#"
+ }
+ if { $eduwiki_category == "group"} {
+ set title_desc_link "#eduwiki.view_activities_by_other_groups#"
+ }
+ append output "
$title_desc_link
"
+ if { $activity_pages_p } {
+ set output [index asHTML]
+ }
+
+ return $output
+ } else {
+ return "[_ eduwiki.select_eduwiki_to_see_pages]"
+ }
+ } else {
+ return "[_ eduwiki.select_eduwiki_to_see_pages]"
+ }
+
+ }
+
+######
+## activity-info
+
+ ::xowiki::IncludeletClass create activity-info \
+ -superclass ::xowiki::Includelet \
+ -parameter {
+ {__decoration portlet}
+ {title "#eduwiki.Eduwiki_task_Info#"}
+ {parameter_declaration {
+ {-eduwiki_id ""}
+ {-menu_buttons edit}
+ {-locale ""}
+ {-range ""}
+ }}
+ }
+
+ activity-info instproc render {} {
+ my get_parameters
+
+ my instvar __including_page
+ ::xo::Page requireCSS "/resources/acs-templating/lists.css"
+ set admin_p [::xo::cc permission -object_id $package_id -privilege admin \
+ -party_id [::xo::cc set untrusted_user_id]]
+ set show_heritage $admin_p
+
+ lappend ::xowiki_page_item_id_rendered [$__including_page item_id]
+ $__including_page set __is_book_page 1
+
+ foreach {locale locale_clause} \
+ [::xowiki::Includelet locale_clause -revisions p -items p $package_id $locale] break
+
+ set return_url [::xo::cc url]
+ set output ""
+ if {[exists_and_not_null eduwiki_id] && [::xo::db::Class exists_in_db -id $eduwiki_id]} {
+ set eduwiki_id [::eduwiki::EduwikiTask get_instance_from_db -item_id $eduwiki_id]
+ set description [$eduwiki_id set description]
+ set title [$eduwiki_id set title]
+ set eduwiki_category [$eduwiki_id set eduwiki_category]
+ set release_date [$eduwiki_id set release_date]
+ set close_date [$eduwiki_id set close_date]
+ append output "#eduwiki.Eduwiki_Title_# : $title
"
+
+ append output "#eduwiki.Eduwiki_Descripti# : "
+ if { [llength $description] == 2 } {
+ set contents [lindex $description 0]
+ set format [lindex $description 1]
+ # if format is specified
+ append output $contents
+ return $output
+ }
+ append output $description
+ return $output
+ } else {
+ my set title "#eduwiki.IndexPage#"
+ return "[_ eduwiki.Eduwiki_instructions]"
+ }
+
+ }
+
+######
+}
Index: openacs-4/packages/eduwiki/tcl/eduwiki-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki/tcl/eduwiki-procs.tcl,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki/tcl/eduwiki-procs.tcl 7 Oct 2009 19:11:52 -0000 1.1
@@ -0,0 +1,177 @@
+# /packages/eduwiki/tcl/eduwiki-procs.tcl
+
+::xo::library doc {
+
+ Eduwiki package procs
+
+ @author Hector Amado (hr_amado@galileo.edu)
+ @creation-date 2009-06-01
+}
+
+namespace eval ::eduwiki {}
+
+ad_proc -public eduwiki::create_page {
+ {-page_title ""}
+ {-page_name ""}
+} {
+ set package_id [ad_conn package_id]
+ ::xowiki::Package initialize -package_id $package_id
+ set folder_id [::xowiki::Page require_folder -name xowiki \
+ -package_id $package_id]
+ set page [::xowiki::Page new]
+ set object_type "::xowiki::Page"
+ set lang_prefix [string range [lang::system::locale] 0 1]
+ set page_index [db_string page_index [$object_type instance_select_query -folder_id $folder_id -with_subtypes false -from_clause ",xowiki_page p" -where_clause "p.page_id = bt.revision_id" -count true]]
+ if { [empty_string_p $page_name] } {
+ set page_name "${lang_prefix}:page_[incr page_index]"
+ }
+ if {[db_string select_name { select 1 from cr_items where name = :page_name and parent_id = :folder_id} -default 0]} {
+ set page_name "${lang_prefix}:page_[incr page_index]_[format %0.0f [expr [random]* 10]]_[format \
+ %0.0f [expr [random] * 10]]"
+ }
+ $page configure -name $page_name -parent_id $folder_id \
+ -package_id $package_id
+
+ if {![empty_string_p $page_title]} {
+ $page set title $page_title
+ }
+
+ $page set nls_language [lang::system::locale]
+
+ $page destroy_on_cleanup
+ $page initialize_loaded_object
+ set page_id [$page save_new]
+ set page_item_id [$page set item_id]
+ return [list $page_item_id $page_name]
+}
+
+ad_proc -public eduwiki::set_eduwiki_permissions {
+ -eduwiki_page_id:required
+ {-party_id 0}
+ {-eduwiki_category "professor"}
+ {-eduwiki_visible_all_p "t"}
+ {-eduwiki_editable_all_p "t"}
+ {-eduwiki_create_all_p "t"}
+ {-eduwiki_index_p "f"}
+} {
+
+ # set eduwiki permissions
+
+ # group or individual, party_id used
+ if { [permission::inherit_p -object_id $eduwiki_page_id] } {
+ permission::toggle_inherit -object_id $eduwiki_page_id
+ }
+ # set admin_rels
+ set sw_group_id [application_group::group_id_from_package_id -package_id [ad_conn subsite_id]]
+ set rel_id [group::get_rel_segment -group_id $sw_group_id -type admin_rel]
+ permission::grant -object_id $eduwiki_page_id -party_id $rel_id -privilege admin
+
+ # set dotlrn_admin_rel
+ set comm_id [dotlrn_community::get_community_id]
+ set rel_id [group::get_rel_segment -group_id $comm_id -type dotlrn_admin_rel]
+ # if index_p dotlrn_admin_rel can't delete page
+ if { !$eduwiki_index_p } {
+ permission::grant -object_id $eduwiki_page_id -party_id $rel_id -privilege admin
+ } else {
+ permission::grant -object_id $eduwiki_page_id -party_id $rel_id -privilege read
+ permission::grant -object_id $eduwiki_page_id -party_id $rel_id -privilege write
+ permission::grant -object_id $eduwiki_page_id -party_id $rel_id -privilege create
+ }
+
+ # set dotlrn_member_rel
+ set rel_id [group::get_rel_segment -group_id $comm_id -type dotlrn_member_rel]
+ permission::revoke -object_id $eduwiki_page_id -party_id $rel_id -privilege read
+ if { $eduwiki_visible_all_p } {
+ permission::grant -object_id $eduwiki_page_id -party_id $rel_id -privilege read
+ }
+
+ # professor
+ if { $eduwiki_category == "professor" } {
+ permission::revoke -object_id $eduwiki_page_id -party_id $rel_id -privilege write
+ if { $eduwiki_editable_all_p } {
+ permission::grant -object_id $eduwiki_page_id -party_id $rel_id -privilege write
+ }
+ }
+
+ # working with party_id
+ if { $party_id > 0 } {
+ permission::grant -object_id $eduwiki_page_id -party_id $party_id -privilege read
+ # ownwer can edit by default
+ permission::grant -object_id $eduwiki_page_id -party_id $party_id -privilege write
+
+ permission::revoke -object_id $eduwiki_page_id -party_id $rel_id -privilege write
+ if { $eduwiki_editable_all_p } {
+ # can all members edit the page
+ permission::grant -object_id $eduwiki_page_id -party_id $rel_id -privilege write
+ }
+ permission::revoke -object_id $eduwiki_page_id -party_id $party_id -privilege create
+ if { $eduwiki_create_all_p } {
+ permission::grant -object_id $eduwiki_page_id -party_id $party_id -privilege create
+ }
+ }
+
+}
+
+ad_proc -public eduwiki::get_eduwiki_task_id {
+ -page_item_id:required
+} {
+ return [db_string get_eduwiki_task_id { *SQL* } -default ""]
+}
+
+ad_proc -public eduwiki::get_eduwiki_party_id {
+ -eduwiki_id:required
+ -page_item_id:required
+} {
+ return [db_string get_eduwiki_party_id { *SQL* } -default ""]
+}
+
+ad_proc -public eduwiki::get_party_name {
+ -party_id:required
+} {
+ set object_type [db_string get_object_type { *SQL* } -default ""]
+ if {![empty_string_p $object_type]} {
+ if { $object_type == "user" } {
+ return [db_string get_user_party_name { *SQL* } -default ""]
+ } elseif { $object_type == "group" } {
+ return [db_string get_group_party_name { *SQL* } -default ""]
+ }
+ }
+ return ""
+}
+
+ad_proc -public eduwiki::get_best_eduwiki_page_url {
+ -eduwiki_id:required
+ -user_id:required
+ -eduwiki_category:required
+ -folder_id:required
+} {
+
+ set where_clause "e.page_id = ci.item_id and e.eduwiki_id = :eduwiki_id and index_p = 't'"
+ set page_url ""
+
+ db_foreach instance_select \
+ [::xowiki::Page instance_select_query \
+ -parent_id $folder_id \
+ -from_clause ", eduwiki_pages_map e" \
+ -select_attributes [list "bt.revision_id as page_id" title creation_user "e.party_id as creator_id" index_p]\
+ -where_clause $where_clause \
+ ] {
+
+ if { $eduwiki_category == "professor" } {
+ set page_url $name
+ } elseif { $eduwiki_category == "student" } {
+ if { $user_id == $creator_id } {
+ set page_url $name
+ }
+ } else {
+ #category group
+ if {[group::member_p -user_id $user_id -group_id $creator_id]} {
+ set page_url $name
+ }
+ }
+
+ }
+
+ #default
+ return $page_url
+}
Index: openacs-4/packages/eduwiki/tcl/eduwiki-procs.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki/tcl/eduwiki-procs.xql,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki/tcl/eduwiki-procs.xql 7 Oct 2009 19:11:52 -0000 1.1
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+ select party_id
+ from eduwiki_pages_map
+ where eduwiki_id = :eduwiki_id
+ and page_id = :page_item_id
+
+
+
+
+
+ select eduwiki_id
+ from eduwiki_pages_map
+ where page_id = :page_item_id
+
+
+
+
+
+ select object_type
+ from acs_objects
+ where object_id = :party_id
+
+
+
+
+
+ select last_name || ',' || first_names
+ from persons
+ where person_id = :party_id
+
+
+
+
+
+ select group_name
+ from groups
+ where group_id = :party_id
+
+
+
+
Index: openacs-4/packages/eduwiki/tcl/eduwiki-xowiki-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki/tcl/eduwiki-xowiki-procs.tcl,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki/tcl/eduwiki-xowiki-procs.tcl 7 Oct 2009 19:11:52 -0000 1.1
@@ -0,0 +1,397 @@
+#/packages/eduwiki/tcl/eduwiki-xowiki-procs.tcl
+
+::xo::library doc {
+
+ Educational Wiki package procs
+
+ @author Hector Amado (hr_amado@galileo.edu)
+ @creation-date 2009-06-01
+}
+
+::xo::db::require package xowiki
+
+namespace eval ::eduwiki {
+
+ ::xo::PackageMgr create ::eduwiki::Package \
+ -package_key "eduwiki" -pretty_name "Educational Wiki" \
+ -superclass ::xowiki::Package
+
+ Package instproc initialize {} {
+ ::xowiki::Link instmixin add ::eduwiki::EduWikiLink
+ ::xowiki::Page instmixin add ::eduwiki::EduWikiPage
+ ::xowiki::WikiForm instmixin add ::eduwiki::EduWikiForm
+ next
+ }
+
+ Package instproc destroy {} {
+ ::xowiki::Link instmixin delete ::eduwiki::EduWikiLink
+ ::xowiki::Page instmixin delete ::eduwiki::EduWikiPage
+ ::xowiki::WikiForm instmixin delete ::eduwiki::EduWikiForm
+ next
+ }
+
+ Package instproc return_page {
+ {-adp:required}
+ {-variables:required}
+ {-form}
+ } {
+ foreach _var $variables {
+ if {[llength $_var] == 2} {
+ upvar [lindex $_var 0] [lindex $_var 0]
+ upvar [string trim [lindex $_var 1] $] \
+ [string trim [lindex $_var 1] $]
+ } else {
+ upvar $_var [set _var]
+ }
+ }
+
+ set activity_pages_p 1
+ set page_title ""
+ set index_link ""
+
+ if {[exists_and_not_null item_id]} {
+ if {[exists_and_not_null context_package_id]} {
+ set eduwiki_id [eduwiki::get_eduwiki_task_id -page_item_id $item_id]
+ if { ![empty_string_p $eduwiki_id] } {
+ set party_id [eduwiki::get_eduwiki_party_id -eduwiki_id $eduwiki_id -page_item_id $item_id]
+ set index_link [$context_package_id make_link -privilege public -link "" $context_package_id {} {eduwiki_id $eduwiki_id} party_id]
+ set page_title "#eduwiki.activity_index#"
+ } else {
+ set new_link ""
+ set page_title "#eduwiki.IndexPage#"
+ set index_link [$context_package_id make_link -privilege public -link "" $context_package_id {} {}]
+ set activity_pages_p 0
+ if {[ns_queryexists eduwiki_id]} {
+ set title "#eduwiki.activity_index#"
+ set eduwiki_id [ns_queryget eduwiki_id]
+ set activity_pages_p 1
+ }
+ }
+ }
+ }
+
+ lappend variables page_title activity_pages_p
+
+ if {[exists_and_not_null form]} {
+ upvar form [set form]
+ } else {
+ set form ""
+ }
+
+ return [next -adp $adp -variables $variables -form $form]
+ }
+
+ # instproc create_new_snippet
+ Package instproc create_new_snippet {
+ {-object_type ::xowiki::Page}
+ provided_name
+ } {
+ #disable create_new_snippet
+ return ""
+ }
+
+ # New class to store eduwiki_task_information
+
+ ::xo::db::CrClass create EduwikiTask -superclass ::xo::db::CrItem \
+ -pretty_name "Eduwiki Task" -pretty_plural "Eduwiki Tasks" \
+ -table_name "eduwiki_tasks" -id_column "eduwiki_id" \
+ -slots {
+ ::xo::db::CrAttribute create release_date \
+ -datatype date \
+ -sqltype timestamp
+ ::xo::db::CrAttribute create close_date \
+ -datatype date \
+ -sqltype timestamp
+ ::xo::Attribute create name \
+ -required true
+ ::xo::db::CrAttribute create eduwiki_category \
+ -datatype text \
+ -sqltype varchar(15)
+ ::xo::db::CrAttribute create eduwiki_visible_all_p \
+ -datatype text \
+ -sqltype char(1) \
+ -default "t"
+ ::xo::db::CrAttribute create eduwiki_editable_all_p \
+ -datatype text \
+ -sqltype char(1) \
+ -default "t"
+ ::xo::db::CrAttribute create eduwiki_create_all_p \
+ -datatype text \
+ -sqltype char(1) \
+ -default "t"
+ ::xo::db::CrAttribute create eduwiki_evaluation_related_p \
+ -datatype text \
+ -sqltype char(1) \
+ -default "t"
+ }
+
+ # create various extra tables, indices and views
+
+ ::xo::db::require table eduwiki_groups_map \
+ "eduwiki_id integer references cr_items(item_id) on delete cascade,
+ party_id integer references parties(party_id),
+ constraint eduwiki_groups_map_pk primary key (eduwiki_id, party_id)"
+
+ ::xo::db::require index -table eduwiki_groups_map -col eduwiki_id,party_id -unique true
+
+ ::xo::db::require table eduwiki_pages_map \
+ "eduwiki_id integer references cr_items(item_id) on delete cascade,
+ page_id integer references cr_items(item_id) on delete cascade,
+ party_id integer references parties(party_id),
+ index_p char(1) default 'f',
+ constraint eduwiki_pages_map_pk primary key (eduwiki_id, page_id, party_id),
+ constraint eduwiki_pages_map_indexp_ck check(index_p in ('t','f'))"
+
+ ::xo::db::require index -table eduwiki_pages_map -col eduwiki_id,page_id
+
+ # extend Link functionality
+ Class EduWikiLink
+
+ EduWikiLink instproc render_not_found {href label} {
+ if {$href eq ""} {
+ return \[$label\]
+ } else {
+ return "$label"
+ }
+ }
+
+ Class EduWikiPage
+
+ EduWikiPage instproc new_link {-name -title -nls_language page_package_id} {
+ #check create permissions
+ set item_id [my item_id]
+ set base_url [$page_package_id package_url]
+ if {[permission::permission_p -object_id $item_id -privilege create]} {
+ return [export_vars -base "${base_url}eduwiki-page-new" {name title nls_language item_id}]
+ } else {
+ return ""
+ }
+ }
+
+ # proc to hide delete revisions button
+ EduWikiPage instproc revisions {} {
+ my instvar package_id name title item_id
+ set context [list [list [$package_id url] $title ] [_ xotcl-core.revisions]]
+ set title "[_ eduwiki.revisions_history] '$title'"
+ ::xo::Page set_property doc title $title
+
+ ::TableWidget t1 -volatile \
+ -columns {
+ Field version_number -label "" -html {align right}
+ ImageAnchorField edit -label "" -src /resources/acs-subsite/Zoom16.gif \
+ -title "[_ eduwiki.view_eduwiki_page]" -alt "view" \
+ -width 16 -height 16 -border 0
+ AnchorField diff -label ""
+ AnchorField author -label [_ file-storage.Author]
+ Field content_size -label [_ file-storage.Size] -html {align right}
+ Field last_modified_ansi -label [_ file-storage.Last_Modified]
+ Field description -label [_ file-storage.Version_Notes]
+ ImageAnchorField live_revision -label [_ eduwiki.live_version] \
+ -src /resources/acs-subsite/radio.gif \
+ -width 16 -height 16 -border 0 -html {align center}
+ }
+
+ set user_id [my current_user_id]
+ set page_id [my set item_id]
+ set live_revision_id [::xo::db::sql::content_item get_live_revision -item_id $page_id]
+ my instvar package_id
+ set base [$package_id url]
+ set sql [::xo::db::sql select \
+ -map_function_names true \
+ -vars "ci.name, n.revision_id as version_id,\
+ person__name(n.creation_user) as author, \
+ n.creation_user as author_id, \
+ to_char(n.last_modified,'YYYY-MM-DD HH24:MI:SS') as last_modified_ansi,\
+ n.description,\
+ acs_permission__permission_p(n.revision_id,:user_id,'admin') as admin_p,\
+ acs_permission__permission_p(n.revision_id,:user_id,'delete') as delete_p,\
+ r.content_length,\
+ content_revision__get_number(n.revision_id) as version_number " \
+ -from "cr_revisionsi n, cr_items ci, cr_revisions r" \
+ -where "ci.item_id = n.item_id and ci.item_id = :page_id
+ and r.revision_id = n.revision_id
+ and exists (select 1 from acs_object_party_privilege_map m
+ where m.object_id = n.revision_id
+ and m.party_id = :user_id
+ and m.privilege = 'read')" \
+ -orderby "n.revision_id desc"]
+
+ db_foreach [my qn revisions_select] $sql {
+ if {$content_length < 1024} {
+ if {$content_length eq ""} {set content_length 0}
+ set content_size_pretty "[lc_numeric $content_length] [_ file-storage.bytes]"
+ } else {
+ set content_size_pretty "[lc_numeric [format %.2f [expr {$content_length/1024.0}]]] [_ file-storage.kb]"
+ }
+
+ set last_modified_ansi [lc_time_system_to_conn $last_modified_ansi]
+
+ if {$version_id != $live_revision_id} {
+ set live_revision "[_ eduwiki.make_as_current]"
+ set live_revision_icon /resources/acs-subsite/radio.gif
+ } else {
+ set live_revision "[_ eduwiki.view_current]"
+ set live_revision_icon /resources/acs-subsite/radiochecked.gif
+ }
+
+ set live_revision_link [export_vars -base $base \
+ {{m make-live-revision} {revision_id $version_id}}]
+ t1 add \
+ -version_number $version_number: \
+ -edit.href [export_vars -base $base {{revision_id $version_id}}] \
+ -author $author \
+ -content_size $content_size_pretty \
+ -last_modified_ansi [lc_time_fmt $last_modified_ansi "%x %X"] \
+ -description $description \
+ -live_revision.src $live_revision_icon \
+ -live_revision.title $live_revision \
+ -live_revision.href $live_revision_link
+
+ [t1 last_child] set payload(revision_id) $version_id
+ }
+
+ # providing diff links to the prevision versions. This can't be done in
+ # the first loop, since we have not yet the revision id of entry in the next line.
+ set lines [t1 children]
+ for {set i 0} {$i < [llength $lines]-1} {incr i} {
+ set e [lindex $lines $i]
+ set n [lindex $lines [expr {$i+1}]]
+ set revision_id [$e set payload(revision_id)]
+ set compare_revision_id [$n set payload(revision_id)]
+ $e set diff.href [export_vars -base $base {{m diff} compare_revision_id revision_id}]
+ $e set diff "diff"
+ }
+ set e [lindex $lines end]
+ if {$e ne ""} {
+ $e set diff.href ""
+ $e set diff ""
+ }
+ #set content [next]
+ set content [t1 asHTML]
+
+ array set property_doc [::xo::Page get_property doc]
+ $package_id return_page -adp /packages/xowiki/www/revisions -variables {
+ content context {page_id $item_id} title property_doc
+ }
+ }
+
+ # proc to hide delete revisions button
+ EduWikiPage instproc diff {} {
+
+ my instvar package_id
+
+ set compare_id [my query_parameter "compare_revision_id" 0]
+ if {$compare_id == 0} {
+ return ""
+ }
+ ::xo::Page requireCSS /resources/xowiki/xowiki.css
+ set my_page [::xowiki::Package instantiate_page_from_id -revision_id [my revision_id]]
+ $my_page volatile
+
+ if {[catch {set html1 [$my_page render]} errorMsg]} {
+ set html2 "Error rendering [my revision_id]: $errorMsg"
+ }
+ set text1 [ad_html_text_convert -from text/html -to text/plain -- $html1]
+ set user1 [::xo::get_user_name [$my_page set creation_user]]
+ set time1 [$my_page set creation_date]
+ set revision_id1 [$my_page set revision_id]
+ regexp {^([^.]+)[.]} $time1 _ time1
+
+ set other_page [::xowiki::Package instantiate_page_from_id -revision_id $compare_id]
+ $other_page volatile
+ #$other_page absolute_links 1
+
+ if {[catch {set html2 [$other_page render]} errorMsg]} {
+ set html2 "Error rendering $compare_id: $errorMsg"
+ }
+ set text2 [ad_html_text_convert -from text/html -to text/plain -- $html2]
+ set user2 [::xo::get_user_name [$other_page set creation_user]]
+ set time2 [$other_page set creation_date]
+ set revision_id2 [$other_page set revision_id]
+ regexp {^([^.]+)[.]} $time2 _ time2
+
+ set page_title [my set title]
+ set title "[_ eduwiki.differences]"
+ set context [list [list [$package_id url] $title ] [_ eduwiki.diff]]
+
+ # try util::html diff if it is available and works
+ if {[catch {set content [::util::html_diff -old $html2 -new $html1 -show_old_p t]}]} {
+ # otherwise, fall back to proven text based diff
+ set content [::xowiki::html_diff $text2 $text1]
+ }
+
+ ::xo::Page set_property doc title $title
+ array set property_doc [::xo::Page get_property doc]
+ set header_stuff [::xo::Page header_stuff]
+
+ $package_id return_page -adp /packages/eduwiki/www/diff -variables {
+ content title context header_stuff
+ time1 time2 user1 user2 revision_id1 revision_id2 property_doc
+ }
+
+ }
+
+ Class create EduWikiForm -superclass ::xowiki::WikiForm \
+ -parameter {
+ {add_page_title [_ eduwiki.edit_eduwiki_page]}
+ {edit_page_title [_ eduwiki.edit_eduwiki_page]}
+ }
+
+ Class create Policy -superclass ::xo::Policy
+
+ Policy policy3 -contains {
+ #
+ # we require side wide admin rights for deletions
+ # we perform checking on item_ids for pages.
+ #
+
+ Class Package -array set require_permission {
+ reindex {{id admin}}
+ rss none
+ refresh-login none
+ google-sitemap none
+ google-sitemapindex none
+ change-page-order {{id admin}}
+ manage-categories {{id admin}}
+ edit-category-tree {{id admin}}
+ delete swa
+ edit-new {
+ {{has_class ::xowiki::Object} swa}
+ {{has_class ::xowiki::FormPage} nobody}
+ {{has_name {[.](js|css)$}} swa}
+ {id create}
+ }
+ }
+
+ Class Page -array set require_permission {
+ view {{item_id read}}
+ revisions {{item_id write}}
+ diff {{item_id write}}
+ edit {{item_id write}}
+ make-live-revision {{item_id write}}
+ delete-revision {{item_id admin}}
+ delete {
+ {item_id delete}
+ {item_id admin}
+ }
+ save-tags login
+ popular-tags login
+ create-new swa
+ create-or-use swa
+ }
+
+ Class Object -array set require_permission {
+ edit swa
+ }
+ Class File -array set require_permission {
+ download {{package_id read}}
+ }
+ Class Form -array set require_permission {
+ create-new swa
+ create-or-use swa
+ list {{item_id read}}
+ }
+ }
+
+
+}
\ No newline at end of file
Index: openacs-4/packages/eduwiki/www/diff.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki/www/diff.adp,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki/www/diff.adp 7 Oct 2009 19:11:52 -0000 1.1
@@ -0,0 +1,48 @@
+
+ @title;noquote@
+ property_doc
+ @context;noquote@
+
+ @header_stuff;noquote@
+
+
+
+
+ @header_stuff;noquote@
+
+
+
+
+
+ #eduwiki.comparing#
+
+- #eduwiki.version# @revision_id1@ #eduwiki.modified_by# @user1@ #eduwiki.at# @time1@ #eduwiki.with#
+
- #eduwiki.version# @revision_id2@ #eduwiki.modified_by# @user2@ #eduwiki.at# @time2@
+
+
+
+
+@content;noquote@
+
Index: openacs-4/packages/eduwiki/www/eduwiki-page-new.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki/www/eduwiki-page-new.tcl,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki/www/eduwiki-page-new.tcl 7 Oct 2009 19:11:52 -0000 1.1
@@ -0,0 +1,70 @@
+# /packages/eduwiki/www/eduwiki-page-new.tcl
+
+ad_page_contract {
+ Automatically create a page related with page_item_id and eduwiki
+ @author Hector Amado (hr_amado@galileo.edu)
+ @creation-date 2009-07-08
+} {
+ {item_id 0}
+ {name ""}
+ {title ""}
+}
+
+set package_id [ad_conn package_id]
+set package_url [apm_package_url_from_id $package_id]
+
+# check create permissions
+if { $item_id > 0} {
+ permission::require_permission -object_id $item_id -privilege create
+
+ set data [eduwiki::create_page -page_title $title -page_name $name]
+ set eduwiki_page_id [lindex $data 0]
+ set page_name [lindex $data 1]
+ set link "${package_url}$page_name"
+
+ #set page_permissions
+ set page_item_id $item_id
+ set eduwiki_id [eduwiki::get_eduwiki_task_id -page_item_id $page_item_id]
+ set eduwiki_task_id [content::item::get_live_revision -item_id $eduwiki_id]
+ db_1row get_instance_select [::eduwiki::EduwikiTask instance_select_query \
+ -parent_id $package_id \
+ -from_clause ", eduwiki_tasks e" \
+ -select_attributes [list eduwiki_id \
+ eduwiki_category \
+ eduwiki_visible_all_p \
+ eduwiki_editable_all_p \
+ eduwiki_create_all_p \
+ eduwiki_evaluation_related_p \
+ "description as eduwiki_description" \
+ "bt.title as eduwiki_title" \
+ "name as eduwiki_name" \
+ "to_char(release_date,'YYYY MM DD HH24 MI SS') as publish_date" \
+ "to_char(close_date,'YYYY MM DD HH24 MI SS') as close_date"] \
+ -where_clause "e.eduwiki_id = acs_objects.object_id and e.eduwiki_id = :eduwiki_task_id" \
+ ]
+ #get eduwiki_party_id
+ set eduwiki_id $item_id
+ set eduwiki_party_id [eduwiki::get_eduwiki_party_id -eduwiki_id $eduwiki_id -page_item_id $page_item_id]
+
+ if { ![empty_string_p $eduwiki_page_id] && ![empty_string_p $eduwiki_id] && ![empty_string_p $eduwiki_party_id] } {
+ db_dml insert_eduwiki_pages_map { *SQL* }
+ eduwiki::set_eduwiki_permissions -eduwiki_page_id $eduwiki_page_id \
+ -party_id $eduwiki_party_id \
+ -eduwiki_category $eduwiki_category \
+ -eduwiki_visible_all_p $eduwiki_visible_all_p \
+ -eduwiki_editable_all_p $eduwiki_editable_all_p \
+ -eduwiki_create_all_p $eduwiki_create_all_p \
+ -eduwiki_index_p "f"
+
+ #set delete permissions to creator
+ permission::grant -object_id $eduwiki_page_id -party_id [ad_conn user_id] -privilege delete
+ }
+
+
+ ad_returnredirect [export_vars -base $link {{m edit} {title ""}}]
+
+} else {
+ ad_return_complaint 1 "[_ eduwiki.new_page_needs_eduwiki_task]"
+ ad_script_abort
+}
+
Index: openacs-4/packages/eduwiki/www/eduwiki-page-new.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki/www/eduwiki-page-new.xql,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki/www/eduwiki-page-new.xql 7 Oct 2009 19:11:52 -0000 1.1
@@ -0,0 +1,12 @@
+
+
+
+
+
+ insert into eduwiki_pages_map
+ (eduwiki_id, page_id, party_id, index_p)
+ values
+ (:eduwiki_id, :eduwiki_page_id, :eduwiki_party_id, 'f')
+
+
+
Index: openacs-4/packages/eduwiki/www/eduwiki-view.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki/www/eduwiki-view.adp,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki/www/eduwiki-view.adp 7 Oct 2009 19:11:52 -0000 1.1
@@ -0,0 +1,39 @@
+
+ @title;noquote@
+ @context;noquote@
+ @item_id@
+ property_body
+ property_doc
+
+
+
+
+
+
@title@ (@page_context@)
+
@title@
+
+
+
+
+ @content;noquote@
+
+
+@footer;noquote@
+
Index: openacs-4/packages/eduwiki/www/index.vuh
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki/www/index.vuh,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki/www/index.vuh 7 Oct 2009 19:11:52 -0000 1.1
@@ -0,0 +1,16 @@
+::eduwiki::Package initialize -ad_doc {
+
+ This is the resolver for this package. It turns a request into
+ an object and executes the object with the computed method
+
+ @author Gustaf Neumann (gustaf.neumann@wu-wien.ac.at)
+ @creation-date July, 2006
+ @cvs-id $Id: index.vuh,v 1.1 2009/10/07 19:11:52 hramado Exp $
+
+} -parameter {
+ {-m view}
+ {-folder_id:integer 0}
+}
+
+::$package_id reply_to_user [::$package_id invoke -method $m]
+ad_script_abort
Index: openacs-4/packages/eduwiki/www/admin/delete.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki/www/admin/delete.tcl,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki/www/admin/delete.tcl 7 Oct 2009 19:11:52 -0000 1.1
@@ -0,0 +1,18 @@
+::eduwiki::Package initialize -ad_doc {
+
+ Delete an EduwikiTask
+
+ @author Hector Amado (hr_amado@galileo.edu)
+ @creation-date 2009-06-10
+ @cvs-id $Id: delete.tcl,v 1.1 2009/10/07 19:11:52 hramado Exp $
+
+ @param eduwiki_id The eduwiki_id of the Task to delete
+} -parameter {
+ {-item_id:integer}
+}
+
+permission::require_write_permission -object_id $item_id
+::xo::db::CrItem delete -item_id $item_id
+
+ad_returnredirect "eduwiki-index"
+
Index: openacs-4/packages/eduwiki/www/admin/eduwiki-add-group.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki/www/admin/eduwiki-add-group.adp,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki/www/admin/eduwiki-add-group.adp 7 Oct 2009 19:11:52 -0000 1.1
@@ -0,0 +1 @@
+#eduwiki.Group_task_added#
Index: openacs-4/packages/eduwiki/www/admin/eduwiki-add-group.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki/www/admin/eduwiki-add-group.tcl,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki/www/admin/eduwiki-add-group.tcl 7 Oct 2009 19:11:52 -0000 1.1
@@ -0,0 +1,63 @@
+# /packages/eduwiki/www/admin/eduwiki-add-group.tcl
+
+ad_page_contract {
+ Page to add groups to eduwiki task
+
+ @author Hector Amado (hr_amado@galileo.edu)
+ @creation-date 2009-07-13
+ @cvs-id $Id: eduwiki-add-group.tcl,v 1.1 2009/10/07 19:11:52 hramado Exp $
+} {
+ {group_id_list ""}
+ eduwiki_id:integer,notnull
+}
+
+set community_id [dotlrn_community::get_community_id]
+set package_id [ad_conn package_id]
+
+# get EduwikiTask info
+set eduwiki_task_id [content::item::get_live_revision -item_id $eduwiki_id]
+db_1row get_instance_select [::eduwiki::EduwikiTask instance_select_query \
+ -parent_id $package_id \
+ -from_clause ", eduwiki_tasks e" \
+ -select_attributes [list eduwiki_id \
+ eduwiki_category \
+ eduwiki_visible_all_p \
+ eduwiki_editable_all_p \
+ eduwiki_create_all_p \
+ eduwiki_evaluation_related_p \
+ "description as eduwiki_description" \
+ "bt.title as eduwiki_title" \
+ "name as eduwiki_name" \
+ "to_char(release_date,'YYYY MM DD HH24 MI SS') as publish_date" \
+ "to_char(close_date,'YYYY MM DD HH24 MI SS') as close_date"] \
+ -where_clause "e.eduwiki_id = acs_objects.object_id and e.eduwiki_id = :eduwiki_task_id" \
+ ]
+
+# save group page
+set group_id_list [string trim $group_id_list]
+if { [llength $group_id_list] > 0 } {
+ db_transaction {
+ foreach eduwiki_group_id $group_id_list {
+ set group_name [group::get_element -group_id $eduwiki_group_id -element "group_name"]
+ if {![empty_string_p $group_name]} {
+ db_dml insert_eduwiki_group_map { *SQL* }
+ set eduwiki_group_title "$eduwiki_title ($group_name)"
+ set eduwiki_page_data [eduwiki::create_page -page_title $eduwiki_group_title]
+ set eduwiki_page_id [lindex $eduwiki_page_data 0]
+ if { ![empty_string_p $eduwiki_page_id] && ![empty_string_p $item_id] } {
+ db_dml insert_eduwiki_pages_map { *SQL* }
+ eduwiki::set_eduwiki_permissions -eduwiki_page_id $eduwiki_page_id \
+ -party_id $eduwiki_group_id \
+ -eduwiki_category $eduwiki_category \
+ -eduwiki_visible_all_p $eduwiki_visible_all_p \
+ -eduwiki_editable_all_p $eduwiki_editable_all_p \
+ -eduwiki_create_all_p $eduwiki_create_all_p \
+ -eduwiki_index_p "t"
+ }
+ }
+ }
+ }
+}
+
+ad_returnredirect [export_vars -base "groups-admin" {{eduwiki_id $item_id}}]
+ad_script_abort
Index: openacs-4/packages/eduwiki/www/admin/eduwiki-add-group.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki/www/admin/eduwiki-add-group.xql,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki/www/admin/eduwiki-add-group.xql 7 Oct 2009 19:11:52 -0000 1.1
@@ -0,0 +1,22 @@
+
+
+
+
+
+ insert into eduwiki_groups_map
+ (eduwiki_id, party_id)
+ values
+ (:item_id, :eduwiki_group_id)
+
+
+
+
+
+ insert into eduwiki_pages_map
+ (eduwiki_id, page_id, party_id, index_p)
+ values
+ (:item_id, :eduwiki_page_id, :eduwiki_group_id, 't')
+
+
+
+
Index: openacs-4/packages/eduwiki/www/admin/eduwiki-index.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki/www/admin/eduwiki-index.adp,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki/www/admin/eduwiki-index.adp 7 Oct 2009 19:11:52 -0000 1.1
@@ -0,0 +1,9 @@
+
+ @page_title;noquote@
+ @context;noquote@
+
+#eduwiki.Eduwiki_tasklist_#
+#eduwiki.Add_eduwiki_#
+
+@html;noquote@
+
Index: openacs-4/packages/eduwiki/www/admin/eduwiki-index.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki/www/admin/eduwiki-index.tcl,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki/www/admin/eduwiki-index.tcl 7 Oct 2009 19:11:52 -0000 1.1
@@ -0,0 +1,127 @@
+# /packages/eduwiki/www/admin/eduwiki-index.tcl
+
+::eduwiki::Package initialize -ad_doc {
+ This is the main page for the package. It displays all of the EduwikiTasks and provides links to create, edit and delete EduwikiTasks.
+
+ @author Hector Amado (hr_amado@galileo.edu)
+ @creation-date 2009-06-10
+ @cvs-id $Id: eduwiki-index.tcl,v 1.1 2009/10/07 19:11:52 hramado Exp $
+} -parameter {
+ {-orderby:optional "title,desc"}
+}
+
+set page_title "[_ eduwiki.Eduwiki_tasklist_]"
+set context [list]
+# get limit_dates_p
+set limit_dates_p [parameter::get -package_id $package_id \
+ -parameter with_limit_dates \
+ -default 0]
+
+#
+# We define a table with an action to add new items
+#
+
+TableWidget index -volatile \
+ -set limit_dates_p $limit_dates_p \
+ -actions "" \
+ -columns {
+ ImageField_EditIcon edit -label "" -html {style "padding-right: 2px;"}
+ AnchorField title -label "[_ eduwiki.Eduwiki_Title_]" -orderby title
+ if { [[my info parent] set limit_dates_p] } {
+ Field release_date -label "[_ eduwiki.Release_Date]" -orderby release_date
+ Field close_date -label "[_ eduwiki.Close_Date]" -orderby close_date
+ }
+ AnchorField eduwiki_category -label "[_ eduwiki.Category]" -orderby eduwiki_category
+ AnchorField groups_admin -label ""
+ ImageField_ViewIcon view -label ""
+ ImageAnchorField publish_status -label "[_ eduwiki.enabled]" \
+ -src /resources/acs-subsite/checkboxchecked.gif \
+ -width 16 -height 16 -border 0 -html {align center}
+ }
+
+#
+# to sort the items of the table, we take the values from the query parameter and
+# use the orderby method of the table to achieve sorting.
+#
+foreach {att order} [split $orderby ,] break
+index orderby -order [expr {$order eq "asc" ? "increasing" : "decreasing"}] $att
+
+#
+# The query selects all Eduwiki Tasks from the Package specific folder.
+# Per default the following attributes are retrieved:
+# - item_id, name, publish_status, and object_type.
+#
+
+db_foreach instance_select \
+ [::eduwiki::EduwikiTask instance_select_query \
+ -parent_id $package_id \
+ -from_clause ", eduwiki_tasks e" \
+ -select_attributes [list "object_id as eduwiki_id" publish_status title eduwiki_category creation_user \
+ "to_char(release_date,'DD-MM-YYYY HH24:MI:SS') as release_date" \
+ "to_char(close_date,'DD-MM-YYYY HH24:MI:SS') as close_date"]\
+ -where_clause "e.eduwiki_id = acs_objects.object_id" \
+ ] {
+ set groups_admin ""
+ set groups_adminhref ""
+ if { $eduwiki_category == "student" } {
+ set eduwiki_category "#eduwiki.Student_category#"
+ set groups_admin "[_ eduwiki.students_admin]"
+ set groups_adminhref [export_vars -base "eduwiki-list" {{eduwiki_id $item_id}}]
+ }
+ if { $eduwiki_category == "professor"} {
+ set eduwiki_category "#eduwiki.Teacher_category#"
+ }
+ if { $eduwiki_category == "group" } {
+ set groups_admin "[_ eduwiki.Group_Admin]"
+ set groups_adminhref [export_vars -base "groups-admin" {{eduwiki_id $item_id}}]
+ set eduwiki_category "#eduwiki.Group_category#"
+ }
+
+ if { $publish_status == "ready" } {
+ set publish_status_icon "/resources/acs-subsite/checkboxchecked.gif"
+ set publish_status_link [export_vars -base set-publish-state {item_id {publish_status "production"}}]
+ set publish_title "#eduwiki.disabled#"
+ } else {
+ set publish_status_icon "/resources/acs-subsite/checkbox.gif"
+ set publish_status_link [export_vars -base set-publish-state {item_id {publish_status "ready"}}]
+ set publish_title "#eduwiki.enabled#"
+ }
+
+ if { $limit_dates_p } {
+ index add \
+ -title $title \
+ -title.href [export_vars -base "../" {{eduwiki_id $item_id}}] \
+ -release_date $release_date \
+ -close_date $close_date \
+ -eduwiki_category $eduwiki_category \
+ -groups_admin $groups_admin \
+ -groups_admin.href $groups_adminhref \
+ -edit.href [export_vars -base eduwiki-new {eduwiki_id}] \
+ -view.href [export_vars -base eduwiki-list {{eduwiki_id $item_id}}] \
+ -publish_status.href $publish_status_link \
+ -publish_status.title $publish_title \
+ -publish_status.src $publish_status_icon
+ } else {
+ index add \
+ -title $title \
+ -title.href [export_vars -base "../" {{eduwiki_id $item_id}}] \
+ -eduwiki_category $eduwiki_category \
+ -groups_admin $groups_admin \
+ -groups_admin.href $groups_adminhref \
+ -edit.href [export_vars -base eduwiki-new {eduwiki_id}] \
+ -view.href [export_vars -base eduwiki-list {{eduwiki_id $item_id}}] \
+ -publish_status.href $publish_status_link \
+ -publish_status.title $publish_title \
+ -publish_status.src $publish_status_icon
+ }
+
+ }
+
+
+ if { [llength [$index children]] } {
+ set html [index asHTML]
+ } else {
+ set html "[_ eduwiki.There_are_not_eduwiki_activities]"
+ }
+
+
Index: openacs-4/packages/eduwiki/www/admin/eduwiki-list.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki/www/admin/eduwiki-list.adp,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki/www/admin/eduwiki-list.adp 7 Oct 2009 19:11:52 -0000 1.1
@@ -0,0 +1,15 @@
+
+ @page_title;noquote@
+ @context;noquote@
+
+#eduwiki.back#
+
+#eduwiki.Eduwiki_task_Pages#
+@html;noquote@
+
+
+
+ #eduwiki.Eduwiki_students_not_in_task#
+ @html2;noquote@
+
+
Index: openacs-4/packages/eduwiki/www/admin/eduwiki-list.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki/www/admin/eduwiki-list.tcl,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki/www/admin/eduwiki-list.tcl 7 Oct 2009 19:11:52 -0000 1.1
@@ -0,0 +1,116 @@
+# /packages/eduwiki/www/admin/eduwiki-list.tcl
+
+::eduwiki::Package initialize -ad_doc {
+ This is the main page for eduwiki pages lists.. It displays all of the EduwikiTasks Pages and provides links to acces, edit and delete Pages.
+
+ @author Hector Amado (hr_amado@galileo.edu)
+ @creation-date 2009-07-14
+ @cvs-id $Id: eduwiki-list.tcl,v 1.1 2009/10/07 19:11:52 hramado Exp $
+} -parameter {
+ {-eduwiki_id:integer,required}
+ {-orderby:optional "title,desc"}
+}
+
+set page_title "[_ eduwiki.Eduwiki_pageslist_]"
+set context [list]
+set community_id [dotlrn_community::get_community_id]
+
+# get eduwiki_category
+set eduwiki_category "professor"
+if {[exists_and_not_null eduwiki_id] && [::xo::db::Class exists_in_db -id $eduwiki_id]} {
+ set eduwiki_item_id [::eduwiki::EduwikiTask get_instance_from_db -item_id $eduwiki_id]
+ set eduwiki_category [$eduwiki_item_id set eduwiki_category]
+}
+
+#
+# We define a table
+#
+
+TableWidget index -volatile \
+ -actions "" \
+ -columns {
+ AnchorField title -label "[_ eduwiki.Page_Title_]" -orderby title
+ Field creator -label "[_ eduwiki.Eduwiki_creator_]"
+ ImageField_EditIcon edit -label "" -html {style "padding-right: 2px;"}
+ ImageAnchorField publish_status -label "[_ eduwiki.enabled]" \
+ -src /resources/acs-subsite/checkboxchecked.gif \
+ -width 16 -height 16 -border 0 -html {align center}
+ }
+
+#
+# to sort the items of the table, we take the values from the query parameter and
+# use the orderby method of the table to achieve sorting.
+#
+foreach {att order} [split $orderby ,] break
+index orderby -order [expr {$order eq "asc" ? "increasing" : "decreasing"}] $att
+
+#
+# The query selects all Eduwiki Pages from the Package specific folder.
+# Per default the following attributes are retrieved:
+# - item_id, name, publish_status, and object_type.
+#
+set folder_id [$package_id folder_id]
+
+db_foreach instance_select \
+ [::xowiki::Page instance_select_query \
+ -parent_id $folder_id \
+ -from_clause ", eduwiki_pages_map e" \
+ -select_attributes [list "bt.revision_id as page_id" publish_status title creation_user "e.party_id as creator_id"]\
+ -where_clause "e.page_id = ci.item_id and e.eduwiki_id = :eduwiki_id and e.index_p = 't'" \
+ ] {
+
+ set page_url "../$name"
+ if {![empty_string_p $creator_id] } {
+ set creator [eduwiki::get_party_name -party_id $creator_id]
+ } else {
+ set creator ""
+ }
+
+ if { $publish_status == "ready" } {
+ set publish_status_icon "/resources/acs-subsite/checkboxchecked.gif"
+ set publish_status_link [export_vars -base set-item-publish-state {item_id eduwiki_id {publish_status "production"}}]
+ set publish_title "#eduwiki.disabled#"
+ } else {
+ set publish_status_icon "/resources/acs-subsite/checkbox.gif"
+ set publish_status_link [export_vars -base set-item-publish-state {item_id eduwiki_id {publish_status "ready"}}]
+ set publish_title "#eduwiki.enabled#"
+ }
+
+ index add \
+ -title $title \
+ -title.href [export_vars -base $page_url {{m view}}] \
+ -creator $creator \
+ -edit.href [export_vars -base $page_url {{m edit}}] \
+ -publish_status.href $publish_status_link \
+ -publish_status.title $publish_title \
+ -publish_status.src $publish_status_icon
+ }
+
+
+set html [index asHTML]
+
+# get students not in activity
+
+TableWidget index2 -volatile \
+ -actions "" \
+ -columns {
+ Field creator -label "[_ eduwiki.Eduwiki_student_]"
+ ImageAnchorField add -label "[_ eduwiki.student_add_to_eduwiki]" \
+ -src /resources/acs-subsite/Add16.gif \
+ -width 16 -height 16 -border 0 -html {align center}
+ }
+
+if {$eduwiki_category == "student"} {
+ db_foreach get_students_not_in_activity { *SQL* } {
+ index2 add \
+ -creator $student_name \
+ -add.title "[_ eduwiki.student_add_to_eduwiki]" \
+ -add.href [export_vars -base "member-task-add" {student_id eduwiki_id}]
+ }
+
+ if { [llength [$index2 children]] } {
+ set html2 [index2 asHTML]
+ } else {
+ set html2 ""
+ }
+}
Index: openacs-4/packages/eduwiki/www/admin/eduwiki-list.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki/www/admin/eduwiki-list.xql,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki/www/admin/eduwiki-list.xql 7 Oct 2009 19:11:52 -0000 1.1
@@ -0,0 +1,26 @@
+
+
+
+
+
+ select
+ p.last_name ||', '|| p.first_names as student_name,
+ p.person_id as student_id
+ from
+ persons p,
+ dotlrn_member_rels_approved app
+ where
+ app.community_id = :community_id
+ and app.user_id = p.person_id
+ and app.role = 'student'
+ and p.person_id not in (select party_id
+ from eduwiki_pages_map
+ where eduwiki_id = :eduwiki_id
+ and index_p = 't' )
+ order by p.last_name asc
+
+
+
+
+
+
Index: openacs-4/packages/eduwiki/www/admin/eduwiki-new.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki/www/admin/eduwiki-new.adp,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki/www/admin/eduwiki-new.adp 7 Oct 2009 19:11:52 -0000 1.1
@@ -0,0 +1,5 @@
+
+ @page_title;noquote@
+ @context;noquote@
+
+
\ No newline at end of file
Index: openacs-4/packages/eduwiki/www/admin/eduwiki-new.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki/www/admin/eduwiki-new.tcl,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki/www/admin/eduwiki-new.tcl 7 Oct 2009 19:11:52 -0000 1.1
@@ -0,0 +1,342 @@
+# /packages/eduwiki/www/admin/eduwiki-new.tcl
+
+ad_page_contract {
+ Page to add or edit new eduwiki
+
+ @author Hector Amado (hr_amado@galileo.edu)
+ @creation-date 2009-07-07
+ @cvs-id $Id: eduwiki-new.tcl,v 1.1 2009/10/07 19:11:52 hramado Exp $
+} {
+ eduwiki_id:integer,notnull,optional
+ {mode "edit"}
+}
+
+set new_p [ad_form_new_p -key eduwiki_id]
+set form_format "DD MM YYYY HH24 MI"
+set package_id [ad_conn package_id]
+set community_id [dotlrn_community::get_community_id]
+
+if { $new_p } {
+ set page_title "[_ eduwiki.Add_eduwiki_]"
+} else {
+ set page_title "[_ eduwiki.Edit_eduwiki_]"
+}
+set context [list $page_title]
+
+set groups_ids ""
+set eduwiki_groups ""
+# get limit_dates_p
+set limit_dates_p [parameter::get -package_id $package_id \
+ -parameter with_limit_dates \
+ -default 0]
+
+ad_form -name eduwiki -mode $mode -cancel_url "eduwiki-index" -form {
+
+ eduwiki_id:key
+
+ {eduwiki_title:text
+ {label "[_ eduwiki.Eduwiki_Title_]"}
+ {html {size 40}}
+ }
+ {eduwiki_description:richtext(richtext),optional,nospell
+ {label "[_ eduwiki.Eduwiki_Descripti]"}
+ {html {rows 8 cols 50}}
+ }
+
+}
+
+if { $new_p } {
+
+ ad_form -extend -name eduwiki -form {
+ {eduwiki_category:text
+ {label "[_ eduwiki.Wiki_type]"}
+ {widget select}
+ {options {{"[_ eduwiki.Teacher_category]" professor} {"[_ eduwiki.Group_category]" group} {"[_ eduwiki.Student_category]" student}}}
+ {value "professor"}
+ }
+ }
+
+} else {
+
+ ad_form -extend -name eduwiki -form {
+ {eduwiki_category:text
+ {label "[_ eduwiki.Wiki_type]"}
+ {widget select}
+ {mode "display"}
+ {options {{"[_ eduwiki.Teacher_category]" professor} {"[_ eduwiki.Group_category]" group} {"[_ eduwiki.Student_category]" student}}}
+ {value "professor"}
+ }
+ }
+
+}
+
+ad_form -extend -name eduwiki -form {
+
+ {eduwiki_visible_all_p:text(radio)
+ {label "[_ eduwiki.lt_Will_be_visible_by_all]"}
+ {options {{"[_ eduwiki.Yes_]" t} {"[_ eduwiki.No_]" f}}}
+ {value t}
+ }
+ {eduwiki_editable_all_p:text(radio)
+ {label "[_ eduwiki.lt_Will_be_editable_by_all]"}
+ {options {{"[_ eduwiki.Yes_]" t} {"[_ eduwiki.No_]" f}}}
+ {value f}
+ {help_text "[_ eduwiki.help_editable_by_all]"}
+ }
+ {eduwiki_create_all_p:text(radio)
+ {label "[_ eduwiki.lt_student_Will_create_]"}
+ {options {{"[_ eduwiki.Yes_]" t} {"[_ eduwiki.No_]" f}}}
+ {value f}
+ }
+
+}
+
+if { $limit_dates_p } {
+
+ ad_form -extend -name eduwiki -form {
+
+ {publish_date:date,optional
+ {label "[_ eduwiki.Release_Date]"}
+ {format $form_format}
+ {value ""}
+ {help}
+ {help_text "[_ eduwiki.help_publish_date]"}
+ }
+ {close_date:date,optional
+ {label "[_ eduwiki.Close_Date]"}
+ {format $form_format}
+ {value ""}
+ {help}
+ {help_text "[_ eduwiki.help_close_date]"}
+ }
+ }
+
+} else {
+
+ ad_form -extend -name eduwiki -form {
+
+ {publish_date:date(hidden),optional
+ {label "[_ eduwiki.Release_Date]"}
+ {format $form_format}
+ {value ""}
+ {help}
+ {help_text "[_ eduwiki.help_publish_date]"}
+ }
+ {close_date:date(hidden),optional
+ {label "[_ eduwiki.Close_Date]"}
+ {format $form_format}
+ {value ""}
+ {help}
+ {help_text "[_ eduwiki.help_close_date]"}
+ }
+ }
+
+}
+
+ad_form -extend -name eduwiki -form {
+
+ {eduwiki_evaluation_related_p:text(hidden)
+ {label "[_ eduwiki.lt_Will_this_task_requir]"}
+ {options {{"[_ eduwiki.Yes_]" t} {"[_ eduwiki.No_]" f}}}
+ {value f}
+ }
+} -edit_request {
+
+ #Get eduwiki task info
+ db_1row get_instance_select [::eduwiki::EduwikiTask instance_select_query \
+ -parent_id $package_id \
+ -from_clause ", eduwiki_tasks e" \
+ -select_attributes [list eduwiki_id \
+ eduwiki_category \
+ creation_user \
+ eduwiki_visible_all_p \
+ eduwiki_editable_all_p \
+ eduwiki_create_all_p \
+ eduwiki_evaluation_related_p \
+ "description as eduwiki_description" \
+ "bt.title as eduwiki_title" \
+ "name as eduwiki_name" \
+ "to_char(release_date,'YYYY MM DD HH24 MI SS') as publish_date" \
+ "to_char(close_date,'YYYY MM DD HH24 MI SS') as close_date"] \
+ -where_clause "e.eduwiki_id = acs_objects.object_id and e.eduwiki_id = :eduwiki_id" \
+ ]
+
+} -validate {
+ {publish_date
+ { [empty_string_p $publish_date] || ([template::util::date::compare $publish_date [template::util::date::now]] > 0) }
+ {[_ eduwiki.publish_date_must_Be_after_now]}
+ }
+ {close_date
+ { [empty_string_p $close_date] || ([template::util::date::compare $close_date [template::util::date::now]] > 0) }
+ {[_ eduwiki.close_date_must_Be_after_now]}
+ }
+ {close_date
+ { [empty_string_p $close_date] || (![empty_string_p $publish_date] && ([template::util::date::compare $close_date $publish_date] > 0)) }
+ {[_ eduwiki.close_date_must_Be_after_publish]}
+ }
+ {eduwiki_editable_all_p
+ { !$eduwiki_editable_all_p || $eduwiki_visible_all_p }
+ {[_ eduwiki.visible_must_be_true_to_edit]}
+ }
+} -on_submit {
+
+ if { ![empty_string_p $publish_date] } {
+ set publish_date [db_string get_publish_date "select to_timestamp('[template::util::date::get_property linear_date $publish_date]','YYYY MM DD HH24 MI SS')" -default ""]
+ }
+ if { ![empty_string_p $close_date] } {
+ set close_date [db_string get_close_date "select to_timestamp('[template::util::date::get_property linear_date $close_date]','YYYY MM DD HH24 MI SS')" -default ""]
+ }
+
+ if { [ad_form_new_p -key eduwiki_id] && ![::xo::db::Class exists_in_db -id $eduwiki_id] } {
+ #new eduwiki_task
+ set data_id [::eduwiki::EduwikiTask create $eduwiki_id]
+ $data_id set name task_$eduwiki_id
+ $data_id set title $eduwiki_title
+ $data_id set description $eduwiki_description
+ $data_id set release_date $publish_date
+ $data_id set close_date $close_date
+ $data_id set eduwiki_category $eduwiki_category
+ $data_id set eduwiki_visible_all_p $eduwiki_visible_all_p
+ $data_id set eduwiki_editable_all_p $eduwiki_editable_all_p
+ $data_id set eduwiki_create_all_p $eduwiki_create_all_p
+ $data_id set eduwiki_evaluation_related_p $eduwiki_evaluation_related_p
+ $data_id set parent_id $package_id
+ $data_id initialize_loaded_object
+ $data_id save_new
+
+ set data_item_id [$data_id set item_id]
+
+ #mapping groups
+ if { [llength $eduwiki_groups] > 0 } {
+ if {![empty_string_p $data_item_id]} {
+ foreach group_id $eduwiki_groups {
+ db_dml insert_eduwiki_group_map { *SQL* }
+ }
+ }
+ }
+
+ # creating eduwiki pages
+ # eduwiki_category
+ if { $eduwiki_category == "professor" } {
+ set eduwiki_data [eduwiki::create_page -page_title $eduwiki_title]
+ set eduwiki_page_id [lindex $eduwiki_data 0]
+ if {![empty_string_p $eduwiki_page_id]} {
+ set eduwiki_party_id [ad_conn user_id]
+ db_dml insert_eduwiki_pages_map { *SQL* }
+ eduwiki::set_eduwiki_permissions -eduwiki_page_id $eduwiki_page_id \
+ -eduwiki_category $eduwiki_category \
+ -eduwiki_visible_all_p $eduwiki_visible_all_p \
+ -eduwiki_editable_all_p $eduwiki_editable_all_p \
+ -eduwiki_create_all_p $eduwiki_create_all_p \
+ -eduwiki_index_p "t"
+ }
+ }
+
+ # groups_category
+ if { $eduwiki_category == "group" } {
+ if { [llength $eduwiki_groups] > 0 } {
+ foreach eduwiki_group_id $eduwiki_groups {
+ set group_name [group::get_element -group_id $eduwiki_group_id -element "group_name"]
+ set eduwiki_group_title "$eduwiki_title ($group_name)"
+ set eduwiki_page_data [eduwiki::create_page -page_title $eduwiki_group_title]
+ set eduwiki_page_id [lindex $eduwiki_page_data 0]
+ if { ![empty_string_p $eduwiki_page_id] && ![empty_string_p $data_item_id] } {
+ set eduwiki_party_id $eduwiki_group_id
+ db_dml insert_eduwiki_pages_map { *SQL* }
+ eduwiki::set_eduwiki_permissions -eduwiki_page_id $eduwiki_page_id \
+ -party_id $eduwiki_group_id \
+ -eduwiki_category $eduwiki_category \
+ -eduwiki_visible_all_p $eduwiki_visible_all_p \
+ -eduwiki_editable_all_p $eduwiki_editable_all_p \
+ -eduwiki_create_all_p $eduwiki_create_all_p \
+ -eduwiki_index_p "t"
+ }
+ }
+ }
+
+ # redirect to group administration
+ ad_returnredirect [export_vars -base "groups-admin" {{eduwiki_id $data_item_id}}]
+ ad_script_abort
+
+ }
+
+ if { $eduwiki_category == "student" } {
+ db_foreach select_current_members { *SQL* } {
+ set eduwiki_page_data [eduwiki::create_page -page_title $eduwiki_title]
+ set eduwiki_page_id [lindex $eduwiki_page_data 0]
+ if { ![empty_string_p $eduwiki_page_id] && ![empty_string_p $data_item_id] } {
+ set eduwiki_party_id $party_id
+ db_dml insert_eduwiki_pages_map { *SQL* }
+ eduwiki::set_eduwiki_permissions -eduwiki_page_id $eduwiki_page_id \
+ -party_id $eduwiki_party_id \
+ -eduwiki_category $eduwiki_category \
+ -eduwiki_visible_all_p $eduwiki_visible_all_p \
+ -eduwiki_editable_all_p $eduwiki_editable_all_p \
+ -eduwiki_create_all_p $eduwiki_create_all_p \
+ -eduwiki_index_p "t"
+ }
+ }
+ }
+
+
+ } else {
+ # edit eduwiki_task
+ if { [::xo::db::Class exists_in_db -id $eduwiki_id] } {
+ set data_id [::xo::db::CrClass get_instance_from_db -revision_id $eduwiki_id]
+ $data_id set title $eduwiki_title
+ $data_id set description $eduwiki_description
+ $data_id set release_date $publish_date
+ $data_id set close_date $close_date
+ $data_id set eduwiki_visible_all_p $eduwiki_visible_all_p
+ $data_id set eduwiki_editable_all_p $eduwiki_editable_all_p
+ $data_id set eduwiki_create_all_p $eduwiki_create_all_p
+ $data_id set eduwiki_evaluation_related_p $eduwiki_evaluation_related_p
+ $data_id set parent_id $package_id
+ $data_id initialize_loaded_object
+ $data_id save
+ set data_item_id [$data_id set item_id]
+
+ # update eduwiki permissions
+ # get pages and set permissions
+ if { ![empty_string_p $data_item_id] } {
+ db_foreach get_eduwiki_pages { *SQL* } {
+ eduwiki::set_eduwiki_permissions -eduwiki_page_id $eduwiki_page_id \
+ -party_id $eduwiki_party_id \
+ -eduwiki_category $eduwiki_category \
+ -eduwiki_visible_all_p $eduwiki_visible_all_p \
+ -eduwiki_editable_all_p $eduwiki_editable_all_p \
+ -eduwiki_create_all_p $eduwiki_create_all_p \
+ -eduwiki_index_p $page_index_p
+
+ if {[permission::cache_p]} {
+ #clean cache for eduwiki_page_id
+ set pattern $eduwiki_page_id
+ set cached_names [ns_cache names util_memoize]
+ foreach name $cached_names {
+ if {[regexp -nocase -- $pattern $name match]} {
+ ns_cache flush util_memoize $name
+ }
+ }
+ }
+ }
+ }
+
+
+ if { $eduwiki_category == "group" } {
+ #update group pages permissions
+
+ # redirect to group administration
+ ad_returnredirect [export_vars -base "groups-admin" {{eduwiki_id $data_item_id}}]
+ ad_script_abort
+ }
+
+ }
+ }
+
+} -after_submit {
+ ad_returnredirect "eduwiki-index"
+ ad_script_abort
+}
+
+
+ad_return_template
Index: openacs-4/packages/eduwiki/www/admin/eduwiki-new.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki/www/admin/eduwiki-new.xql,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki/www/admin/eduwiki-new.xql 7 Oct 2009 19:11:52 -0000 1.1
@@ -0,0 +1,75 @@
+
+
+
+
+
+ select
+ g.group_name,
+ g.group_id
+ from
+ groups g,
+ acs_objects ao
+ where
+ g.group_id = ao.object_id
+ and
+ ao.context_id = :package_id
+
+
+
+
+
+ select
+ g.group_name,
+ g.group_id
+ from
+ groups g,
+ acs_objects ao
+ where
+ g.group_id = ao.object_id
+ and
+ ao.context_id = :package_id
+
+
+
+
+
+ insert into eduwiki_groups_map
+ (eduwiki_id, party_id)
+ values
+ (:data_item_id, :group_id)
+
+
+
+
+
+ insert into eduwiki_pages_map
+ (eduwiki_id, page_id, party_id, index_p)
+ values
+ (:data_item_id, :eduwiki_page_id, :eduwiki_party_id, 't')
+
+
+
+
+
+ select dmra.user_id as party_id,
+ p.first_names,
+ p.last_name
+ from dotlrn_member_rels_approved dmra,
+ persons p
+ where dmra.community_id = :community_id
+ and dmra.user_id = p.person_id
+ and dmra.rel_type = 'dotlrn_student_rel'
+
+
+
+
+
+ select page_id as eduwiki_page_id,
+ party_id as eduwiki_party_id,
+ index_p as page_index_p
+ from eduwiki_pages_map
+ where eduwiki_id = :data_item_id
+
+
+
+
Index: openacs-4/packages/eduwiki/www/admin/eduwiki-remove-group.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki/www/admin/eduwiki-remove-group.adp,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki/www/admin/eduwiki-remove-group.adp 7 Oct 2009 19:11:52 -0000 1.1
@@ -0,0 +1 @@
+#eduwiki.Group_member_removed#
Index: openacs-4/packages/eduwiki/www/admin/eduwiki-remove-group.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki/www/admin/eduwiki-remove-group.tcl,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki/www/admin/eduwiki-remove-group.tcl 7 Oct 2009 19:11:52 -0000 1.1
@@ -0,0 +1,37 @@
+# /packages/eduwiki/www/admin/eduwiki-remove-group.tcl
+
+ad_page_contract {
+ Page to remove groups from tasks
+
+ @author Hector Amado (hr_amado@galileo.edu)
+ @creation-date 2009-07-13
+ @cvs-id $Id: eduwiki-remove-group.tcl,v 1.1 2009/10/07 19:11:52 hramado Exp $
+} {
+ {group_id_list ""}
+ eduwiki_id:integer,notnull
+}
+
+set community_id [dotlrn_community::get_community_id]
+set package_id [ad_conn package_id]
+
+# save group page
+set group_id_list [string trim $group_id_list]
+if { [llength $group_id_list] > 0 } {
+ db_transaction {
+ foreach eduwiki_group_id $group_id_list {
+ #remove_groups
+ db_dml delete_eduwiki_group_map { *SQL* }
+
+ db_foreach select_eduwiki_pages_map { *SQL* } {
+ #foreach page
+ #delete xowiki pages
+ }
+
+ #remove_pages
+ db_dml delete_eduwiki_pages_map { *SQL* }
+ }
+ }
+}
+
+ad_returnredirect [export_vars -base "groups-admin" {eduwiki_id}]
+ad_script_abort
Index: openacs-4/packages/eduwiki/www/admin/eduwiki-remove-group.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki/www/admin/eduwiki-remove-group.xql,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki/www/admin/eduwiki-remove-group.xql 7 Oct 2009 19:11:52 -0000 1.1
@@ -0,0 +1,28 @@
+
+
+
+
+
+ delete from eduwiki_groups_map
+ where party_id = :eduwiki_group_id
+ and eduwiki_id = :eduwiki_id
+
+
+
+
+
+ delete from eduwiki_pages_map
+ where party_id = :eduwiki_group_id
+ and eduwiki_id = :eduwiki_id
+
+
+
+
+
+ select page_id from eduwiki_pages_map
+ where party_id = :eduwiki_group_id
+ and eduwiki_id = :eduwiki_id
+
+
+
+
Index: openacs-4/packages/eduwiki/www/admin/group-add-2.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki/www/admin/group-add-2.adp,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki/www/admin/group-add-2.adp 7 Oct 2009 19:11:52 -0000 1.1
@@ -0,0 +1,5 @@
+
+ #eduwiki.Group_created# @group_name@
+
+ #eduwiki.Group_creation_error#
+
\ No newline at end of file
Index: openacs-4/packages/eduwiki/www/admin/group-add-2.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki/www/admin/group-add-2.tcl,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki/www/admin/group-add-2.tcl 7 Oct 2009 19:11:52 -0000 1.1
@@ -0,0 +1,68 @@
+# /packages/eduwiki/www/admin/group-add-2.tcl
+
+ad_page_contract {
+ Page to add groups
+
+ @author Hector Amado (hr_amado@galileo.edu)
+ @creation-date 2009-06-03
+ @cvs-id $Id: group-add-2.tcl,v 1.1 2009/10/07 19:11:52 hramado Exp $
+} {
+ eduwiki_id:integer,notnull
+ {group_name ""}
+}
+
+set community_id [dotlrn_community::get_community_id]
+set package_id [ad_conn package_id]
+set group_id ""
+
+# get EduwikiTask info
+set eduwiki_task_id [content::item::get_live_revision -item_id $eduwiki_id]
+db_1row get_instance_select [::eduwiki::EduwikiTask instance_select_query \
+ -parent_id $package_id \
+ -from_clause ", eduwiki_tasks e" \
+ -select_attributes [list eduwiki_id \
+ eduwiki_category \
+ eduwiki_visible_all_p \
+ eduwiki_editable_all_p \
+ eduwiki_create_all_p \
+ eduwiki_evaluation_related_p \
+ "description as eduwiki_description" \
+ "bt.title as eduwiki_title" \
+ "name as eduwiki_name" \
+ "to_char(release_date,'YYYY MM DD HH24 MI SS') as publish_date" \
+ "to_char(close_date,'YYYY MM DD HH24 MI SS') as close_date"] \
+ -where_clause "e.eduwiki_id = acs_objects.object_id and e.eduwiki_id = :eduwiki_task_id" \
+ ]
+
+
+
+if { ![empty_string_p $group_name] } {
+ db_transaction {
+ set group_id [group::new -group_name $group_name -context_id $package_id]
+ #add to eduwiki_id
+ if {![empty_string_p $group_id]} {
+ set eduwiki_group_id $group_id
+ set group_name [group::get_element -group_id $eduwiki_group_id -element "group_name"]
+ if {![empty_string_p $group_name]} {
+ db_dml insert_eduwiki_group_map { *SQL* }
+ set eduwiki_group_title "$eduwiki_title ($group_name)"
+ set eduwiki_page_data [eduwiki::create_page -page_title $eduwiki_group_title]
+ set eduwiki_page_id [lindex $eduwiki_page_data 0]
+ if { ![empty_string_p $eduwiki_page_id] && ![empty_string_p $item_id] } {
+ db_dml insert_eduwiki_pages_map { *SQL* }
+ eduwiki::set_eduwiki_permissions -eduwiki_page_id $eduwiki_page_id \
+ -party_id $eduwiki_group_id \
+ -eduwiki_category $eduwiki_category \
+ -eduwiki_visible_all_p $eduwiki_visible_all_p \
+ -eduwiki_editable_all_p $eduwiki_editable_all_p \
+ -eduwiki_create_all_p $eduwiki_create_all_p \
+ -eduwiki_index_p "t"
+ }
+ }
+ }
+
+ }
+}
+
+ad_returnredirect [export_vars -base "groups-admin" {{eduwiki_id $item_id} {group_ids $group_id}}]
+ad_script_abort
Index: openacs-4/packages/eduwiki/www/admin/group-add-2.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki/www/admin/group-add-2.xql,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki/www/admin/group-add-2.xql 7 Oct 2009 19:11:52 -0000 1.1
@@ -0,0 +1,22 @@
+
+
+
+
+
+ insert into eduwiki_groups_map
+ (eduwiki_id, party_id)
+ values
+ (:item_id, :eduwiki_group_id)
+
+
+
+
+
+ insert into eduwiki_pages_map
+ (eduwiki_id, page_id, party_id, index_p)
+ values
+ (:item_id, :eduwiki_page_id, :eduwiki_group_id, 't')
+
+
+
+
Index: openacs-4/packages/eduwiki/www/admin/group-add-member.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki/www/admin/group-add-member.adp,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki/www/admin/group-add-member.adp 7 Oct 2009 19:11:52 -0000 1.1
@@ -0,0 +1 @@
+#eduwiki.Group_member_added#
Index: openacs-4/packages/eduwiki/www/admin/group-add-member.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki/www/admin/group-add-member.tcl,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki/www/admin/group-add-member.tcl 7 Oct 2009 19:11:52 -0000 1.1
@@ -0,0 +1,43 @@
+# /packages/eduwiki/www/admin/group-add-member.tcl
+
+ad_page_contract {
+ Page to add members to group
+
+ @author Hector Amado (hr_amado@galileo.edu)
+ @creation-date 2009-06-04
+ @cvs-id $Id: group-add-member.tcl,v 1.1 2009/10/07 19:11:52 hramado Exp $
+} {
+ {selected_members_list ""}
+ group_id:integer,notnull
+ eduwiki_id:integer,notnull
+}
+
+set community_id [dotlrn_community::get_community_id]
+set package_id [ad_conn package_id]
+
+set selected_members_list [string trim $selected_members_list]
+if { [llength $selected_members_list] } {
+ db_transaction {
+ foreach user_id $selected_members_list {
+ group::add_member -no_perm_check -group_id $group_id -user_id $user_id
+ }
+ }
+}
+
+db_foreach select_group_pages { *SQL* } {
+ # page_item_id
+ # clean cache for groups item_id
+
+ if {[permission::cache_p]} {
+ set pattern $page_item_id
+ set cached_names [ns_cache names util_memoize]
+ foreach name $cached_names {
+ if {[regexp -nocase -- $pattern $name match]} {
+ ns_cache flush util_memoize $name
+ }
+ }
+ }
+}
+
+ad_returnredirect [export_vars -base "groups-admin" {eduwiki_id {group_ids $group_id}}]
+ad_script_abort
Index: openacs-4/packages/eduwiki/www/admin/group-add-member.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki/www/admin/group-add-member.xql,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki/www/admin/group-add-member.xql 7 Oct 2009 19:11:52 -0000 1.1
@@ -0,0 +1,11 @@
+
+
+
+
+
+ select page_id as page_item_id
+ from eduwiki_pages_map
+ where party_id = :group_id
+
+
+
Index: openacs-4/packages/eduwiki/www/admin/group-delete.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki/www/admin/group-delete.tcl,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki/www/admin/group-delete.tcl 7 Oct 2009 19:11:52 -0000 1.1
@@ -0,0 +1,43 @@
+# /packages/eduwiki/www/admin/group-add-2.tcl
+
+ad_page_contract {
+ Page to add groups
+
+ @author Hector Amado (hr_amado@galileo.edu)
+ @creation-date 2009-06-03
+ @cvs-id $Id: group-delete.tcl,v 1.1 2009/10/07 19:11:52 hramado Exp $
+} {
+ eduwiki_id:integer,notnull
+ group_id:integer,notnull
+ {confirm_p "f"}
+}
+
+set community_id [dotlrn_community::get_community_id]
+set package_id [ad_conn package_id]
+
+set count_eduwiki_pages [db_string get_count_eduwiki_pages { *SQL* } -default 0]
+set count_eduwiki_groups [db_string get_count_eduwiki_groups { *SQL* } -default 0]
+if { ![empty_string_p $group_id] } {
+
+ db_transaction {
+ # delete from table, set cr_item publish_status to production
+ # set object_type [group::delete $group_id]
+ #remove_groups
+ db_dml delete_eduwiki_group_map { *SQL* }
+
+ db_foreach select_eduwiki_pages_map { *SQL* } {
+ #foreach page set publish_status
+ db_dml update_pages_publish_state { *SQL* }
+ }
+
+ #remove pages relation
+ db_dml delete_eduwiki_pages_map { *SQL* }
+
+ } on_error {
+ ns_log notice "There was an error deleting group_id $group_id"
+ }
+
+}
+
+ad_returnredirect [export_vars -base "groups-admin" {eduwiki_id}]
+ad_script_abort
Index: openacs-4/packages/eduwiki/www/admin/group-delete.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki/www/admin/group-delete.xql,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki/www/admin/group-delete.xql 7 Oct 2009 19:11:52 -0000 1.1
@@ -0,0 +1,52 @@
+
+
+
+
+
+ select count(*)
+ from eduwiki_pages_map
+ where party_id = :group_id
+
+
+
+
+
+ select count(*)
+ from eduwiki_groups_map
+ where party_id = :group_id
+
+
+
+
+
+ delete from eduwiki_groups_map
+ where party_id = :group_id
+ and eduwiki_id = :eduwiki_id
+
+
+
+
+
+ delete from eduwiki_pages_map
+ where party_id = :group_id
+ and eduwiki_id = :eduwiki_id
+
+
+
+
+
+ select page_id from eduwiki_pages_map
+ where party_id = :group_id
+ and eduwiki_id = :eduwiki_id
+
+
+
+
+
+ update cr_items
+ set publish_status = 'production'
+ where item_id = :page_id
+
+
+
+
Index: openacs-4/packages/eduwiki/www/admin/group-remove-member.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki/www/admin/group-remove-member.adp,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki/www/admin/group-remove-member.adp 7 Oct 2009 19:11:52 -0000 1.1
@@ -0,0 +1 @@
+#eduwiki.Group_member_removed#
Index: openacs-4/packages/eduwiki/www/admin/group-remove-member.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki/www/admin/group-remove-member.tcl,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki/www/admin/group-remove-member.tcl 7 Oct 2009 19:11:52 -0000 1.1
@@ -0,0 +1,44 @@
+# /packages/eduwiki/www/admin/group-remove-member.tcl
+
+ad_page_contract {
+ Page to remove members from group
+
+ @author Hector Amado (hr_amado@galileo.edu)
+ @creation-date 2009-06-09
+ @cvs-id $Id: group-remove-member.tcl,v 1.1 2009/10/07 19:11:52 hramado Exp $
+} {
+ {selected_members_list ""}
+ group_id:integer,notnull
+ eduwiki_id:integer,notnull
+}
+
+set community_id [dotlrn_community::get_community_id]
+set package_id [ad_conn package_id]
+
+set selected_members_list [string trim $selected_members_list]
+if { [llength $selected_members_list] } {
+ db_transaction {
+ foreach user_id $selected_members_list {
+ group::remove_member -group_id $group_id -user_id $user_id
+ db_dml remove_from_approved_member_map { delete from party_approved_member_map where member_id = :user_id and party_id = :group_id }
+ }
+ }
+}
+
+db_foreach select_group_pages { *SQL* } {
+ # page_item_id
+ # clean cache for groups item_id
+
+ if {[permission::cache_p]} {
+ set pattern $page_item_id
+ set cached_names [ns_cache names util_memoize]
+ foreach name $cached_names {
+ if {[regexp -nocase -- $pattern $name match]} {
+ ns_cache flush util_memoize $name
+ }
+ }
+ }
+}
+
+ad_returnredirect [export_vars -base "groups-admin" {eduwiki_id {group_ids $group_id}}]
+ad_script_abort
Index: openacs-4/packages/eduwiki/www/admin/group-remove-member.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki/www/admin/group-remove-member.xql,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki/www/admin/group-remove-member.xql 7 Oct 2009 19:11:52 -0000 1.1
@@ -0,0 +1,11 @@
+
+
+
+
+
+ select page_id as page_item_id
+ from eduwiki_pages_map
+ where party_id = :group_id
+
+
+
Index: openacs-4/packages/eduwiki/www/admin/groups-admin.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki/www/admin/groups-admin.adp,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki/www/admin/groups-admin.adp 7 Oct 2009 19:11:52 -0000 1.1
@@ -0,0 +1,58 @@
+
+ @page_title;noquote@
+ @context;noquote@
+
+#eduwiki.back#
+#eduwiki.Group_Admin# : @eduwiki_title@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
#eduwiki.finish#
+
+
+
+
Index: openacs-4/packages/eduwiki/www/admin/groups-admin.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki/www/admin/groups-admin.tcl,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki/www/admin/groups-admin.tcl 7 Oct 2009 19:11:52 -0000 1.1
@@ -0,0 +1,167 @@
+# /packages/eduwiki/www/admin/groups-admin.tcl
+
+ad_page_contract {
+ Page to manage eduwiki groups
+
+ @author Hector Amado (hr_amado@galileo.edu)
+ @creation-date 2009-06-03
+ @cvs-id $Id: groups-admin.tcl,v 1.1 2009/10/07 19:11:52 hramado Exp $
+} {
+ eduwiki_id:integer,notnull
+ {mode "edit"}
+ {group_ids ""}
+ {group_task_ids ""}
+}
+
+set page_title "[_ eduwiki.Groups_manage_]"
+set context [list $page_title]
+set community_id [dotlrn_community::get_community_id]
+set eduwiki_package_id [ad_conn package_id]
+set cancel_url "eduwiki-index"
+
+# get eduwiki_id
+set eduwiki_title ""
+if {[exists_and_not_null eduwiki_id] && [::xo::db::Class exists_in_db -id $eduwiki_id]} {
+ set eduwiki_item_id [::eduwiki::EduwikiTask get_instance_from_db -item_id $eduwiki_id]
+ set eduwiki_title [$eduwiki_item_id set title]
+}
+
+
+ah::requires -sources "prototype,scriptaculous"
+
+template::head::add_javascript \
+ -src "/resources/eduwiki/groups-admin.js"
+
+set optionsgroups [db_list_of_lists get_groups_in_eduwiki { *SQL* }]
+if { ![empty_string_p $optionsgroups] } {
+ set optionsgroups [lsort $optionsgroups]
+} else {
+ set optionsgroups "{{[_ eduwiki.not_activity_groups]} {}}"
+}
+
+set comm_members_opts [db_list_of_lists get_students_in_comm { *SQL* }]
+if { ![empty_string_p $comm_members_opts] } {
+ set comm_members_opts [lsort $comm_members_opts]
+} else {
+ set comm_members_opts "{{[_ eduwiki.not_available_members]} {}}"
+}
+
+set group_name ""
+if { [info exists group_ids] } {
+ if { [llength $group_ids] } {
+
+ set groups_members_opts [db_list_of_lists get_students_for_group { *SQL* }]
+ if { ![empty_string_p $groups_members_opts] } {
+ set groups_members_opts [lsort $groups_members_opts]
+ } else {
+ set groups_members_opts "{{[_ eduwiki.not_members_in_group]} {}}"
+ }
+
+ #set comm_members_opts [db_list_of_lists get_students_not_in_group { *SQL* }]
+ #if { ![empty_string_p $comm_members_opts] } {
+ # set comm_members_opts [lsort $comm_members_opts]
+ #} else {
+ # set comm_members_opts "{{[_ eduwiki.not_available_members]} {}}"
+ #}
+
+ if {[llength $group_ids] == 1} {
+ set group_name [group::get_element -group_id [lindex $group_ids 0] -element "group_name"]
+ }
+
+ } else {
+ set groups_members_opts "{{[_ eduwiki.not_selected_group]} {}}"
+ }
+}
+
+set eduwiki_groups_opts [db_list_of_lists get_groups_in_eduwiki_task { *SQL* }]
+if { ![empty_string_p $eduwiki_groups_opts] } {
+ set eduwiki_groups_opts [lsort $eduwiki_groups_opts]
+} else {
+ set eduwiki_groups_opts "{{[_ eduwiki.not_activity_groups]} {}}"
+}
+
+ad_form -name eduwiki_groups -mode $mode -form {
+
+ {eduwiki_id:text(hidden)
+ {label ""}
+ {value $eduwiki_id}
+ {html {id eduwiki_id}}
+ }
+ {eduwiki_action:text(hidden),optional
+ {label ""}
+ {value ""}
+ {html {id eduwiki_action}}
+ }
+ {eduwiki_group_name:text,optional
+ {label "[_ eduwiki.Group_name_]"}
+ {html {size 15 id eduwiki_group_name}}
+ }
+ {eduwiki_groups_actualgroups:text,optional,multiple
+ {label "[_ eduwiki.Select_Groups]"}
+ {widget multiselect}
+ {options $optionsgroups}
+ {values $group_ids}
+ {html {size 10 id eduwiki_groups_actualgroups onChange "document.eduwiki_groups.submit();"}}
+ }
+ {eduwiki_groups_comm_members:text,optional,multiple
+ {label "[_ eduwiki.Comm_Members]"}
+ {widget multiselect}
+ {options $comm_members_opts}
+ {html {size 10 id eduwiki_groups_comm_members}}
+ }
+ {eduwiki_groups_members:text,optional,multiple
+ {label "[_ eduwiki.Groups_Members]"}
+ {widget multiselect}
+ {options $groups_members_opts}
+ {html {size 10 id eduwiki_groups_members}}
+ }
+ {eduwiki_task_groups:text,optional,multiple
+ {label "[_ eduwiki.task_Groups]"}
+ {widget multiselect}
+ {options $eduwiki_groups_opts}
+ {html {size 10}}
+ }
+} -on_submit {
+ # eduwiki_action
+ set base_url "groups-admin"
+ set selected_members_list ""
+ set group_id_list ""
+ if {![empty_string_p $eduwiki_action]} {
+ if { $eduwiki_action == "member_add" } {
+ set base_url "group-add-member"
+ set selected_members_list $eduwiki_groups_comm_members
+ }
+ if { $eduwiki_action == "member_remove" } {
+ set base_url "group-remove-member"
+ set selected_members_list $eduwiki_groups_members
+ }
+ if { $eduwiki_action == "group_to_task_add" } {
+ if {![empty_string_p $eduwiki_groups_actualgroups]} {
+ set base_url "eduwiki-add-group"
+ set group_id_list $eduwiki_groups_actualgroups
+ }
+ }
+ if { $eduwiki_action == "group_to_task_remove" } {
+ set base_url "eduwiki-remove-group"
+ set group_id_list $eduwiki_task_groups
+ }
+ if { $eduwiki_action == "add_group" && ![empty_string_p $eduwiki_group_name] } {
+ set base_url "group-add-2"
+ }
+ if { $eduwiki_action == "delete_group" } {
+ set base_url "group-delete"
+ }
+
+ }
+
+ set group_id ""
+ if { [llength $eduwiki_groups_actualgroups] == 1 } {
+ set group_id [lindex $eduwiki_groups_actualgroups 0]
+ }
+
+ ad_returnredirect [export_vars -base $base_url {eduwiki_id group_id selected_members_list group_id_list {group_name $eduwiki_group_name} {group_ids $eduwiki_groups_actualgroups} {group_task_ids $eduwiki_task_groups}}]
+ ad_script_abort
+}
+
+
+ad_return_template
Index: openacs-4/packages/eduwiki/www/admin/groups-admin.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki/www/admin/groups-admin.xql,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki/www/admin/groups-admin.xql 7 Oct 2009 19:11:52 -0000 1.1
@@ -0,0 +1,98 @@
+
+
+
+
+
+ select
+ p.last_name ||', '|| p.first_names as student_name,
+ p.person_id as student_id
+ from
+ persons p,
+ dotlrn_member_rels_approved app
+ where
+ app.community_id = :community_id
+ and app.user_id = p.person_id
+ and app.role = 'student'
+ and p.person_id not in (select map.object_id_two
+ from acs_rels map
+ where map.object_id_two = p.person_id
+ and map.object_id_one in (select party_id
+ from eduwiki_groups_map
+ where eduwiki_id = :eduwiki_id))
+ order by p.last_name asc
+
+
+
+
+
+
+ select
+ p.last_name ||', '|| p.first_names as student_name,
+ p.person_id as student_id
+ from
+ persons p,
+ dotlrn_member_rels_approved app
+ where
+ app.community_id = :community_id
+ and app.user_id = p.person_id
+ and app.role = 'student'
+ and p.person_id not in (select map.object_id_two from acs_rels map where map.object_id_two = p.person_id and map.object_id_one in ([join $group_ids ,]))
+ order by p.last_name asc
+
+
+
+
+
+
+ select
+ p.last_name ||', '|| p.first_names as student_name,
+ p.person_id as student_id
+ from
+ persons p,
+ dotlrn_member_rels_approved app
+ where
+ app.community_id = :community_id
+ and app.user_id = p.person_id
+ and app.role = 'student'
+ and p.person_id in (select map.object_id_two from acs_rels map where map.object_id_two = p.person_id and map.object_id_one in ([join $group_ids ,]))
+ order by p.last_name asc
+
+
+
+
+
+
+ select
+ g.group_name,
+ g.group_id
+ from
+ groups g,
+ acs_objects ao
+ where
+ g.group_id = ao.object_id
+ and
+ ao.context_id = :eduwiki_package_id
+ and
+ g.group_id in ( select g1.party_id
+ from eduwiki_groups_map g1
+ where g1.eduwiki_id = :eduwiki_id )
+
+
+
+
+
+ select
+ g.group_name,
+ g.group_id
+ from
+ groups g,
+ eduwiki_groups_map eg
+ where
+ g.group_id = eg.party_id
+ and
+ eg.eduwiki_id = :eduwiki_id
+
+
+
+
+
Index: openacs-4/packages/eduwiki/www/admin/index.vuh
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki/www/admin/index.vuh,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki/www/admin/index.vuh 7 Oct 2009 19:11:52 -0000 1.1
@@ -0,0 +1,9 @@
+if {[acs_user::site_wide_admin_p]} {
+ ::eduwiki::Package initialize
+ set l [expr {[lsearch -exact [ns_conn urlv] admin] + 1 }]
+ set path [join [lrange [ns_conn urlv] $l end] /]
+ rp_internal_redirect /packages/xowiki/www/admin/$path
+} else {
+ set package_url [ad_conn package_url]
+ ad_returnredirect "${package_url}admin/eduwiki-index"
+}
\ No newline at end of file
Index: openacs-4/packages/eduwiki/www/admin/list.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki/www/admin/list.adp,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki/www/admin/list.adp 7 Oct 2009 19:11:52 -0000 1.1
@@ -0,0 +1,43 @@
+
+ @title;noquote@
+ @title;noquote@
+ @context;noquote@
+
+
+
+
+
+
+
+
+
+
+@t1;noquote@
+
+
Index: openacs-4/packages/eduwiki/www/admin/list.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki/www/admin/list.tcl,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki/www/admin/list.tcl 7 Oct 2009 19:11:52 -0000 1.1
@@ -0,0 +1,155 @@
+::eduwiki::Package initialize -ad_doc {
+ This is the admin page for the package. It displays all entries
+ provides links to create, edit and delete these
+
+ @author Gustaf Neumann (gustaf.neumann@wu-wien.ac.at)
+ @creation-date Oct 23, 2005
+ @cvs-id $Id: list.tcl,v 1.1 2009/10/07 19:11:52 hramado Exp $
+
+ @param object_type show objects of this class and its subclasses
+} -parameter {
+ {-object_type:optional}
+ {-orderby:optional "last_modified,desc"}
+}
+
+set context [list index]
+
+# if object_type is specified, only list entries of this type;
+# otherwise show types and subtypes of $supertype
+if {![info exists object_type]} {
+ set per_type 0
+ set supertype ::xowiki::Page
+ set object_types [$supertype object_types]
+ set page_title "List of all kind of [$supertype set pretty_plural]"
+ set with_subtypes true
+ set object_type $supertype
+ set with_children true
+} else {
+ set per_type 1
+ set object_types [list $object_type]
+ set page_title "Index of [$object_type set pretty_plural]"
+ set with_subtypes false
+ set with_children true
+}
+
+set return_url [expr {$per_type ? [export_vars -base [::$package_id url] object_type] :
+ [::$package_id url]}]
+
+set category_url [export_vars -base [$package_id package_url] { {manage-categories 1} {object_id $package_id}}]
+
+set actions [subst {
+ Action new -label "[lang::message::lookup {} categories.Categories Categories]" \
+ -url $category_url
+}]
+foreach type $object_types {
+ set link [$package_id make_link -with_entities 0 \
+ $package_id edit-new {object_type $type} return_url autoname]
+ if {$link eq ""} continue
+ append actions [subst {
+ Action new \
+ -label "[_ xotcl-core.add [list type [$type pretty_name]]]" \
+ -url "$link" \
+ -tooltip "[_ xotcl-core.add_long [list type [$type pretty_name]]]"
+ }]
+}
+
+set ::individual_permissions [expr {[$package_id set policy] eq "::eduwiki::policy3"}]
+set ::with_publish_status 1
+
+TableWidget t1 -volatile \
+ -actions $actions \
+ -columns {
+ BulkAction objects -id name -actions {
+ Action new -label export -tooltip export -url export
+ Action new -label delete -tooltip delete -url bulk-delete
+ }
+ AnchorField edit -CSSclass edit-item-button -label "" -html {style "padding: 0px;"}
+ if {$::individual_permissions} {
+ ImageAnchorField permissions -src /resources/xowiki/permissions.png -width 16 \
+ -height 16 -border 0 -title "Manage Individual Permssions for this Item" \
+ -alt permsissions -label "" -html {style "padding: 2px;"}
+ }
+ if {$::with_publish_status} {
+ ImageAnchorField publish_status -orderby publish_status.src -src "" \
+ -width 8 -height 8 -border 0 -title "Toggle Publish Status" \
+ -alt "publish status" -label [_ xowiki.publish_status] -html {style "padding: 2px;text-align: center;"}
+ }
+ Field syndicated -label "RSS" -html {style "padding: 2px; text-align: center;"}
+ AnchorField page_order -label [_ xowiki.Page-page_order] -orderby page_order -html {style "padding: 2px;"}
+ AnchorField name -label [_ xowiki.Page-name] -orderby name -html {style "padding: 2px;"}
+ AnchorField title -label [_ xowiki.Page-title] -orderby title
+ Field object_type -label [_ xowiki.page_type] -orderby object_type -html {style "padding: 2px;"}
+ Field size -label "Size" -orderby size -html {align right style "padding: 2px;"}
+ Field last_modified -label [_ xowiki.Page-last_modified] -orderby last_modified
+ Field mod_user -label "By User" -orderby mod_user
+ AnchorField delete -CSSclass delete-item-button -label "" ;#-html {onClick "return(confirm('Confirm delete?'));"}
+ }
+
+foreach {att order} [split $orderby ,] break
+t1 orderby -order [expr {$order eq "asc" ? "increasing" : "decreasing"}] $att
+
+# -page_size 10
+# -page_number 1
+
+# for content_length, we need cr_revision and cannot use the base table
+set attributes [list revision_id content_length creation_user title page_order parent_id \
+ "to_char(last_modified,'YYYY-MM-DD HH24:MI:SS') as last_modified" ]
+
+set folder_id [::$package_id folder_id]
+foreach i [db_list get_syndicated {
+ select object_id from syndication s, cr_items ci
+ where object_id = ci.live_revision and parent_id = :folder_id
+}] { set syndicated($i) 1 }
+
+db_foreach instance_select \
+ [$object_type instance_select_query \
+ -folder_id $folder_id \
+ -with_subtypes $with_subtypes \
+ -from_clause ", xowiki_page p" \
+ -where_clause "p.page_id = bt.revision_id" \
+ -with_children $with_children \
+ -select_attributes $attributes \
+ -orderby ci.name \
+ ] {
+ set page_link [::$package_id pretty_link -parent_id $parent_id $name]
+ set name [::$package_id external_name -parent_id $parent_id $name]
+
+ t1 add \
+ -name $name \
+ -title $title \
+ -object_type [string map [list "::xowiki::" ""] $object_type] \
+ -name.href $page_link \
+ -last_modified $last_modified \
+ -syndicated [info exists syndicated($revision_id)] \
+ -size [expr {$content_length ne "" ? $content_length : 0}] \
+ -edit "" \
+ -edit.href [export_vars -base $page_link {{m edit} return_url}] \
+ -edit.title #xowiki.edit# \
+ -mod_user [::xo::get_user_name $creation_user] \
+ -delete "" \
+ -delete.href [export_vars -base [$package_id package_url] {{delete 1} item_id name return_url}] \
+ -delete.title #xowiki.delete#
+ if {$::individual_permissions} {
+ [t1 last_child] set permissions.href \
+ [export_vars -base permissions {item_id return_url}]
+ }
+ if {$::with_publish_status} {
+ # TODO: this should get some architectural support
+ if {$publish_status eq "ready"} {
+ set image active.png
+ set state "production"
+ } else {
+ set image inactive.png
+ set state "ready"
+ }
+ [t1 last_child] set publish_status.src /resources/xowiki/$image
+ [t1 last_child] set publish_status.href \
+ [export_vars -base [$package_id package_url]admin/set-publish-state \
+ {state revision_id return_url}]
+ }
+ [t1 last_child] set page_order $page_order
+ }
+
+set t1 [t1 asHTML]
+# db_foreach clobbers title, so re-establish it
+set title $page_title
Index: openacs-4/packages/eduwiki/www/admin/member-task-add.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki/www/admin/member-task-add.tcl,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki/www/admin/member-task-add.tcl 7 Oct 2009 19:11:52 -0000 1.1
@@ -0,0 +1,53 @@
+# /packages/eduwiki/www/admin/member-task-add.tcl
+
+ad_page_contract {
+ Page to add student to eduwiki task
+
+ @author Hector Amado (hr_amado@galileo.edu)
+ @creation-date 2009-08-05
+ @cvs-id $Id: member-task-add.tcl,v 1.1 2009/10/07 19:11:52 hramado Exp $
+} {
+ student_id:integer,notnull
+ eduwiki_id:integer,notnull
+}
+
+set community_id [dotlrn_community::get_community_id]
+set package_id [ad_conn package_id]
+
+# get EduwikiTask info
+set eduwiki_task_id [content::item::get_live_revision -item_id $eduwiki_id]
+db_1row get_instance_select [::eduwiki::EduwikiTask instance_select_query \
+ -parent_id $package_id \
+ -from_clause ", eduwiki_tasks e" \
+ -select_attributes [list eduwiki_id \
+ eduwiki_category \
+ eduwiki_visible_all_p \
+ eduwiki_editable_all_p \
+ eduwiki_create_all_p \
+ eduwiki_evaluation_related_p \
+ "description as eduwiki_description" \
+ "bt.title as eduwiki_title" \
+ "name as eduwiki_name" \
+ "to_char(release_date,'YYYY MM DD HH24 MI SS') as publish_date" \
+ "to_char(close_date,'YYYY MM DD HH24 MI SS') as close_date"] \
+ -where_clause "e.eduwiki_id = acs_objects.object_id and e.eduwiki_id = :eduwiki_task_id" \
+ ]
+
+# save student page
+
+set eduwiki_page_data [eduwiki::create_page -page_title $eduwiki_title]
+set eduwiki_page_id [lindex $eduwiki_page_data 0]
+if { ![empty_string_p $eduwiki_page_id] && ![empty_string_p $item_id] } {
+ set eduwiki_party_id $student_id
+ db_dml insert_eduwiki_pages_map { *SQL* }
+ eduwiki::set_eduwiki_permissions -eduwiki_page_id $eduwiki_page_id \
+ -party_id $eduwiki_party_id \
+ -eduwiki_category $eduwiki_category \
+ -eduwiki_visible_all_p $eduwiki_visible_all_p \
+ -eduwiki_editable_all_p $eduwiki_editable_all_p \
+ -eduwiki_create_all_p $eduwiki_create_all_p \
+ -eduwiki_index_p "t"
+}
+
+ad_returnredirect [export_vars -base "eduwiki-list" {{eduwiki_id $item_id}}]
+ad_script_abort
Index: openacs-4/packages/eduwiki/www/admin/member-task-add.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki/www/admin/member-task-add.xql,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki/www/admin/member-task-add.xql 7 Oct 2009 19:11:52 -0000 1.1
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+ insert into eduwiki_pages_map
+ (eduwiki_id, page_id, party_id, index_p)
+ values
+ (:item_id, :eduwiki_page_id, :eduwiki_party_id, 't')
+
+
+
+
Index: openacs-4/packages/eduwiki/www/admin/set-item-publish-state.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki/www/admin/set-item-publish-state.tcl,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki/www/admin/set-item-publish-state.tcl 7 Oct 2009 19:11:52 -0000 1.1
@@ -0,0 +1,31 @@
+#/packages/eduwiki/www/admin/set-item-publish-state.tcl
+
+::eduwiki::Package initialize -ad_doc {
+
+ Change item publish_state
+
+ @author Hector Amado (hr_amado@galileo.edu)
+ @creation-date 2009-07-28
+ @cvs-id $Id: set-item-publish-state.tcl,v 1.1 2009/10/07 19:11:52 hramado Exp $
+
+ @param item_id The item_id to change publish_state
+} -parameter {
+ {-publish_status "ready"}
+ {-item_id:integer}
+ {-eduwiki_id:integer}
+}
+
+permission::require_write_permission -object_id $item_id
+# change publish_state to task and pages
+db_transaction {
+
+ if { ($publish_status == "ready") || ($publish_status == "production") } {
+ db_dml update_pages_publish_state { *SQL* }
+ }
+
+} on_error {
+ ns_log notice "There was an error changing publish_status to item_id $item_id"
+}
+
+ad_returnredirect [export_vars -base "eduwiki-list" {eduwiki_id}]
+
Index: openacs-4/packages/eduwiki/www/admin/set-item-publish-state.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki/www/admin/set-item-publish-state.xql,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki/www/admin/set-item-publish-state.xql 7 Oct 2009 19:11:52 -0000 1.1
@@ -0,0 +1,11 @@
+
+
+
+
+
+ update cr_items
+ set publish_status = :publish_status
+ where item_id = :item_id
+
+
+
Index: openacs-4/packages/eduwiki/www/admin/set-publish-state.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki/www/admin/set-publish-state.tcl,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki/www/admin/set-publish-state.tcl 7 Oct 2009 19:11:52 -0000 1.1
@@ -0,0 +1,36 @@
+#/packages/eduwiki/www/admin/set-publish-state.tcl
+
+::eduwiki::Package initialize -ad_doc {
+
+ Change publish_state to EduwikiTask
+
+ @author Hector Amado (hr_amado@galileo.edu)
+ @creation-date 2009-07-27
+ @cvs-id $Id: set-publish-state.tcl,v 1.1 2009/10/07 19:11:52 hramado Exp $
+
+ @param eduwiki_id The eduwiki_id of the Task to change publish_state
+} -parameter {
+ {-publish_status "ready"}
+ {-item_id:integer}
+}
+
+permission::require_write_permission -object_id $item_id
+#::xo::db::CrItem delete -item_id $item_id
+# change publish_state to task and pages
+db_transaction {
+
+ if { ($publish_status == "ready") || ($publish_status == "production") } {
+ set eduwiki_item_id $item_id
+ db_dml update_publish_state { *SQL* }
+ db_foreach update_activity_pages { *SQL* } {
+ db_dml update_pages_publish_state { *SQL* }
+ }
+
+ }
+
+} on_error {
+ ns_log notice "There was an error changing publish_status to eduwiki_id $item_id"
+}
+
+ad_returnredirect "eduwiki-index"
+
Index: openacs-4/packages/eduwiki/www/admin/set-publish-state.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki/www/admin/set-publish-state.xql,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki/www/admin/set-publish-state.xql 7 Oct 2009 19:11:52 -0000 1.1
@@ -0,0 +1,28 @@
+
+
+
+
+
+ update cr_items
+ set publish_status = :publish_status
+ where item_id = :eduwiki_item_id
+
+
+
+
+
+ update cr_items
+ set publish_status = :publish_status
+ where item_id = :page_item_id
+
+
+
+
+
+ select page_id as page_item_id
+ from eduwiki_pages_map
+ where eduwiki_id = :eduwiki_item_id
+
+
+
+
Index: openacs-4/packages/eduwiki/www/prototypes/editor.page
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki/www/prototypes/editor.page,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki/www/prototypes/editor.page 7 Oct 2009 19:11:52 -0000 1.1
@@ -0,0 +1,31 @@
+::xowiki::Object new -title "RichText Editor Config" -text {
+
+ set xinha {richtext(richtext),nospell
+ {options {editor xinha plugins {
+ GetHtml ContextMenu CharacterMap TableOperations
+ ListType EditTag
+ } height 350px javascript {
+xinha_config.toolbar =
+ [
+ ["popupeditor"],
+ ["separator","formatblock","fontname","fontsize","bold","italic","underline","strikethrough"],
+ ["separator","forecolor","hilitecolor","textindicator"],
+ ["linebreak","separator","justifyleft","justifycenter","justifyright","justifyfull"],
+ ["separator","insertorderedlist","insertunorderedlist","outdent","indent"],
+ ["separator","inserthorizontalrule","createlink","insertimage","inserttable"],
+ ["linebreak","separator","undo","redo"],
+ ["separator","killword","clearfonts","removeformat"],
+ ["htmlmode"]
+ ];
+ }}}
+ {html {rows 15 cols 50 style {width: 90%}}}
+ {label \#xowiki.Page-text\#}
+ {htmlarea_p 1}}
+
+set name {text(hidden) {label \#xowiki.Page-name\#}}
+set autor {text(hidden) {label \#xowiki.Page-creator\#}}
+set descr {text(hidden),optional {label \#xowiki.description\#} {html {size 40 maxlength 50}} {values ""}}
+set tit {text {label \#eduwiki.Eduwiki_Title_\#} {html {size 40 maxlength 50}} {values ""}}
+set nslg {text(hidden) {label \#xowiki.Page-nls_language\#} {values "[lang::system::locale]"}}
+set widget_specs [list *,name $name *,creator $autor *,text $xinha *,title $tit *,description $descr *,nls_language $nslg]
+}
\ No newline at end of file
Index: openacs-4/packages/eduwiki/www/prototypes/index.page
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki/www/prototypes/index.page,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki/www/prototypes/index.page 7 Oct 2009 19:11:52 -0000 1.1
@@ -0,0 +1,10 @@
+::xowiki::Page new -title "#eduwiki.IndexPage#" -text {
+{
+>>left-col75<<
+{{activity-info}}
+{{eduwiki-activities-pages}}
+>><<
+>>right-col25<<
+
+>><< } text/html
+}
Index: openacs-4/packages/eduwiki/www/resources/groups-admin.js
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki/www/resources/groups-admin.js,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki/www/resources/groups-admin.js 7 Oct 2009 19:11:52 -0000 1.1
@@ -0,0 +1,179 @@
+/*
+ * Javascript Functions for group administration
+ * Eduwiki Package
+ */
+
+ function add_group_member() {
+ var selected_members = document.getElementById('eduwiki_groups_comm_members').options;
+ var selected_members_list = ""
+ var selected_members_count = 0
+
+ for ( i=0; i 0) {
+ if (selected_groups_count == 0) {
+ var msg_group1 = "You must select a group to add members";
+ alert(msg_group1);
+ } else {
+ if (selected_groups_count == 1) {
+ var selected_group_id = selected_groups_list;
+
+ document.getElementById('eduwiki_action').value = "member_add";
+ document.eduwiki_groups.submit();
+ } else {
+ alert("You must select only one group");
+ }
+ }
+ } else {
+ alert("You must select at least one member");
+ }
+ }
+
+ function remove_group_member() {
+ var selected_members = document.getElementById('eduwiki_groups_members').options;
+ var selected_members_list = ""
+ var selected_members_count = 0
+
+ for ( i=0; i 0) {
+ if (selected_groups_count == 0) {
+ alert("You must select a group to remove members");
+ } else {
+ if (selected_groups_count == 1) {
+ var selected_group_id = selected_groups_list;
+
+ document.getElementById('eduwiki_action').value = "member_remove";
+ document.eduwiki_groups.submit();
+ } else {
+ alert("You must select only one group");
+ }
+ }
+ } else {
+ alert("You must select at least one member");
+ }
+ }
+
+ function add_group_to_task() {
+ // get selected group_id
+ var selected_groups = document.getElementById('eduwiki_groups_actualgroups').options;
+ var eduwiki_id = document.getElementById('eduwiki_id').value;
+ var selected_groups_list = ""
+ var selected_groups_count = 0
+ for ( i=0; i div.form-label {
+ display: none;
+}
+div.xowiki-content div.hidden-field-set > div.form-widget {
+ margin-left: 0px;
+}
+div.xowiki-content div.hidden-field-set > div.form-widget > .compound-field {
+ border: 0px;
+}
+
+
+
+div.xowiki-content .margin-form fieldset .form-item-wrapper {
+ padding: 0px 0px 0px 0px;
+}
+
+/* mc stuff */
+div.xowiki-content table.mchoice td.selection {
+ width: 25px;
+ padding: 0px 5px 0px 25px;
+}
+div.xowiki-content form.feedback td.selection {
+ width: 25px;
+ padding: 0px 5px 0px 25px;
+}
+
+.Activities_URL {
+ background-color:#f1f3dc;
+ border: 1px solid #bfc8d8;
+ padding: 3px 5px;
+}
+
+div.cont_style {
+ margin-top:10px;
+ float:right;
+ width: 75%;
+}
+
+div.left_menu {
+ margin-top: -2px;
+ margin-left: -2px;
+ border: 1px solid #a9a9a9;
+ padding: 5px 5px;
+ background: #f8f8f8;
+ font-size:90%;
+}
+
+div.navbar {
+ float:left;
+ width: 24%;
+}
\ No newline at end of file
Index: openacs-4/packages/eduwiki-portlet/catalog/eduwiki-portlet.en_US.ISO-8859-1.xml
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki-portlet/catalog/eduwiki-portlet.en_US.ISO-8859-1.xml,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki-portlet/catalog/eduwiki-portlet.en_US.ISO-8859-1.xml 7 Oct 2009 19:21:16 -0000 1.1
@@ -0,0 +1,6 @@
+
+
+
+ Eduwiki Administration
+ Eduwiki
+
Index: openacs-4/packages/eduwiki-portlet/catalog/eduwiki-portlet.es_ES.ISO-8859-1.xml
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki-portlet/catalog/eduwiki-portlet.es_ES.ISO-8859-1.xml,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki-portlet/catalog/eduwiki-portlet.es_ES.ISO-8859-1.xml 7 Oct 2009 19:21:16 -0000 1.1
@@ -0,0 +1,6 @@
+
+
+
+ Administraci�n de Eduwiki
+ Eduwiki
+
Index: openacs-4/packages/eduwiki-portlet/catalog/eduwiki-portlet.es_GT.ISO-8859-1.xml
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki-portlet/catalog/eduwiki-portlet.es_GT.ISO-8859-1.xml,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki-portlet/catalog/eduwiki-portlet.es_GT.ISO-8859-1.xml 7 Oct 2009 19:21:16 -0000 1.1
@@ -0,0 +1,6 @@
+
+
+
+ Administraci�n de Eduwiki
+ Eduwiki
+
Index: openacs-4/packages/eduwiki-portlet/sql/oracle/eduwiki-portlet-admin-drop.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki-portlet/sql/oracle/eduwiki-portlet-admin-drop.sql,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki-portlet/sql/oracle/eduwiki-portlet-admin-drop.sql 7 Oct 2009 19:21:17 -0000 1.1
@@ -0,0 +1,117 @@
+--
+-- Copyright (C) 2001, 2002 MIT
+--
+-- This file is part of dotLRN.
+--
+-- dotLRN is free software; you can redistribute it and/or modify it under the
+-- terms of the GNU General Public License as published by the Free Software
+-- Foundation; either version 2 of the License, or (at your option) any later
+-- version.
+--
+-- dotLRN is distributed in the hope that it will be useful, but WITHOUT ANY
+-- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+-- FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+-- details.
+--
+
+--
+-- eduwiki-portlet-admin-drop.sql
+--
+
+-- Deletes a portal datasource for the static portlet factory
+-- (admin interface)
+
+-- Copyright (C) 2001 MIT
+-- @author Arjun Sanyal (arjun@openforce.net)
+
+-- $Id: eduwiki-portlet-admin-drop.sql,v 1.1 2009/10/07 19:21:17 hramado Exp $
+
+-- This is free software distributed under the terms of the GNU Public
+-- License version 2 or higher. Full text of the license is available
+-- from the GNU Project: http://www.fsf.org/copyleft/gpl.html
+
+declare
+ ds_id portal_datasources.datasource_id%TYPE;
+begin
+
+ begin
+ select datasource_id into ds_id
+ from portal_datasources
+ where name = 'eduwiki_admin_portlet';
+ exception when no_data_found then
+ ds_id := null;
+ end ;
+
+ if ds_id is NOT null then
+ portal_datasource.del(ds_id);
+ end if;
+
+ -- drop the hooks
+ foo := acs_sc_impl.delete_alias (
+
+ 'portal_datasource',
+ 'eduwiki_admin_portlet',
+ 'GetMyName'
+ );
+
+ foo := acs_sc_impl.delete_alias (
+
+ 'portal_datasource',
+ 'eduwiki_admin_portlet',
+ 'GetPrettyName'
+ );
+
+
+ foo := acs_sc_impl.delete_alias (
+
+ 'portal_datasource',
+ 'eduwiki_admin_portlet',
+ 'Link'
+ );
+
+ foo := acs_sc_impl.delete_alias (
+
+ 'portal_datasource',
+ 'eduwiki_admin_portlet',
+ 'AddSelfToPage'
+ );
+
+ foo := acs_sc_impl.delete_alias (
+
+ 'portal_datasource',
+ 'eduwiki_admin_portlet',
+ 'Show'
+ );
+
+ foo := acs_sc_impl.delete_alias (
+
+ 'portal_datasource',
+ 'eduwiki_admin_portlet',
+ 'Edit'
+ );
+
+ foo := acs_sc_impl.delete_alias (
+
+ 'portal_datasource',
+ 'eduwiki_admin_portlet',
+ 'RemoveSelfFromPage'
+ );
+
+ -- Drop the binding
+ foo := acs_sc_impl.del (
+ 'portal_datasource',
+ 'eduwiki_admin_portlet'
+ );
+
+ -- drop the impl
+ foo := acs_sc_impl.del (
+ 'portal_datasource',
+ 'eduwiki_admin_portlet'
+ );
+
+ return 0;
+end;
+/
+show errors
+
+
Index: openacs-4/packages/eduwiki-portlet/sql/oracle/eduwiki-portlet-admin.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki-portlet/sql/oracle/eduwiki-portlet-admin.sql,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki-portlet/sql/oracle/eduwiki-portlet-admin.sql 7 Oct 2009 19:21:17 -0000 1.1
@@ -0,0 +1,190 @@
+--
+-- Copyright (C) 2001, 2002 MIT
+--
+-- This file is part of dotLRN.
+--
+-- dotLRN is free software; you can redistribute it and/or modify it under the
+-- terms of the GNU General Public License as published by the Free Software
+-- Foundation; either version 2 of the License, or (at your option) any later
+-- version.
+--
+-- dotLRN is distributed in the hope that it will be useful, but WITHOUT ANY
+-- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+-- FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+-- details.
+--
+
+--
+-- eduwiki-admin-portlet.sql
+--
+
+-- Creates a portal datasource for the content portlet factory
+-- (admin interface)
+
+-- Copyright (C) 2001 MIT
+-- @author Arjun Sanyal (arjun@openforce.net)
+
+-- $Id: eduwiki-portlet-admin.sql,v 1.1 2009/10/07 19:21:17 hramado Exp $
+
+-- This is free software distributed under the terms of the GNU Public
+-- License version 2 or higher. Full text of the license is available
+-- from the GNU Project: http://www.fsf.org/copyleft/gpl.html
+--
+-- PostGreSQL port samir@symphinity.com 11 July 2002
+--
+
+declare
+ ds_id portal_datasources.datasource_id%TYPE;
+begin
+ ds_id := portal_datasource.new(
+ name => 'eduwiki_admin_portlet',
+ description => 'Displays the admin interface for the content data portlets '
+ );
+
+ -- 4 defaults procs
+
+ -- shadeable_p
+ portal_datasource.set_def_param (
+ datasource_id => ds_id,
+ config_required_p => 't',
+ configured_p => 't',
+ key => 'shadeable_p',
+ value => 'f'
+);
+
+ -- shaded_p
+ portal_datasource.set_def_param (
+ datasource_id => ds_id,
+ config_required_p => 't',
+ configured_p => 't',
+ key => 'shaded_p',
+ value => 'f'
+);
+
+ -- hideable_p
+ portal_datasource.set_def_param (
+ datasource_id => ds_id,
+ config_required_p => 't',
+ configured_p => 't',
+ key => 'hideable_p',
+ value => 't'
+);
+
+ -- user_editable_p
+ portal_datasource.set_def_param (
+ datasource_id => ds_id,
+ config_required_p => 't',
+ configured_p => 't',
+ key => 'user_editable_p',
+ value => 'f'
+);
+
+ -- link_hideable_p
+ portal_datasource.set_def_param (
+ datasource_id => ds_id,
+ config_required_p => 't',
+ configured_p => 't',
+ key => 'link_hideable_p',
+ value => 't'
+);
+
+
+ -- content-admin-specific procs
+
+ -- package_id must be configured
+ portal_datasource.set_def_param (
+ datasource_id => ds_id,
+ config_required_p => 't',
+ configured_p => 'f',
+ key => 'package_id',
+ value => ''
+);
+ return 0;
+end;
+\
+show errors
+
+declare
+ foo integer;
+begin
+ -- create the implementation
+ foo := acs_sc_impl.new (
+ 'portal_datasource',
+ 'eduwiki_admin_portlet',
+ 'eduwiki_admin_portlet'
+ );
+
+end;
+\
+show errors
+
+declare
+ foo integer;
+begin
+
+ -- add all the hooks
+ foo := acs_sc_impl.new_alias (
+ 'portal_datasource',
+ 'eduwiki_admin_portlet',
+ 'GetMyName',
+ 'eduwiki_admin_portlet::get_my_name',
+ 'TCL'
+ );
+
+ foo := acs_sc_impl.new_alias (
+ 'portal_datasource',
+ 'eduwiki_admin_portlet',
+ 'GetPrettyName',
+ 'eduwiki_admin_portlet::get_pretty_name',
+ 'TCL'
+ );
+
+ foo := acs_sc_impl.new_alias (
+ 'portal_datasource',
+ 'eduwiki_admin_portlet',
+ 'Link',
+ 'eduwiki_admin_portlet::link',
+ 'TCL'
+ );
+
+ foo := acs_sc_impl.new_alias (
+ 'portal_datasource',
+ 'eduwiki_admin_portlet',
+ 'AddSelfToPage',
+ 'eduwiki_admin_portlet::add_self_to_page',
+ 'TCL'
+ );
+
+ foo := acs_sc_impl.new_alias (
+ 'portal_datasource',
+ 'eduwiki_admin_portlet',
+ 'Show',
+ 'eduwiki_admin_portlet::show',
+ 'TCL'
+ );
+
+ foo := acs_sc_impl.new_alias (
+ 'portal_datasource',
+ 'eduwiki_admin_portlet',
+ 'Edit',
+ 'eduwiki_admin_portlet::edit',
+ 'TCL'
+ );
+
+ foo := acs_sc_impl.new_alias (
+ 'portal_datasource',
+ 'eduwiki_admin_portlet',
+ 'RemoveSelfFromPage',
+ 'eduwiki_admin_portlet::remove_self_from_page',
+ 'TCL'
+ );
+
+ -- Add the binding
+ acs_sc_binding.new (
+ contract_name => 'portal_datasource',
+ impl_name => 'eduwiki_admin_portlet'
+ );
+
+end;
+/
+show errors
\ No newline at end of file
Index: openacs-4/packages/eduwiki-portlet/sql/oracle/eduwiki-portlet-create.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki-portlet/sql/oracle/eduwiki-portlet-create.sql,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki-portlet/sql/oracle/eduwiki-portlet-create.sql 7 Oct 2009 19:21:16 -0000 1.1
@@ -0,0 +1,352 @@
+--
+-- Copyright (C) 2001, 2002 MIT
+--
+-- This file is part of dotLRN.
+--
+-- dotLRN is free software; you can redistribute it and/or modify it under the
+-- terms of the GNU General Public License as published by the Free Software
+-- Foundation; either version 2 of the License, or (at your option) any later
+-- version.
+--
+-- dotLRN is distributed in the hope that it will be useful, but WITHOUT ANY
+-- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+-- FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+-- details.
+--
+--
+-- Oracle port samir@symphinity.com 11 July 2002
+--
+
+-- table to differentiate between normal pages and activity pages inside content
+@ eduwiki-tables-create.sql
+
+declare
+ ds_id portal_datasources.datasource_id%TYPE;
+begin
+ ds_id := portal_datasource.new(
+ name => 'eduwiki_portlet',
+ description => 'Displays the content page as a portlet'
+ );
+
+ -- 4 defaults procs
+
+ -- shadeable_p
+ portal_datasource.set_def_param (
+ datasource_id => ds_id,
+ config_required_p => 't',
+ configured_p => 't',
+ key => 'shadeable_p',
+ value => 't'
+ );
+
+ -- shaded_p
+ portal_datasource.set_def_param (
+ datasource_id => ds_id,
+ config_required_p => 't',
+ configured_p => 't',
+ key => 'shaded_p',
+ value => 'f'
+ );
+
+ -- hideable_p
+ portal_datasource.set_def_param (
+ datasource_id => ds_id,
+ config_required_p => 't',
+ configured_p => 't',
+ key => 'hideable_p',
+ value => 't'
+ );
+
+ -- user_editable_p
+ portal_datasource.set_def_param (
+ datasource_id => ds_id,
+ config_required_p => 't',
+ configured_p => 't',
+ key => 'user_editable_p',
+ value => 'f'
+);
+
+ -- link_hideable_p
+ portal_datasource.set_def_param (
+ datasource_id => ds_id,
+ config_required_p => 't',
+ configured_p => 't',
+ key => 'link_hideable_p',
+ value => 't'
+);
+
+
+ -- content-specific procs
+
+ -- package_id must be configured
+ portal_datasource.set_def_param (
+ datasource_id => ds_id,
+ config_required_p => 't',
+ configured_p => 'f',
+ key => 'package_id',
+ value => ''
+);
+
+ portal_datasource.set_def_param (
+ datasource_id => ds_id,
+ config_required_p => 't',
+ configured_p => 'f',
+ key => 'page_name',
+ value => ''
+);
+
+end;
+/
+show errors
+
+declare
+ foo integer;
+begin
+
+ -- create the implementation
+ foo := acs_sc_impl.new (
+ impl_contract_name => 'portal_datasource',
+ impl_name => 'eduwiki_portlet',
+ impl_pretty_name => 'Content Portlet',
+ impl_owner_name => 'eduwiki_portlet'
+ );
+end;
+/
+show errors
+
+declare
+ foo integer;
+begin
+
+ -- add all the hooks
+ foo := acs_sc_impl.new_alias (
+ 'portal_datasource',
+ 'eduwiki_portlet',
+ 'GetMyName',
+ 'eduwiki_portlet::get_my_name',
+ 'TCL'
+ );
+
+ foo := acs_sc_impl.new_alias (
+ 'portal_datasource',
+ 'eduwiki_portlet',
+ 'GetPrettyName',
+ 'eduwiki_portlet::get_pretty_name',
+ 'TCL'
+ );
+
+ foo := acs_sc_impl.new_alias (
+ 'portal_datasource',
+ 'eduwiki_portlet',
+ 'Link',
+ 'eduwiki_portlet::link',
+ 'TCL'
+ );
+
+ foo := acs_sc_impl.new_alias (
+ 'portal_datasource',
+ 'eduwiki_portlet',
+ 'AddSelfToPage',
+ 'eduwiki_portlet::add_self_to_page',
+ 'TCL'
+ );
+
+ foo := acs_sc_impl.new_alias (
+ 'portal_datasource',
+ 'eduwiki_portlet',
+ 'Show',
+ 'eduwiki_portlet::show',
+ 'TCL'
+ );
+
+ foo := acs_sc_impl.new_alias (
+ 'portal_datasource',
+ 'eduwiki_portlet',
+ 'Edit',
+ 'eduwiki_portlet::edit',
+ 'TCL'
+ );
+
+ foo := acs_sc_impl.new_alias (
+ 'portal_datasource',
+ 'eduwiki_portlet',
+ 'RemoveSelfFromPage',
+ 'eduwiki_portlet::remove_self_from_page',
+ 'TCL'
+ );
+
+end;
+/
+show errors
+
+declare
+ foo integer;
+begin
+
+ -- Add the binding
+ acs_sc_binding.new (
+ contract_name => 'portal_datasource',
+ impl_name => 'eduwiki_portlet'
+ );
+
+
+end;
+/
+show errors
+
+declare
+ ds_id portal_datasources.datasource_id%TYPE;
+begin
+ ds_id := portal_datasource.new(
+ name => 'eduwiki_admin_portlet',
+ description => 'Displays the admin interface for the content data portlets '
+ );
+
+ -- 4 defaults procs
+
+ -- shadeable_p
+ portal_datasource.set_def_param (
+ datasource_id => ds_id,
+ config_required_p => 't',
+ configured_p => 't',
+ key => 'shadeable_p',
+ value => 'f'
+);
+
+ -- shaded_p
+ portal_datasource.set_def_param (
+ datasource_id => ds_id,
+ config_required_p => 't',
+ configured_p => 't',
+ key => 'shaded_p',
+ value => 'f'
+);
+
+ -- hideable_p
+ portal_datasource.set_def_param (
+ datasource_id => ds_id,
+ config_required_p => 't',
+ configured_p => 't',
+ key => 'hideable_p',
+ value => 't'
+);
+
+ -- user_editable_p
+ portal_datasource.set_def_param (
+ datasource_id => ds_id,
+ config_required_p => 't',
+ configured_p => 't',
+ key => 'user_editable_p',
+ value => 'f'
+);
+
+ -- link_hideable_p
+ portal_datasource.set_def_param (
+ datasource_id => ds_id,
+ config_required_p => 't',
+ configured_p => 't',
+ key => 'link_hideable_p',
+ value => 't'
+);
+
+
+ -- content-admin-specific procs
+
+ -- package_id must be configured
+ portal_datasource.set_def_param (
+ datasource_id => ds_id,
+ config_required_p => 't',
+ configured_p => 'f',
+ key => 'package_id',
+ value => ''
+);
+
+end;
+/
+show errors
+
+declare
+ foo integer;
+begin
+ -- create the implementation
+ foo := acs_sc_impl.new (
+ impl_contract_name => 'portal_datasource',
+ impl_name => 'eduwiki_admin_portlet',
+ impl_pretty_name => 'Content Admin Portlet',
+ impl_owner_name => 'eduwiki_admin_portlet'
+ );
+
+end;
+/
+show errors
+
+declare
+ foo integer;
+begin
+
+ -- add all the hooks
+ foo := acs_sc_impl.new_alias (
+ 'portal_datasource',
+ 'eduwiki_admin_portlet',
+ 'GetMyName',
+ 'eduwiki_admin_portlet::get_my_name',
+ 'TCL'
+ );
+
+ foo := acs_sc_impl.new_alias (
+ 'portal_datasource',
+ 'eduwiki_admin_portlet',
+ 'GetPrettyName',
+ 'eduwiki_admin_portlet::get_pretty_name',
+ 'TCL'
+ );
+
+ foo := acs_sc_impl.new_alias (
+ 'portal_datasource',
+ 'eduwiki_admin_portlet',
+ 'Link',
+ 'eduwiki_admin_portlet::link',
+ 'TCL'
+ );
+
+ foo := acs_sc_impl.new_alias (
+ 'portal_datasource',
+ 'eduwiki_admin_portlet',
+ 'AddSelfToPage',
+ 'eduwiki_admin_portlet::add_self_to_page',
+ 'TCL'
+ );
+
+ foo := acs_sc_impl.new_alias (
+ 'portal_datasource',
+ 'eduwiki_admin_portlet',
+ 'Show',
+ 'eduwiki_admin_portlet::show',
+ 'TCL'
+ );
+
+ foo := acs_sc_impl.new_alias (
+ 'portal_datasource',
+ 'eduwiki_admin_portlet',
+ 'Edit',
+ 'eduwiki_admin_portlet::edit',
+ 'TCL'
+ );
+
+ foo := acs_sc_impl.new_alias (
+ 'portal_datasource',
+ 'eduwiki_admin_portlet',
+ 'RemoveSelfFromPage',
+ 'eduwiki_admin_portlet::remove_self_from_page',
+ 'TCL'
+ );
+
+ -- Add the binding
+ acs_sc_binding.new (
+ contract_name => 'portal_datasource',
+ impl_name => 'eduwiki_admin_portlet'
+ );
+
+end;
+/
+show errors
\ No newline at end of file
Index: openacs-4/packages/eduwiki-portlet/sql/oracle/eduwiki-portlet-drop.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki-portlet/sql/oracle/eduwiki-portlet-drop.sql,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki-portlet/sql/oracle/eduwiki-portlet-drop.sql 7 Oct 2009 19:21:16 -0000 1.1
@@ -0,0 +1,190 @@
+--
+-- Copyright (C) 2001, 2002 MIT
+--
+-- This file is part of dotLRN.
+--
+-- dotLRN is free software; you can redistribute it and/or modify it under the
+-- terms of the GNU General Public License as published by the Free Software
+-- Foundation; either version 2 of the License, or (at your option) any later
+-- version.
+--
+-- dotLRN is distributed in the hope that it will be useful, but WITHOUT ANY
+-- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+-- FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+-- details.
+--
+--
+-- Oracle port samir@symphinity.com 11 July 2002
+--
+
+@ eduwiki-tables-drop.sql
+
+declare
+ ds_id portal_datasources.datasource_id%TYPE;
+begin
+
+ begin
+ select datasource_id into ds_id
+ from portal_datasources
+ where name = 'eduwiki_portlet';
+ exception when no_data_found then
+ ds_id := null;
+ end;
+
+ if ds_id is not null then
+ portal_datasource.del(ds_id);
+ end if;
+
+end;
+/
+show errors
+
+declare
+ foo integer;
+begin
+
+ -- drop the hooks
+ foo := acs_sc_impl.delete_alias (
+ 'portal_datasource',
+ 'eduwiki_portlet',
+ 'GetMyName'
+ );
+
+ foo := acs_sc_impl.delete_alias (
+ 'portal_datasource',
+ 'eduwiki_portlet',
+ 'GetPrettyName'
+ );
+
+
+ foo := acs_sc_impl.delete_alias (
+ 'portal_datasource',
+ 'eduwiki_portlet',
+ 'Link'
+ );
+
+ foo := acs_sc_impl.delete_alias (
+ 'portal_datasource',
+ 'eduwiki_portlet',
+ 'AddSelfToPage'
+ );
+
+ foo := acs_sc_impl.delete_alias (
+ 'portal_datasource',
+ 'eduwiki_portlet',
+ 'Show'
+ );
+
+ foo := acs_sc_impl.delete_alias (
+ 'portal_datasource',
+ 'eduwiki_portlet',
+ 'Edit'
+ );
+
+ foo := acs_sc_impl.delete_alias (
+ 'portal_datasource',
+ 'eduwiki_portlet',
+ 'RemoveSelfFromPage'
+ );
+
+ -- Drop the binding
+ acs_sc_binding.del (
+ 'portal_datasource',
+ 'eduwiki_portlet'
+ );
+
+ -- drop the impl
+ foo := acs_sc_impl.del (
+ 'portal_datasource',
+ 'eduwiki_portlet'
+ );
+
+end;
+/
+show errors
+
+declare
+ ds_id portal_datasources.datasource_id%TYPE;
+begin
+
+ begin
+ select datasource_id into ds_id
+ from portal_datasources
+ where name = 'eduwiki_admin_portlet';
+ exception when no_data_found then
+ ds_id := null;
+ end ;
+
+ if ds_id is NOT null then
+ portal_datasource.del(ds_id);
+ end if;
+
+ -- drop the hooks
+ foo := acs_sc_impl.delete_alias (
+
+ 'portal_datasource',
+ 'eduwiki_admin_portlet',
+ 'GetMyName'
+ );
+
+ foo := acs_sc_impl.delete_alias (
+
+ 'portal_datasource',
+ 'eduwiki_admin_portlet',
+ 'GetPrettyName'
+ );
+
+
+ foo := acs_sc_impl.delete_alias (
+
+ 'portal_datasource',
+ 'eduwiki_admin_portlet',
+ 'Link'
+ );
+
+ foo := acs_sc_impl.delete_alias (
+
+ 'portal_datasource',
+ 'eduwiki_admin_portlet',
+ 'AddSelfToPage'
+ );
+
+ foo := acs_sc_impl.delete_alias (
+
+ 'portal_datasource',
+ 'eduwiki_admin_portlet',
+ 'Show'
+ );
+
+ foo := acs_sc_impl.delete_alias (
+
+ 'portal_datasource',
+ 'eduwiki_admin_portlet',
+ 'Edit'
+ );
+
+ foo := acs_sc_impl.delete_alias (
+
+ 'portal_datasource',
+ 'eduwiki_admin_portlet',
+ 'RemoveSelfFromPage'
+ );
+
+ -- Drop the binding
+ foo := acs_sc_impl.del (
+ 'portal_datasource',
+ 'eduwiki_admin_portlet'
+ );
+
+ -- drop the impl
+ foo := acs_sc_impl.del (
+ 'portal_datasource',
+ 'eduwiki_admin_portlet'
+ );
+
+ return 0;
+end;
+/
+show errors
+
+
Index: openacs-4/packages/eduwiki-portlet/sql/oracle/eduwiki-portlet-portlet-drop.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki-portlet/sql/oracle/eduwiki-portlet-portlet-drop.sql,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki-portlet/sql/oracle/eduwiki-portlet-portlet-drop.sql 7 Oct 2009 19:21:16 -0000 1.1
@@ -0,0 +1,119 @@
+--
+-- Copyright (C) 2001, 2002 MIT
+--
+-- This file is part of dotLRN.
+--
+-- dotLRN is free software; you can redistribute it and/or modify it under the
+-- terms of the GNU General Public License as published by the Free Software
+-- Foundation; either version 2 of the License, or (at your option) any later
+-- version.
+--
+-- dotLRN is distributed in the hope that it will be useful, but WITHOUT ANY
+-- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+-- FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+-- details.
+--
+
+--
+-- eduwiki-portlet-portlet-drop.sql
+--
+
+-- Deletes a portal datasource for the content portlet factory
+
+-- Copyright (C) 2001 MIT
+-- @author Arjun Sanyal (arjun@openforce.net)
+
+-- $Id: eduwiki-portlet-portlet-drop.sql,v 1.1 2009/10/07 19:21:16 hramado Exp $
+
+-- This is free software distributed under the terms of the GNU Public
+-- License version 2 or higher. Full text of the license is available
+-- from the GNU Project: http://www.fsf.org/copyleft/gpl.html
+
+declare
+ ds_id portal_datasources.datasource_id%TYPE;
+begin
+
+ begin
+ select datasource_id into ds_id
+ from portal_datasources
+ where name = 'eduwiki_portlet';
+ exception when no_data_found then
+ ds_id := null;
+ end;
+
+ if ds_id is not null then
+ portal_datasource.del(ds_id);
+ end if;
+
+end;
+\
+show errors
+
+declare
+ foo integer;
+begin
+
+ -- drop the hooks
+ foo := acs_sc_impl.delete_alias (
+ 'portal_datasource',
+ 'eduwiki_portlet',
+ 'GetMyName'
+ );
+
+ foo := acs_sc_impl.delete_alias (
+ 'portal_datasource',
+ 'eduwiki_portlet',
+ 'GetPrettyName'
+ );
+
+
+ foo := acs_sc_impl.delete_alias (
+ 'portal_datasource',
+ 'eduwiki_portlet',
+ 'Link'
+ );
+
+ foo := acs_sc_impl.delete_alias (
+ 'portal_datasource',
+ 'eduwiki_portlet',
+ 'AddSelfToPage'
+ );
+
+ foo := acs_sc_impl.delete_alias (
+ 'portal_datasource',
+ 'eduwiki_portlet',
+ 'Show'
+ );
+
+ foo := acs_sc_impl.delete_alias (
+ 'portal_datasource',
+ 'eduwiki_portlet',
+ 'Edit'
+ );
+
+ foo := acs_sc_impl.delete_alias (
+ 'portal_datasource',
+ 'eduwiki_portlet',
+ 'RemoveSelfFromPage'
+ );
+
+ -- Drop the binding
+ acs_sc_binding.del (
+ 'portal_datasource',
+ 'eduwiki_portlet'
+ );
+
+ -- drop the impl
+ foo := acs_sc_impl.del (
+ 'portal_datasource',
+ 'eduwiki_portlet'
+ );
+
+end;
+\
+show errors
+
+
+
+
+
Index: openacs-4/packages/eduwiki-portlet/sql/oracle/eduwiki-portlet-portlet.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki-portlet/sql/oracle/eduwiki-portlet-portlet.sql,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki-portlet/sql/oracle/eduwiki-portlet-portlet.sql 7 Oct 2009 19:21:16 -0000 1.1
@@ -0,0 +1,204 @@
+--
+-- Copyright (C) 2001, 2002 MIT
+--
+-- This file is part of dotLRN.
+--
+-- dotLRN is free software; you can redistribute it and/or modify it under the
+-- terms of the GNU General Public License as published by the Free Software
+-- Foundation; either version 2 of the License, or (at your option) any later
+-- version.
+--
+-- dotLRN is distributed in the hope that it will be useful, but WITHOUT ANY
+-- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+-- FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+-- details.
+--
+
+--
+-- eduwiki-portlet-portlet.sql
+--
+
+-- Creates a portal datasource for the content portlet factory
+
+-- Copyright (C) 2001 MIT
+-- @author Arjun Sanyal (arjun@openforce.net)
+
+-- $Id: eduwiki-portlet-portlet.sql,v 1.1 2009/10/07 19:21:16 hramado Exp $
+
+-- This is free software distributed under the terms of the GNU Public
+-- License version 2 or higher. Full text of the license is available
+-- from the GNU Project: http://www.fsf.org/copyleft/gpl.html
+
+declare
+ ds_id portal_datasources.datasource_id%TYPE;
+begin
+ ds_id := portal_datasource.new(
+ name => 'eduwiki_portlet',
+ description => 'Displays the content page as a portlet'
+ );
+
+ -- 4 defaults procs
+
+ -- shadeable_p
+ portal_datasource.set_def_param (
+ datasource_id => ds_id,
+ config_required_p => 't',
+ configured_p => 't',
+ key => 'shadeable_p',
+ value => 't'
+ );
+
+ -- shaded_p
+ portal_datasource.set_def_param (
+ datasource_id => ds_id,
+ config_required_p => 't',
+ configured_p => 't',
+ key => 'shaded_p',
+ value => 'f'
+ );
+
+ -- hideable_p
+ portal_datasource.set_def_param (
+ datasource_id => ds_id,
+ config_required_p => 't',
+ configured_p => 't',
+ key => 'hideable_p',
+ value => 't'
+ );
+
+ -- user_editable_p
+ portal_datasource.set_def_param (
+ datasource_id => ds_id,
+ config_required_p => 't',
+ configured_p => 't',
+ key => 'user_editable_p',
+ value => 'f'
+);
+
+ -- link_hideable_p
+ portal_datasource.set_def_param (
+ datasource_id => ds_id,
+ config_required_p => 't',
+ configured_p => 't',
+ key => 'link_hideable_p',
+ value => 't'
+);
+
+
+ -- content-specific procs
+
+ -- package_id must be configured
+ portal_datasource.set_def_param (
+ datasource_id => ds_id,
+ config_required_p => 't',
+ configured_p => 'f',
+ key => 'package_id',
+ value => ''
+);
+
+ portal_datasource.set_def_param (
+ datasource_id => ds_id,
+ config_required_p => 't',
+ configured_p => 'f',
+ key => 'page_name',
+ value => ''
+);
+
+end;
+\
+show errors
+
+declare
+ foo integer;
+begin
+
+ -- create the implementation
+ foo := acs_sc_impl.new (
+ impl_contract_name => 'portal_datasource',
+ impl_name => 'eduwiki_portlet',
+ impl_pretty_name => 'Content Portlet',
+ impl_owner_name => 'eduwiki_portlet'
+ );
+end;
+\
+show errors
+
+declare
+ foo integer;
+begin
+
+ -- add all the hooks
+ foo := acs_sc_impl.new_alias (
+ 'portal_datasource',
+ 'eduwiki_portlet',
+ 'GetMyName',
+ 'eduwiki_portlet::get_my_name',
+ 'TCL'
+ );
+
+ foo := acs_sc_impl.new_alias (
+ 'portal_datasource',
+ 'eduwiki_portlet',
+ 'GetPrettyName',
+ 'eduwiki_portlet::get_pretty_name',
+ 'TCL'
+ );
+
+ foo := acs_sc_impl.new_alias (
+ 'portal_datasource',
+ 'eduwiki_portlet',
+ 'Link',
+ 'eduwiki_portlet::link',
+ 'TCL'
+ );
+
+ foo := acs_sc_impl.new_alias (
+ 'portal_datasource',
+ 'eduwiki_portlet',
+ 'AddSelfToPage',
+ 'eduwiki_portlet::add_self_to_page',
+ 'TCL'
+ );
+
+ foo := acs_sc_impl.new_alias (
+ 'portal_datasource',
+ 'eduwiki_portlet',
+ 'Show',
+ 'eduwiki_portlet::show',
+ 'TCL'
+ );
+
+ foo := acs_sc_impl.new_alias (
+ 'portal_datasource',
+ 'eduwiki_portlet',
+ 'Edit',
+ 'eduwiki_portlet::edit',
+ 'TCL'
+ );
+
+ foo := acs_sc_impl.new_alias (
+ 'portal_datasource',
+ 'eduwiki_portlet',
+ 'RemoveSelfFromPage',
+ 'eduwiki_portlet::remove_self_from_page',
+ 'TCL'
+ );
+
+end;
+\
+show errors
+
+declare
+ foo integer;
+begin
+
+ -- Add the binding
+ acs_sc_binding.new (
+ contract_name => 'portal_datasource',
+ impl_name => 'eduwiki_portlet'
+ );
+
+
+end;
+\
+show errors
\ No newline at end of file
Index: openacs-4/packages/eduwiki-portlet/sql/postgresql/eduwiki-portlet-admin-drop.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki-portlet/sql/postgresql/eduwiki-portlet-admin-drop.sql,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki-portlet/sql/postgresql/eduwiki-portlet-admin-drop.sql 7 Oct 2009 19:21:17 -0000 1.1
@@ -0,0 +1,118 @@
+--
+-- Copyright (C) 2001, 2002 MIT
+--
+-- This file is part of dotLRN.
+--
+-- dotLRN is free software; you can redistribute it and/or modify it under the
+-- terms of the GNU General Public License as published by the Free Software
+-- Foundation; either version 2 of the License, or (at your option) any later
+-- version.
+--
+-- dotLRN is distributed in the hope that it will be useful, but WITHOUT ANY
+-- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+-- FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+-- details.
+--
+
+--
+-- eduwiki-portlet-admin-drop.sql
+--
+
+-- Deletes a portal datasource for the static portlet factory
+-- (admin interface)
+
+-- Copyright (C) 2001 MIT
+-- @author Arjun Sanyal (arjun@openforce.net)
+
+-- $Id: eduwiki-portlet-admin-drop.sql,v 1.1 2009/10/07 19:21:17 hramado Exp $
+
+-- This is free software distributed under the terms of the GNU Public
+-- License version 2 or higher. Full text of the license is available
+-- from the GNU Project: http://www.fsf.org/copyleft/gpl.html
+--
+-- PostGreSQL port samir@symphinity.com 11 July 2002
+--
+
+
+
+create function inline_1()
+returns integer as '
+declare
+ ds_id portal_datasources.datasource_id%TYPE;
+begin
+
+ select datasource_id into ds_id
+ from portal_datasources
+ where name = ''eduwiki_admin_portlet'';
+
+ if not found then
+ RAISE EXCEPTION '' No datasource id found '', ds_id;
+ ds_id := null;
+ end if;
+
+ if ds_id is NOT null then
+ perform portal_datasource__delete(ds_id);
+ end if;
+
+ -- drop the hooks
+ perform acs_sc_impl_alias__delete (
+ ''portal_datasource'',
+ ''eduwiki_admin_portlet'',
+ ''GetMyName''
+ );
+
+ perform acs_sc_impl_alias__delete (
+ ''portal_datasource'',
+ ''eduwiki_admin_portlet'',
+ ''GetPrettyName''
+ );
+
+
+ perform acs_sc_impl_alias__delete (
+ ''portal_datasource'',
+ ''eduwiki_admin_portlet'',
+ ''Link''
+ );
+
+ perform acs_sc_impl_alias__delete (
+ ''portal_datasource'',
+ ''eduwiki_admin_portlet'',
+ ''AddSelfToPage''
+ );
+
+ perform acs_sc_impl_alias__delete (
+ ''portal_datasource'',
+ ''eduwiki_admin_portlet'',
+ ''Show''
+ );
+
+ perform acs_sc_impl_alias__delete (
+ ''portal_datasource'',
+ ''eduwiki_admin_portlet'',
+ ''Edit''
+ );
+
+ perform acs_sc_impl_alias__delete (
+ ''portal_datasource'',
+ ''eduwiki_admin_portlet'',
+ ''RemoveSelfFromPage''
+ );
+
+ -- Drop the binding
+ perform acs_sc_binding__delete (
+ ''portal_datasource'',
+ ''eduwiki_admin_portlet''
+ );
+
+ -- drop the impl
+ perform acs_sc_impl__delete (
+ ''portal_datasource'',
+ ''eduwiki_admin_portlet''
+ );
+
+ return 0;
+end;' language 'plpgsql';
+
+select inline_1();
+drop function inline_1();
+
Index: openacs-4/packages/eduwiki-portlet/sql/postgresql/eduwiki-portlet-admin.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki-portlet/sql/postgresql/eduwiki-portlet-admin.sql,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki-portlet/sql/postgresql/eduwiki-portlet-admin.sql 7 Oct 2009 19:21:17 -0000 1.1
@@ -0,0 +1,190 @@
+--
+-- Copyright (C) 2001, 2002 MIT
+--
+-- This file is part of dotLRN.
+--
+-- dotLRN is free software; you can redistribute it and/or modify it under the
+-- terms of the GNU General Public License as published by the Free Software
+-- Foundation; either version 2 of the License, or (at your option) any later
+-- version.
+--
+-- dotLRN is distributed in the hope that it will be useful, but WITHOUT ANY
+-- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+-- FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+-- details.
+--
+
+--
+-- eduwiki-admin-portlet.sql
+--
+
+-- Creates a portal datasource for the content portlet factory
+-- (admin interface)
+
+-- Copyright (C) 2001 MIT
+-- @author Arjun Sanyal (arjun@openforce.net)
+
+-- $Id: eduwiki-portlet-admin.sql,v 1.1 2009/10/07 19:21:17 hramado Exp $
+
+-- This is free software distributed under the terms of the GNU Public
+-- License version 2 or higher. Full text of the license is available
+-- from the GNU Project: http://www.fsf.org/copyleft/gpl.html
+--
+-- PostGreSQL port samir@symphinity.com 11 July 2002
+--
+
+create function inline_0()
+returns integer as '
+declare
+ ds_id portal_datasources.datasource_id%TYPE;
+begin
+ ds_id := portal_datasource__new(
+ ''eduwiki_admin_portlet'', -- name
+ ''Displays the admin interface for the content data portlets'' -- Description
+ );
+
+ -- 4 defaults procs
+
+ -- shadeable_p
+ perform portal_datasource__set_def_param (
+ ds_id, -- datasource_id
+ ''t'', -- config_required_p
+ ''t'', -- configured_p
+ ''shadeable_p'', -- key
+ ''f'' -- value
+);
+
+ -- shaded_p
+ perform portal_datasource__set_def_param (
+ ds_id,
+ ''t'',
+ ''t'',
+ ''shaded_p'',
+ ''f''
+);
+
+ -- hideable_p
+ perform portal_datasource__set_def_param (
+ ds_id,
+ ''t'',
+ ''t'',
+ ''hideable_p'',
+ ''t''
+);
+
+ -- user_editable_p
+ perform portal_datasource__set_def_param (
+ ds_id,
+ ''t'',
+ ''t'',
+ ''user_editable_p'',
+ ''f''
+);
+
+ -- link_hideable_p
+ perform portal_datasource__set_def_param (
+ ds_id,
+ ''t'',
+ ''t'',
+ ''link_hideable_p'',
+ ''t''
+);
+
+
+ -- content-admin-specific procs
+
+ -- package_id must be configured
+ perform portal_datasource__set_def_param (
+ ds_id,
+ ''t'',
+ ''f'',
+ ''package_id'',
+ ''''
+);
+ return 0;
+end;' language 'plpgsql';
+
+select inline_0();
+
+drop function inline_0();
+
+
+create function inline_1()
+returns integer as '
+begin
+ -- create the implementation
+ perform acs_sc_impl__new (
+ ''portal_datasource'',
+ ''eduwiki_admin_portlet'',
+ ''eduwiki_admin_portlet''
+ );
+
+ -- add all the hooks
+ perform acs_sc_impl_alias__new (
+ ''portal_datasource'',
+ ''eduwiki_admin_portlet'',
+ ''GetMyName'',
+ ''eduwiki_admin_portlet::get_my_name'',
+ ''TCL''
+ );
+
+ perform acs_sc_impl_alias__new (
+ ''portal_datasource'',
+ ''eduwiki_admin_portlet'',
+ ''GetPrettyName'',
+ ''eduwiki_admin_portlet::get_pretty_name'',
+ ''TCL''
+ );
+
+ perform acs_sc_impl_alias__new (
+ ''portal_datasource'',
+ ''eduwiki_admin_portlet'',
+ ''Link'',
+ ''eduwiki_admin_portlet::link'',
+ ''TCL''
+ );
+
+ perform acs_sc_impl_alias__new (
+ ''portal_datasource'',
+ ''eduwiki_admin_portlet'',
+ ''AddSelfToPage'',
+ ''eduwiki_admin_portlet::add_self_to_page'',
+ ''TCL''
+ );
+
+ perform acs_sc_impl_alias__new (
+ ''portal_datasource'',
+ ''eduwiki_admin_portlet'',
+ ''Show'',
+ ''eduwiki_admin_portlet::show'',
+ ''TCL''
+ );
+
+ perform acs_sc_impl_alias__new (
+ ''portal_datasource'',
+ ''eduwiki_admin_portlet'',
+ ''Edit'',
+ ''eduwiki_admin_portlet::edit'',
+ ''TCL''
+ );
+
+ perform acs_sc_impl_alias__new (
+ ''portal_datasource'',
+ ''eduwiki_admin_portlet'',
+ ''RemoveSelfFromPage'',
+ ''eduwiki_admin_portlet::remove_self_from_page'',
+ ''TCL''
+ );
+
+ -- Add the binding
+ perform acs_sc_binding__new (
+ ''portal_datasource'', -- contract_name
+ ''eduwiki_admin_portlet'' -- impl_name
+ );
+
+ return 0;
+end;' language 'plpgsql';
+
+select inline_1();
+
+drop function inline_1();
Index: openacs-4/packages/eduwiki-portlet/sql/postgresql/eduwiki-portlet-create.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki-portlet/sql/postgresql/eduwiki-portlet-create.sql,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki-portlet/sql/postgresql/eduwiki-portlet-create.sql 7 Oct 2009 19:21:17 -0000 1.1
@@ -0,0 +1,20 @@
+--
+-- Copyright (C) 2001, 2002 MIT
+--
+-- This file is part of dotLRN.
+--
+-- dotLRN is free software; you can redistribute it and/or modify it under the
+-- terms of the GNU General Public License as published by the Free Software
+-- Foundation; either version 2 of the License, or (at your option) any later
+-- version.
+--
+-- dotLRN is distributed in the hope that it will be useful, but WITHOUT ANY
+-- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+-- FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+-- details.
+--
+--
+-- PostGreSQL port samir@symphinity.com 11 July 2002
+--
+\i eduwiki-portlet-portlet.sql
+\i eduwiki-portlet-admin.sql
Index: openacs-4/packages/eduwiki-portlet/sql/postgresql/eduwiki-portlet-drop.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki-portlet/sql/postgresql/eduwiki-portlet-drop.sql,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki-portlet/sql/postgresql/eduwiki-portlet-drop.sql 7 Oct 2009 19:21:17 -0000 1.1
@@ -0,0 +1,20 @@
+--
+-- Copyright (C) 2001, 2002 MIT
+--
+-- This file is part of dotLRN.
+--
+-- dotLRN is free software; you can redistribute it and/or modify it under the
+-- terms of the GNU General Public License as published by the Free Software
+-- Foundation; either version 2 of the License, or (at your option) any later
+-- version.
+--
+-- dotLRN is distributed in the hope that it will be useful, but WITHOUT ANY
+-- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+-- FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+-- details.
+--
+--
+-- PostGreSQL port samir@symphinity.com 11 July 2002
+--
+\i eduwiki-portlet-portlet-drop.sql
+\i eduwiki-portlet-admin-drop.sql
Index: openacs-4/packages/eduwiki-portlet/sql/postgresql/eduwiki-portlet-portlet-drop.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki-portlet/sql/postgresql/eduwiki-portlet-portlet-drop.sql,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki-portlet/sql/postgresql/eduwiki-portlet-portlet-drop.sql 7 Oct 2009 19:21:17 -0000 1.1
@@ -0,0 +1,121 @@
+--
+-- Copyright (C) 2001, 2002 MIT
+--
+-- This file is part of dotLRN.
+--
+-- dotLRN is free software; you can redistribute it and/or modify it under the
+-- terms of the GNU General Public License as published by the Free Software
+-- Foundation; either version 2 of the License, or (at your option) any later
+-- version.
+--
+-- dotLRN is distributed in the hope that it will be useful, but WITHOUT ANY
+-- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+-- FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+-- details.
+--
+
+--
+-- eduwiki-portlet-portlet-drop.sql
+--
+
+-- Deletes a portal datasource for the content portlet factory
+
+-- Copyright (C) 2001 MIT
+-- @author Arjun Sanyal (arjun@openforce.net)
+
+-- $Id: eduwiki-portlet-portlet-drop.sql,v 1.1 2009/10/07 19:21:17 hramado Exp $
+
+-- This is free software distributed under the terms of the GNU Public
+-- License version 2 or higher. Full text of the license is available
+-- from the GNU Project: http://www.fsf.org/copyleft/gpl.html
+--
+-- PostGreSQL port samir@symphinity.com 11 July 2002
+--
+
+
+
+create function inline_1()
+returns integer as '
+declare
+ ds_id portal_datasources.datasource_id%TYPE;
+begin
+
+ select datasource_id into ds_id
+ from portal_datasources
+ where name = ''eduwiki_portlet'';
+
+ if not found then
+ RAISE EXCEPTION '' No datasource id found '', ds_id;
+ ds_id := null;
+ end if;
+
+ if ds_id is NOT null then
+ perform portal_datasource__delete(ds_id);
+ end if;
+
+ -- drop the hooks
+ perform acs_sc_impl_alias__delete (
+ ''portal_datasource'',
+ ''eduwiki_portlet'',
+ ''GetMyName''
+ );
+
+ perform acs_sc_impl_alias__delete (
+ ''portal_datasource'',
+ ''eduwiki_portlet'',
+ ''GetPrettyName''
+ );
+
+
+ perform acs_sc_impl_alias__delete (
+ ''portal_datasource'',
+ ''eduwiki_portlet'',
+ ''Link''
+ );
+
+ perform acs_sc_impl_alias__delete (
+ ''portal_datasource'',
+ ''eduwiki_portlet'',
+ ''AddSelfToPage''
+ );
+
+ perform acs_sc_impl_alias__delete (
+ ''portal_datasource'',
+ ''eduwiki_portlet'',
+ ''Show''
+ );
+
+ perform acs_sc_impl_alias__delete (
+ ''portal_datasource'',
+ ''eduwiki_portlet'',
+ ''Edit''
+ );
+
+ perform acs_sc_impl_alias__delete (
+ ''portal_datasource'',
+ ''eduwiki_portlet'',
+ ''RemoveSelfFromPage''
+ );
+
+ -- Drop the binding
+ perform acs_sc_binding__delete (
+ ''portal_datasource'',
+ ''eduwiki_portlet''
+ );
+
+ -- drop the impl
+ perform acs_sc_impl__delete (
+ ''portal_datasource'',
+ ''eduwiki_portlet''
+ );
+
+ return 0;
+end;' language 'plpgsql';
+
+select inline_1();
+drop function inline_1();
+
+
+
+
+
Index: openacs-4/packages/eduwiki-portlet/sql/postgresql/eduwiki-portlet-portlet.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki-portlet/sql/postgresql/eduwiki-portlet-portlet.sql,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki-portlet/sql/postgresql/eduwiki-portlet-portlet.sql 7 Oct 2009 19:21:17 -0000 1.1
@@ -0,0 +1,201 @@
+--
+-- Copyright (C) 2001, 2002 MIT
+--
+-- This file is part of dotLRN.
+--
+-- dotLRN is free software; you can redistribute it and/or modify it under the
+-- terms of the GNU General Public License as published by the Free Software
+-- Foundation; either version 2 of the License, or (at your option) any later
+-- version.
+--
+-- dotLRN is distributed in the hope that it will be useful, but WITHOUT ANY
+-- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+-- FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+-- details.
+--
+
+--
+-- eduwiki-portlet-portlet.sql
+--
+
+-- Creates a portal datasource for the content portlet factory
+
+-- Copyright (C) 2001 MIT
+-- @author Arjun Sanyal (arjun@openforce.net)
+
+-- $Id: eduwiki-portlet-portlet.sql,v 1.1 2009/10/07 19:21:17 hramado Exp $
+
+-- This is free software distributed under the terms of the GNU Public
+-- License version 2 or higher. Full text of the license is available
+-- from the GNU Project: http://www.fsf.org/copyleft/gpl.html
+--
+-- PostGreSQL port samir@symphinity.com 11 July 2002
+--
+
+
+create function inline_0()
+returns integer as '
+declare
+ ds_id portal_datasources.datasource_id%TYPE;
+begin
+ ds_id := portal_datasource__new(
+ ''eduwiki_portlet'', -- name
+ ''Displays an content page as a portlet'' -- description
+ );
+
+ -- 4 defaults procs
+
+ -- shadeable_p
+ perform portal_datasource__set_def_param (
+ ds_id, -- datasource_id
+ ''t'', -- config_required_p
+ ''t'', -- configured_p
+ ''shadeable_p'', -- key
+ ''t'' -- value
+ );
+
+ -- shaded_p
+ perform portal_datasource__set_def_param (
+ ds_id,
+ ''t'',
+ ''t'',
+ ''shaded_p'',
+ ''f''
+ );
+
+ -- hideable_p
+ perform portal_datasource__set_def_param (
+ ds_id,
+ ''t'',
+ ''t'',
+ ''hideable_p'',
+ ''t''
+ );
+
+ -- user_editable_p
+ perform portal_datasource__set_def_param (
+ ds_id,
+ ''t'',
+ ''t'',
+ ''user_editable_p'',
+ ''f''
+);
+
+ -- link_hideable_p
+ perform portal_datasource__set_def_param (
+ ds_id,
+ ''t'',
+ ''t'',
+ ''link_hideable_p'',
+ ''t''
+);
+
+
+ -- content-specific procs
+
+ -- package_id must be configured
+ perform portal_datasource__set_def_param (
+ ds_id,
+ ''t'',
+ ''f'',
+ ''package_id'',
+ ''''
+);
+
+ perform portal_datasource__set_def_param (
+ ds_id,
+ ''t'',
+ ''f'',
+ ''page_name'',
+ ''''
+);
+
+ return 0;
+end;' language 'plpgsql';
+
+select inline_0();
+
+drop function inline_0();
+
+
+create function inline_1()
+returns integer as '
+begin
+
+ -- create the implementation
+ perform acs_sc_impl__new (
+ ''portal_datasource'',
+ ''eduwiki_portlet'',
+ ''eduwiki_portlet''
+ );
+
+ -- add all the hooks
+ perform acs_sc_impl_alias__new (
+ ''portal_datasource'',
+ ''eduwiki_portlet'',
+ ''GetMyName'',
+ ''eduwiki_portlet::get_my_name'',
+ ''TCL''
+ );
+
+ perform acs_sc_impl_alias__new (
+ ''portal_datasource'',
+ ''eduwiki_portlet'',
+ ''GetPrettyName'',
+ ''eduwiki_portlet::get_pretty_name'',
+ ''TCL''
+ );
+
+ perform acs_sc_impl_alias__new (
+ ''portal_datasource'',
+ ''eduwiki_portlet'',
+ ''Link'',
+ ''eduwiki_portlet::link'',
+ ''TCL''
+ );
+
+ perform acs_sc_impl_alias__new (
+ ''portal_datasource'',
+ ''eduwiki_portlet'',
+ ''AddSelfToPage'',
+ ''eduwiki_portlet::add_self_to_page'',
+ ''TCL''
+ );
+
+ perform acs_sc_impl_alias__new (
+ ''portal_datasource'',
+ ''eduwiki_portlet'',
+ ''Show'',
+ ''eduwiki_portlet::show'',
+ ''TCL''
+ );
+
+ perform acs_sc_impl_alias__new (
+ ''portal_datasource'',
+ ''eduwiki_portlet'',
+ ''Edit'',
+ ''eduwiki_portlet::edit'',
+ ''TCL''
+ );
+
+ perform acs_sc_impl_alias__new (
+ ''portal_datasource'',
+ ''eduwiki_portlet'',
+ ''RemoveSelfFromPage'',
+ ''eduwiki_portlet::remove_self_from_page'',
+ ''TCL''
+ );
+
+ -- Add the binding
+ perform acs_sc_binding__new (
+ ''portal_datasource'', -- contract_name
+ ''eduwiki_portlet'' -- impl_name
+ );
+
+
+ return 0;
+end;' language 'plpgsql';
+
+select inline_1();
+
+drop function inline_1();
Index: openacs-4/packages/eduwiki-portlet/tcl/apm-callback-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki-portlet/tcl/apm-callback-procs.tcl,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki-portlet/tcl/apm-callback-procs.tcl 7 Oct 2009 19:21:16 -0000 1.1
@@ -0,0 +1,16 @@
+ad_library {
+
+ @author Hector Amado (hr_amado@galileo.edu)
+ @creation-date 2009-06-01
+}
+
+namespace eval eduwiki-portlet::apm {}
+
+ad_proc -public eduwiki-portlet::apm::package_mount {
+ {-package_id:required}
+ {-node_id:required}
+} {
+ Check if packages needed are mounted, if not mount them!
+} {
+
+}
Index: openacs-4/packages/eduwiki-portlet/tcl/eduwiki-admin-portlet-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki-portlet/tcl/eduwiki-admin-portlet-procs.tcl,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki-portlet/tcl/eduwiki-admin-portlet-procs.tcl 7 Oct 2009 19:21:16 -0000 1.1
@@ -0,0 +1,67 @@
+ad_library {
+
+ Procedures to support the Educational Wiki Admin portlet
+
+ @author hr_amado@galileo.edu
+ @creation-date 2009-06-01
+
+}
+
+namespace eval eduwiki_admin_portlet {
+
+ ad_proc -private get_my_name {
+ } {
+ return "eduwiki_admin_portlet"
+ }
+
+ ad_proc -public get_pretty_name {
+ } {
+ return "#eduwiki-portlet.admin_pretty_name#"
+ }
+
+ ad_proc -private my_package_key {
+ } {
+ return "eduwiki-portlet"
+ }
+
+ ad_proc -public link {
+ } {
+ return ""
+ }
+
+ ad_proc -public add_self_to_page {
+ {-portal_id:required}
+ {-package_id:required}
+ } {
+ Adds a content admin PE to the given portal
+ } {
+ return [portal::add_element_parameters \
+ -portal_id $portal_id \
+ -portlet_name [get_my_name] \
+ -key package_id \
+ -value $package_id
+ ]
+ }
+
+ ad_proc -public remove_self_from_page {
+ {-portal_id:required}
+ } {
+ Removes content PE from the given page
+ } {
+ # This is easy since there's one and only one instace_id
+ portal::remove_element \
+ -portal_id $portal_id \
+ -portlet_name [get_my_name]
+ }
+
+ ad_proc -public show {
+ cf
+ } {
+ Display the PE
+ } {
+ portal::show_proc_helper \
+ -package_key [my_package_key] \
+ -config_list $cf \
+ -template_src "eduwiki-admin-portlet"
+ }
+}
Index: openacs-4/packages/eduwiki-portlet/tcl/eduwiki-portlet-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki-portlet/tcl/eduwiki-portlet-procs.tcl,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki-portlet/tcl/eduwiki-portlet-procs.tcl 7 Oct 2009 19:21:16 -0000 1.1
@@ -0,0 +1,76 @@
+ad_library {
+
+ Procedures to supports eduwiki
+
+ @author Hector Amado (hr_amado@galileo.edu)
+ @creation-date 2009-06-01
+ @arch-tag: 16A7A29A-271C-49B1-8787-935755BF5583
+ @cvs-id $Id: eduwiki-portlet-procs.tcl,v 1.1 2009/10/07 19:21:16 hramado Exp $
+}
+
+namespace eval eduwiki_portlet {
+
+ ad_proc -private get_my_name {
+ } {
+ return "eduwiki_portlet"
+ }
+
+ ad_proc -public get_pretty_name {
+ } {
+ return "#eduwiki-portlet.pretty_name#"
+ }
+
+ ad_proc -private my_package_key {
+ } {
+ return "eduwiki-portlet"
+ }
+
+ ad_proc -public link {
+ } {
+ return ""
+ }
+
+ ad_proc -public add_self_to_page {
+ {-portal_id:required}
+ {-package_id:required}
+ {-param_action:required}
+ {-force_region ""}
+ {-page_name "" }
+ } {
+ Adds a static PE to the given page
+ } {
+ # Don't call me. Use static_portal_content:: instead"
+ return [portal::add_element_parameters \
+ -portal_id $portal_id \
+ -portlet_name [get_my_name] \
+ -value $package_id \
+ -force_region [parameter::get_from_package_key -package_key [my_package_key] -parameter content_portal_force_region] \
+ -page_name [parameter::get_from_package_key -package_key [my_package_key] -parameter content_portal_page_name] \
+ -pretty_name [get_pretty_name] \
+ -param_action $param_action]
+ }
+
+ ad_proc -public remove_self_from_page {
+ {-portal_id:required}
+ {-package_id:required}
+ } {
+ Removes static PE from the given page
+ } {
+ # This is easy since there's one and only one instace_id
+ portal::remove_element_parameters \
+ -portal_id $portal_id \
+ -portlet_name [get_my_name] \
+ -value $package_id
+ }
+
+ ad_proc -public show {
+ cf
+ } {
+ } {
+ portal::show_proc_helper \
+ -package_key [my_package_key] \
+ -config_list $cf \
+ -template_src "eduwiki-portlet"
+ }
+}
+
Index: openacs-4/packages/eduwiki-portlet/www/eduwiki-admin-portlet.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki-portlet/www/eduwiki-admin-portlet.adp,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki-portlet/www/eduwiki-admin-portlet.adp 7 Oct 2009 19:21:16 -0000 1.1
@@ -0,0 +1,11 @@
+
\ No newline at end of file
Index: openacs-4/packages/eduwiki-portlet/www/eduwiki-admin-portlet.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki-portlet/www/eduwiki-admin-portlet.tcl,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki-portlet/www/eduwiki-admin-portlet.tcl 7 Oct 2009 19:21:16 -0000 1.1
@@ -0,0 +1,33 @@
+# /packages/eduwiki-portlet/www/eduwiki-admin-portlet.tcl
+
+ad_page_contract {
+ The display logic for the eduwiki admin portlet
+ @author Hector Amado hr_amado@galileo.edu
+} {
+ package_id:optional
+ template_portal_id:optional
+ referer:optional
+ return_url:optional
+}
+
+if {![exists_and_not_null package_id]} {
+ set package_id [dotlrn_community::get_community_id]
+}
+
+set eduwiki_admin_url ""
+if { $package_id ne "" } {
+
+ if {![exists_and_not_null template_portal_id]} {
+ set template_portal_id [dotlrn_community::get_portal_id]
+ }
+
+ set element_pretty_name [parameter::get \
+ -parameter admin_portlet_element_pretty_name \
+ -default [_ eduwiki-portlet.admin_pretty_name]]
+
+ array set config $cf
+
+ set applet_url [apm_package_url_from_id $config(package_id)]
+ set eduwiki_admin_url [export_vars -base "${applet_url}admin/eduwiki-index"]
+ set eduwiki_new_url [export_vars -base "${applet_url}admin/eduwiki-new"]
+}
Index: openacs-4/packages/eduwiki-portlet/www/eduwiki-portlet.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki-portlet/www/eduwiki-portlet.adp,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki-portlet/www/eduwiki-portlet.adp 7 Oct 2009 19:21:16 -0000 1.1
@@ -0,0 +1,4 @@
+#eduwiki.activities#
+#eduwiki.Add_eduwiki_#
+@html;noquote@
+
Index: openacs-4/packages/eduwiki-portlet/www/eduwiki-portlet.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/eduwiki-portlet/www/eduwiki-portlet.tcl,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/eduwiki-portlet/www/eduwiki-portlet.tcl 7 Oct 2009 19:21:16 -0000 1.1
@@ -0,0 +1,52 @@
+array set config $cf
+set user_id [ad_conn user_id]
+set package_id [ad_conn package_id]
+set community_id [dotlrn_community::get_community_id]
+
+set eduwiki_url [site_node::get_url_from_object_id -object_id $config(package_id)]
+set folder_id [content::folder::get_folder_from_package -package_id $config(package_id)]
+set admin_p 0
+set admin_p [permission::permission_p -object_id $config(package_id) -party_id $user_id -privilege admin]
+#
+# We define a table with an action to add new items
+#
+
+TableWidget index -volatile \
+ -actions "" \
+ -columns {
+ AnchorField title -label "[_ eduwiki.Eduwiki_Title_]" -orderby title
+ }
+
+db_foreach instance_select \
+ [::eduwiki::EduwikiTask instance_select_query \
+ -parent_id $config(package_id) \
+ -from_clause ", eduwiki_tasks e" \
+ -select_attributes [list "object_id as eduwiki_id" title eduwiki_category creation_user \
+ "to_char(release_date,'DD-MM-YYYY HH24:MI:SS') as release_date" \
+ "to_char(close_date,'DD-MM-YYYY HH24:MI:SS') as close_date"]\
+ -where_clause "e.eduwiki_id = acs_objects.object_id and ci.publish_status = 'ready'" \
+ ] {
+
+ set page_url [eduwiki::get_best_eduwiki_page_url -eduwiki_id $item_id \
+ -user_id $user_id \
+ -folder_id $folder_id \
+ -eduwiki_category $eduwiki_category ]
+ if {[empty_string_p $page_url]} {
+ set page_url [export_vars -base $eduwiki_url {{eduwiki_id $item_id}}]
+ } else {
+ set page_url "${eduwiki_url}$page_url"
+ set page_url [export_vars -base $page_url {{m view}}]
+ }
+
+ index add \
+ -title $title \
+ -title.href $page_url
+ }
+
+
+ if { [llength [$index children]] } {
+ set html [index asHTML]
+ } else {
+ set html "[_ eduwiki.There_are_not_eduwiki_activities]"
+ }
+