"
+ } elseif {$arg eq "box"} {
+ return "
"
+ } elseif {$arg eq ""} {
+ return "
"
+ }
+ }
+ Page instproc anchor arg {
+ set label $arg
+ set link $arg
+ regexp {^(.*)[|](.*)$} $arg _ link label
+ if {[string match http*//* $link]} {
+ return "
$label"
+ } else {
+ my instvar parent_id
+ [my info class] instvar object_type
+ if {[regexp {^:(..):(.*)$} $link _ lang stripped]} {
+ set lang_item_id [CrItem lookup \
+ -title $lang:$stripped -parent_id $parent_id]
+ my log "lang lookup for '$lang:$stripped' returned $lang_item_id"
+ if {$lang_item_id} {
+ set css_class "found"
+ set link [export_vars -base view {{item_id $lang_item_id}}]
+ } else {
+ set css_class "undefined"
+ set last_page_id [my set item_id]
+ set link [export_vars -base edit {object_type {title $lang:$stripped} last_page_id}]
+ }
+ my lappend lang_links \
+ "
"
+ return ""
+ }
+ set link_type link
+ regexp {^([^:]+):([^:]+:.*)$} $link _ link_type link
+ if {[regexp {^..:(.*)$} $link _ stripped_label]} {
+ if {$label eq $arg} {set label $stripped_label}
+ } {
+ set link [my lang]:$link
+ }
+ set item_id [::Generic::CrItem lookup \
+ -title $link -parent_id $parent_id]
+ if {$item_id} {
+ my lappend references [list $item_id $link_type]
+ set link [export_vars -base view {item_id}]
+ return "
$label"
+ } else {
+ set link [export_vars -base edit {object_type {title $label}}]
+ return "
\[ $label
\] "
+ }
+ }
+ }
+ Page instproc references {} {
+ [my info class] instvar table_name
+ my instvar item_id
+ set l [db_list_of_lists references \
+ "SELECT page,ci.name,link_type from xowiki_references, cr_items ci \
+ where reference=$item_id and ci.item_id = page"]
+ set refs [list]
+ foreach e $l {
+ set link [export_vars -base view {{item_id {[lindex $e 0]}}}]
+ lappend refs "
[lindex $e 1]"
+ }
+ return [join $refs ", "]
+ }
+
+ Page instproc substitute_markup {source} {
+ set baseclass [expr {[[my info class] exists RE] ? [my info class] : [self class]}]
+ $baseclass instvar RE
+ my log "-- baseclass for RE = $baseclass"
+
+ set content ""
+ foreach l [split [lindex $source 0] \n] {
+ set l [my regsub-eval $RE(include) $l {my include "\1"}]
+ set l [my regsub-eval $RE(anchor) $l {my anchor "\1"}]
+ set l [my regsub-eval $RE(div) $l {my div "\2"}]
+ append content $l \n
+ }
+ return $content
+ }
+
+ Page instproc adp_subst {content} {
+ set __ignorelist [list RE __defaults name_method object_type_key]
+ foreach __v [my info vars] {
+ if {[info exists $__v]} continue
+ my instvar $__v
+ }
+ foreach __v [[my info class] info vars] {
+ if {[lsearch -exact $__ignorelist $__v]>-1} continue
+ if {[info exists $__v]} continue
+ [my info class] instvar $__v
+ }
+ set __ignorelist [list __v __ignorelist __varlist __template_variables__ \
+ text item_id content]
+ set __varlist [list]
+ set __template_variables__ "
\n"
+ foreach __v [lsort [info vars]] {
+ if {[lsearch -exact $__ignorelist $__v]>-1} continue
+ lappend __varlist $__v
+ append __template_variables__ "- $__v: '[set $__v]'\n"
+ }
+ append __template_variables__ "
\n"
+ regsub -all [template::adp_variable_regexp] $content {\1@\2;noquote@} content
+ set template_code [template::adp_compile -string $content]
+ if {[catch {set template_value [template::adp_eval template_code]} errmsg]} {
+ return "Error in Page $title: $errmsg
$content
Possible values are$__template_variables__"
+ }
+ return $template_value
+ }
+
+ Page instproc get_content {} {
+ my log "--"
+ set content [my substitute_markup [my set text]]
+ }
+
+ Page instproc update_references {page_id references} {
+ db_dml delete_references \
+ "delete from xowiki_references where page = $page_id"
+ foreach ref $references {
+ foreach {r link_type} $ref break
+ db_dml insert_reference \
+ "insert into xowiki_references (reference, link_type, page) \
+ values ($r,:link_type,$page_id)"
+ }
+ }
+
+ Page instproc render {-update_references:switch} {
+ my instvar item_id references lang title render_adp
+ my log "-- my class=[my info class]"
+ regexp {^(..):(.*)$} $title _ lang title
+ set references [list]
+ set content [my get_content]
+ if {$update_references} {
+ my update_references $item_id [lsort -unique $references]
+ }
+ if {![my exists lang_links]} {
+ my log "-- for some reason, no lang links"
+ my set lang_links ""
+ } else {
+ my set lang_links [join [my set lang_links] ", "]
+ }
+ return [expr {$render_adp ? [my adp_subst $content] : $content}]
+ }
+
+ #
+ # Plain Page methods
+ #
+
+ PlainPage instproc get_content {} {
+ my log "-- my class=[my info class]"
+ return [my substitute_markup [my set text]]
+ }
+
+ PlainPage instproc substitute_markup {source} {
+ [self class] instvar RE
+ set content ""
+ foreach l [split $source \n] {
+ set l [my regsub-eval $RE(include) $l {my include "\1"}]
+ set l [my regsub-eval $RE(anchor) $l {my anchor "\1"}]
+ set l [my regsub-eval $RE(div) $l {my div "\2"}]
+ append content $l \n
+ }
+ return $content
+ }
+
+ #
+ # Page Instance methods
+ #
+
+ PageInstance instproc get_content {} {
+ my instvar page_template
+ my log "-- fetching page_template = $page_template"
+ ::Generic::CrItem instantiate -item_id $page_template
+ $page_template volatile
+ return [my substitute_markup [$page_template set text]]
+ }
+ PageInstance instproc adp_subst {content} {
+ # add extra variables as instance variables
+ array set __ia [my set instance_attributes]
+ foreach var [array names __ia] {
+ #my log "-- set $var [list $__ia($var)]"
+ my set $var $__ia($var)
+ }
+ next
+ }
+}
\ No newline at end of file
Index: openacs-4/packages/xowiki/www/delete-revision.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/Attic/delete-revision.tcl,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/xowiki/www/delete-revision.tcl 14 Dec 2005 16:12:59 -0000 1.1
@@ -0,0 +1,16 @@
+ad_page_contract {
+ delete a revision of the content repository
+
+ @author Gustaf Neumann (gustaf.neumann@wu-wien.ac.at)
+ @creation-date Oct 23, 2005
+ @cvs-id $Id: delete-revision.tcl,v 1.1 2005/12/14 16:12:59 maltes Exp $
+} {
+ page_id:integer,notnull
+ revision_id:integer,notnull
+ title
+}
+
+db_exec_plsql delete_revision {
+ select content_revision__del(:revision_id)
+}
+ad_returnredirect [export_vars -base revisions {page_id title}]
\ No newline at end of file
Index: openacs-4/packages/xowiki/www/delete.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/Attic/delete.tcl,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/xowiki/www/delete.tcl 14 Dec 2005 16:12:59 -0000 1.1
@@ -0,0 +1,19 @@
+ad_page_contract {
+ This deletes a note
+
+ @author Your Name (you@example.com)
+ @cvs-id $Id: delete.tcl,v 1.1 2005/12/14 16:12:59 maltes Exp $
+
+ @param item_id The item_id of the note to delete
+ @param object_type the source class providing the data source for filling the form
+} -query {
+ item_id:integer
+}
+
+permission::require_write_permission -object_id $item_id
+
+::Generic::CrItem delete -item_id $item_id
+
+ad_returnredirect "."
+# stop running this code, since we're redirecting
+ad_script_abort
Index: openacs-4/packages/xowiki/www/edit.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/Attic/edit.adp,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/xowiki/www/edit.adp 14 Dec 2005 16:12:59 -0000 1.1
@@ -0,0 +1,25 @@
+
+ @page_title;noquote@
+ @context;noquote@
+ note.title
+
+
+
+
+
+
Index: openacs-4/packages/xowiki/www/edit.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/Attic/edit.tcl,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/xowiki/www/edit.tcl 14 Dec 2005 16:12:59 -0000 1.1
@@ -0,0 +1,64 @@
+ad_page_contract {
+ This is the edit page for notes.
+
+ @author Gustaf Neumann (gustaf.neumann@wu-wien.ac.at)
+ @creation-date Oct 23, 2005
+ @cvs-id $Id: edit.tcl,v 1.1 2005/12/14 16:12:59 maltes Exp $
+
+ @param item_id If present, item to be edited
+ @param title Name of the item
+ @param object_type the source class providing the data source for filling the form
+} -query {
+ item_id:integer,optional
+ title:optional
+ last_page_id:integer,optional
+ folder_id:integer,optional
+ {object_type:optional ::xowiki::Page}
+ page_template:integer,optional
+}
+
+#ns_log notice "-- [ad_conn url]/'[ns_conn query]' \
+# [info exists item_id] && [ns_set get [ns_getform] __new_p]"
+
+set package_id [ad_conn package_id]
+# if we have the item_id, we get the folder and object_type from the CR
+if {[info exists item_id] && [ns_set get [ns_getform] __new_p] ne "1"} {
+ set page [CrItem instantiate -item_id $item_id] ;# no revision_id yet
+ set folder_id [$page set parent_id]
+ set object_type [$page info class]
+} else {
+ set page [$object_type new]
+ if {![info exists folder_id]} {
+ set folder_id [$object_type require_folder -name xowiki]
+ }
+ $page set parent_id $folder_id
+}
+
+
+set fs_folder_id ""
+if {[info commands dotlrn_fs::get_community_shared_folder] ne ""} {
+ set fs_folder_id [dotlrn_fs::get_community_shared_folder \
+ -community_id [dotlrn_community::get_community_id]]
+}
+if {$fs_folder_id ne ""} {
+ set folderspec "folder_id $fs_folder_id"
+} else {
+ set folderspec ""
+}
+
+set form_class [$object_type getFormClass]
+$form_class create ::xowiki::f1 -volatile \
+ -data $page \
+ -folderspec $folderspec
+#ns_log notice "-- form f1 has class [::xowiki::f1 info class]"
+
+::xowiki::f1 generate
+::xowiki::f1 instvar page_title context
+
+if {[info exists item_id]} {
+ set rev_link [export_vars -base revisions {{page_id $item_id} title}]
+}
+set view_link [export_vars -base view {item_id}]
+if {[info exists last_page_id]} {
+ set back_link [export_vars -base view {{item_id $last_page_id} title}]
+}
Index: openacs-4/packages/xowiki/www/index.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/Attic/index.adp,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/xowiki/www/index.adp 14 Dec 2005 16:12:59 -0000 1.1
@@ -0,0 +1,9 @@
+
+ @page_title;noquote@
+ @context;noquote@
+
+Site-Wide Categories
+
+
+
Index: openacs-4/packages/xowiki/www/index.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/Attic/index.tcl,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/xowiki/www/index.tcl 14 Dec 2005 16:12:59 -0000 1.1
@@ -0,0 +1,56 @@
+ad_page_contract {
+ This is the main 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: index.tcl,v 1.1 2005/12/14 16:12:59 maltes Exp $
+
+ @param object_type show objects of this class and its subclasses
+} -query {
+ object_type:optional
+ folder_id:optional
+}
+
+set context [list]
+#set supertype CrWikiPage
+set supertype ::xowiki::Page
+
+# if object_type is specified, only list entries of this type;
+# otherwise show types and subtypes of $supertype
+if {![info exists object_type]} {
+ 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
+} else {
+ set object_types [list $object_type]
+ set page_title "Index of [$object_type set pretty_plural]"
+ set with_subtypes false
+}
+if {![info exists folder_id]} {
+ set folder_id [$object_type require_folder -name xowiki]
+}
+#ns_log notice "-- folder_id = $folder_id"
+
+# set up categories
+set package_id [ad_conn package_id]
+set category_map_url [export_vars -base \
+ "[site_node::get_package_url -package_key categories]cadmin/one-object" \
+ { { object_id $package_id } }]
+
+::Generic::List index \
+ -object_type $object_type \
+ -folder_id $folder_id \
+ -with_subtypes $with_subtypes \
+ -object_types $object_types \
+ -fields {
+ EDIT {}
+ VIEW {}
+ title {label "Name"}
+ object_type {label "Object Type"}
+ DELETE {}
+ }
+
+index generate -order_by cr.title
+
Index: openacs-4/packages/xowiki/www/make-live-revision.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/Attic/make-live-revision.tcl,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/xowiki/www/make-live-revision.tcl 14 Dec 2005 16:12:59 -0000 1.1
@@ -0,0 +1,16 @@
+ad_page_contract {
+ make file_id of content repository to current revision
+
+ @author Gustaf Neumann (gustaf.neumann@wu-wien.ac.at)
+ @creation-date Oct 23, 2005
+ @cvs-id $Id: make-live-revision.tcl,v 1.1 2005/12/14 16:12:59 maltes Exp $
+} {
+ file_id:integer,notnull
+ revision_id:integer,notnull
+ title
+}
+
+db_exec_plsql make_live {
+ select content_item__set_live_revision(:revision_id)
+}
+ad_returnredirect [export_vars -base file {file_id title}]
\ No newline at end of file
Index: openacs-4/packages/xowiki/www/portlet.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/portlet.adp,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/xowiki/www/portlet.adp 14 Dec 2005 16:12:59 -0000 1.1
@@ -0,0 +1,6 @@
+
+@title@
+
+
+
+
Index: openacs-4/packages/xowiki/www/portlet.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/portlet.tcl,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/xowiki/www/portlet.tcl 14 Dec 2005 16:12:59 -0000 1.1
@@ -0,0 +1,4 @@
+#
+if {![string match /* $portlet]} {
+ set portlet /packages/xowiki/www/portlets/$portlet
+}
Index: openacs-4/packages/xowiki/www/revisions.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/revisions.adp,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/xowiki/www/revisions.adp 14 Dec 2005 16:12:59 -0000 1.1
@@ -0,0 +1,15 @@
+
+@title;noquote@
+@title;noquote@
+@context;noquote@
+@page_id;noquote@
+
+
+
+
+ #file-storage.lt_Comments_on_this_file#
+
+
+
+ @gc_link;noquote@
+
Index: openacs-4/packages/xowiki/www/revisions.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/Attic/revisions.tcl,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/xowiki/www/revisions.tcl 14 Dec 2005 16:12:59 -0000 1.1
@@ -0,0 +1,34 @@
+ad_page_contract {
+ display information about revisions of content items
+
+ @author Gustaf Neumann (gustaf.neumann@wu-wien.ac.at)
+ @creation-date Oct 23, 2005
+ @cvs-id $Id: revisions.tcl,v 1.1 2005/12/14 16:12:59 maltes Exp $
+} {
+ page_id:integer,notnull
+ {title ""}
+} -properties {
+ title:onevalue
+ context:onevalue
+ page_id:onevalue
+ revisions:multirow
+ gc_comments:onevalue
+}
+
+set context [list [list [export_vars -base view {{item_id $page_id}}] $title ] \
+ [_ xotcl-core.revisions]]
+set title "[_ xotcl-core.revision_title] '$title'"
+
+# most things happen in the adp-include file from xotcl-core
+
+# stuff for general comments
+set return_url [ad_conn url]?[export_vars page_id]
+if { [apm_package_installed_p "general-comments"] &&
+ [ad_parameter "GeneralCommentsP" -package_id [ad_conn package_id]] } {
+ set gc_link [general_comments_create_link $page_id $return_url]
+ set gc_comments [general_comments_get_comments $page_id $return_url]
+} else {
+ set gc_link ""
+ set gc_comments ""
+}
+
Index: openacs-4/packages/xowiki/www/view.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/Attic/view.adp,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/xowiki/www/view.adp 14 Dec 2005 16:12:59 -0000 1.1
@@ -0,0 +1,94 @@
+
+ @title;noquote@
+ @context;noquote@
+ note.title
+
+
+
+
+
+
+
+
+@content;noquote@
+
+
+#xowiki.references_label# @references;noquote@
+@lang_links;noquote@
+@gc_comments;noquote@
+
+ #file-storage.lt_Comments_on_this_file#
+
+
+
+ @gc_link;noquote@
+
Index: openacs-4/packages/xowiki/www/view.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/Attic/view.tcl,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/xowiki/www/view.tcl 14 Dec 2005 16:12:59 -0000 1.1
@@ -0,0 +1,38 @@
+ad_page_contract {
+ view a wiki item
+
+ @author Gustaf Neumann (gustaf.neumann@wu-wien.ac.at)
+ @creation-date Oct 23, 2005
+ @cvs-id $Id: view.tcl,v 1.1 2005/12/14 16:12:59 maltes Exp $
+
+ @param item_id Item to be viewed
+ @param revision_id optional revision of the item
+ @param object_type the source class providing the data source
+
+} -query {
+ {item_id:integer 0}
+ {revision_id:integer 0}
+ {folder_id:optional}
+ {object_type:optional}
+}
+
+::xowiki::Page set recursion_count 0
+
+set page [::Generic::CrItem instantiate \
+ -item_id $item_id \
+ -revision_id $revision_id]
+
+set content [$page render]
+set references [$page references]
+
+# export title, text, and description to current scope
+$page instvar title text description lang_links
+
+set context [list $title]
+set rev_link [export_vars -base revisions {{page_id $item_id} title}]
+set edit_link [export_vars -base edit {item_id}]
+set new_link [export_vars -base edit {object_type}]
+
+set return_url [export_vars -base [ad_conn url] item_id]
+set gc_link [general_comments_create_link $item_id $return_url]
+set gc_comments [general_comments_get_comments $item_id $return_url]
Index: openacs-4/packages/xowiki/www/admin/delete-type.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/admin/delete-type.tcl,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/xowiki/www/admin/delete-type.tcl 14 Dec 2005 16:12:59 -0000 1.1
@@ -0,0 +1,21 @@
+ad_page_contract {
+ This deletes a type with all subtypes and instances
+
+ @author Your Name (you@example.com)
+ @cvs-id $Id: delete-type.tcl,v 1.1 2005/12/14 16:12:59 maltes Exp $
+
+ @param object_type the class name of an instance of CrClass
+} -query {
+ object_type
+}
+
+db_foreach retrieve_instances [$object_type instance_select_query] {
+ permission::require_write_permission -object_id $item_id
+ $object_type delete -item_id $item_id
+}
+
+foreach type [$object_type object_types -subtypes_first true] {
+ $type drop_object_type
+}
+
+ad_returnredirect "."
Index: openacs-4/packages/xowiki/www/admin/index.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/admin/index.adp,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/xowiki/www/admin/index.adp 14 Dec 2005 16:12:59 -0000 1.1
@@ -0,0 +1,6 @@
+
+ @page_title;noquote@
+ @context;noquote@
+
+
+
Index: openacs-4/packages/xowiki/www/admin/index.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/admin/index.tcl,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/xowiki/www/admin/index.tcl 14 Dec 2005 16:12:59 -0000 1.1
@@ -0,0 +1,55 @@
+ad_page_contract {
+ This is the admin page for the package. It displays all of the types for
+ Notes and provides links to delete them
+
+ @author Your Name (you@example.com)
+ @cvs-id $Id: index.tcl,v 1.1 2005/12/14 16:12:59 maltes Exp $
+} -query {
+ object_type:optional
+}
+
+set context [list]
+set supertype CrWikiPage
+set object_type_key [$supertype set object_type_key]
+
+set page_title "Administer all kind of [$supertype set pretty_plural]"
+
+template::list::create \
+ -name admin_index \
+ -elements {
+ delete {
+ link_url_col delete_url
+ display_template {
+ Delete object type with all subtypes and instances
+
+ }
+ sub_class narrow
+ }
+ nr_instances {
+ link_url_col instances_url
+ label Instances
+ }
+ object_type {
+ label "Object Type"
+ }
+ }
+
+db_multirow \
+ -extend {
+ delete_url
+ instances_url
+ nr_instances
+ } admin_index type_index_select "
+ select object_type from acs_object_types where
+ tree_sortkey between :object_type_key and tree_right(:object_type_key)
+ " {
+ set delete_url [export_vars -base delete-type {object_type}]
+ set nr_instances [db_list count [$object_type instance_select_query \
+ -count 1 \
+ -with_subtypes false]]
+ set instances_url [export_vars -base ../index {object_type}]
+ }
+
+set template admin_index
\ No newline at end of file
Index: openacs-4/packages/xowiki/www/doc/index.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/doc/Attic/index.html,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/xowiki/www/doc/index.html 14 Dec 2005 16:13:00 -0000 1.1
@@ -0,0 +1,9 @@
+
+
+XoWiki Documentation
+XoWiki Documentation
+See xowiki-doc
+
+
+ Last modified: Mon Oct 31 13:36:50 CET 2005
+
Index: openacs-4/packages/xowiki/www/portlets/calendar-portlet.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/portlets/calendar-portlet.adp,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/xowiki/www/portlets/calendar-portlet.adp 14 Dec 2005 16:13:37 -0000 1.1
@@ -0,0 +1,5 @@
+
+
Index: openacs-4/packages/xowiki/www/portlets/calendar-portlet.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/portlets/calendar-portlet.tcl,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/xowiki/www/portlets/calendar-portlet.tcl 14 Dec 2005 16:13:37 -0000 1.1
@@ -0,0 +1,6 @@
+#
+set date [dt_sysdate]
+proc my_get_url_stub {args} {
+ return /dotlrn/calendar
+}
+set url_stub_callback "my_get_url_stub"
Index: openacs-4/packages/xowiki/www/portlets/forums-portlet.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/portlets/forums-portlet.adp,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/xowiki/www/portlets/forums-portlet.adp 14 Dec 2005 16:13:37 -0000 1.1
@@ -0,0 +1,2 @@
+
+
Index: openacs-4/packages/xowiki/www/portlets/forums-portlet.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/portlets/forums-portlet.tcl,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/xowiki/www/portlets/forums-portlet.tcl 14 Dec 2005 16:13:37 -0000 1.1
@@ -0,0 +1,10 @@
+
+set portal_id [dotlrn::get_portal_id -user_id [ad_conn user_id]]
+set config(shaded_p) f
+set config(package_id) [db_list get_forum_ids "
+ select value from portal_pages, portal_element_map, portal_element_parameters
+ where portal_id = $portal_id and portal_pages.page_id = portal_element_map.page_id
+ and portal_element_parameters.element_id = portal_element_map.element_id
+ and portal_element_map.name = 'forums_portlet'
+ and key = 'package_id'"]
+set cf [array get config]
\ No newline at end of file
Index: openacs-4/packages/xowiki/www/portlets/wiki.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/portlets/Attic/wiki.adp,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/xowiki/www/portlets/wiki.adp 14 Dec 2005 16:13:37 -0000 1.1
@@ -0,0 +1,6 @@
+
+
+@content;noquote@
+
Index: openacs-4/packages/xowiki/www/portlets/wiki.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/portlets/Attic/wiki.tcl,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/xowiki/www/portlets/wiki.tcl 14 Dec 2005 16:13:37 -0000 1.1
@@ -0,0 +1,16 @@
+
+# get the folder id from the including page
+set folder_id [$__including_page set parent_id]
+set item_id [::Generic::CrItem lookup -title $name -parent_id $folder_id]
+set page [::Generic::CrItem instantiate -item_id $item_id]
+$page volatile
+
+if {[::xowiki::Page incr recursion_count]<3} {
+ set content [$page render]
+ set link [export_vars -base view {item_id}]
+ ns_log notice "RECURSION_COUNT = [::xowiki::Page set recursion_count]"
+} else {
+ set content "Recursion Limit exceeded, items are nested to deep!"
+}
+
+::xowiki::Page incr recursion_count -1
Index: openacs-4/packages/xowiki/www/resources/aqua.png
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/resources/aqua.png,v
diff -u -N
Binary files differ
Index: openacs-4/packages/xowiki/www/resources/external.png
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/resources/external.png,v
diff -u -N
Binary files differ
Index: openacs-4/packages/xowiki/www/resources/flags/cy.png
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/resources/flags/cy.png,v
diff -u -N
Binary files differ
Index: openacs-4/packages/xowiki/www/resources/flags/cz.png
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/resources/flags/cz.png,v
diff -u -N
Binary files differ
Index: openacs-4/packages/xowiki/www/resources/flags/de.png
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/resources/flags/de.png,v
diff -u -N
Binary files differ
Index: openacs-4/packages/xowiki/www/resources/flags/en.png
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/resources/flags/en.png,v
diff -u -N
Binary files differ
Index: openacs-4/packages/xowiki/www/resources/flags/es.png
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/resources/flags/es.png,v
diff -u -N
Binary files differ
Index: openacs-4/packages/xowiki/www/resources/flags/it.png
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/resources/flags/it.png,v
diff -u -N
Binary files differ
Index: openacs-4/packages/xowiki/www/xinha/Makefile
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/xinha/Makefile,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/xowiki/www/xinha/Makefile 14 Dec 2005 16:13:01 -0000 1.1
@@ -0,0 +1,14 @@
+FILES = *.adp *.tcl blank.html
+
+SOURCE = /usr/local/openacs-4/packages/acs-templating/www/resources/xinha-nightly/plugins/OacsFs/popups/
+
+unlink:
+ rm -f ${FILES}
+ cp -p ${SOURCE}/*.html .
+ cp -p ${SOURCE}/*.adp .
+ cp -p ${SOURCE}/*.tcl .
+
+link:
+ ln -sf ${SOURCE}/*.html .
+ ln -sf ${SOURCE}/*.adp .
+ ln -sf ${SOURCE}/*.tcl .
Index: openacs-4/packages/xowiki/www/xinha/blank.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/xinha/blank.html,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/xowiki/www/xinha/blank.html 14 Dec 2005 16:13:01 -0000 1.1
@@ -0,0 +1 @@
\ No newline at end of file
Index: openacs-4/packages/xowiki/www/xinha/file-selector.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/xinha/file-selector.adp,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/xowiki/www/xinha/file-selector.adp 14 Dec 2005 16:13:01 -0000 1.1
@@ -0,0 +1,161 @@
+
+
+ @HTML_Title@
+
+
+
+
+
+
+
+
+
+ @HTML_Title@
+ @HTML_Context@
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+
Index: openacs-4/packages/xowiki/www/xinha/file-selector.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/xinha/file-selector.tcl,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/xowiki/www/xinha/file-selector.tcl 14 Dec 2005 16:13:01 -0000 1.1
@@ -0,0 +1,304 @@
+ad_page_contract {
+ @author Guenter Ernst guenter.ernst@wu-wien.ac.at
+ @author Gustaf Neumann neumann@wu-wien.ac.at
+ @creation-date 13.10.2005
+ @cvs-id $Id: file-selector.tcl,v 1.1 2005/12/14 16:13:01 maltes Exp $
+} {
+ {fs_package_id:integer,notnull,optional}
+ {folder_id:integer,optional}
+ {orderby:optional}
+ {selector_type "image"}
+ {file_types "*"}
+}
+
+if {![info exists fs_package_id]} {
+ # we have not filestore package_id. This must be the first call.
+ if {[info exists folder_id]} {
+ # get package_id from folder_id
+ foreach {fs_package_id root_folder_id} \
+ [fs::get_folder_package_and_root $folder_id] break
+ } else {
+ # get package_id from package name
+ set key file-storage
+ set id [apm_version_id_from_package_key $key]
+ set mount_url [site_node::get_children -all -package_key $key -node_id $id]
+ array set site_node [site_node::get -url $mount_url]
+ set fs_package_id $site_node(package_id)
+ }
+}
+
+if {![info exists folder_id]} {
+ set folder_id [fs_get_root_folder -package_id $fs_package_id]
+ set root_folder_id $folder_id
+}
+
+if {![fs_folder_p $folder_id]} {
+ ad_complain [_ file-storage.lt_The_specified_folder__1]
+ return
+}
+
+# now we have at least a valid folder_id and a valid fs_package_id
+if {![info exists root_folder_id]} {
+ set root_folder_id [fs_get_root_folder -package_id $fs_package_id]
+}
+
+set fs_url [site_node::get_url_from_object_id -object_id $fs_package_id]
+
+# # Don't allow delete if root folder
+set root_folder_p [expr {$folder_id == $root_folder_id}]
+
+set user_id [ad_conn user_id]
+permission::require_permission \
+ -party_id $user_id -object_id $folder_id \
+ -privilege "read"
+
+set up_url {}
+
+if { !$root_folder_p} {
+ set parent_folder_id [fs::get_parent -item_id $folder_id]
+ set up_name [fs::get_object_name -object_id $parent_folder_id]
+ set up_url [export_vars -base file-selector \
+ {fs_package_id {folder_id $parent_folder_id}
+ selector_type file_types}]
+}
+
+
+# if user has write permission, create image upload form,
+if {[permission::permission_p -party_id $user_id -object_id $folder_id \
+ -privilege "write"]} {
+ set write_p 1
+ ad_form \
+ -name upload_form \
+ -mode edit \
+ -export {fs_package_id folder_id orderby selector_type file_types} \
+ -html { enctype multipart/form-data } \
+ -form {
+ {upload_file:file(file) {html {size 30}} }
+ {ok_btn:text(submit) {label "[_ acs-templating.HTMLArea_SelectUploadBtn]"}
+ }
+ } \
+ -on_submit {
+ # check file name
+ if {$upload_file eq ""} {
+ template::form::set_error upload_form upload_file \
+ [_ acs-templating.HTMLArea_SpecifyUploadFilename]
+ break
+ }
+
+ # check quota
+ set maximum_folder_size [ad_parameter "MaximumFolderSize"]
+
+ if { $maximum_folder_size ne "" } {
+ set max [ad_parameter "MaximumFolderSize"]
+ if { $folder_size+[file size ${upload_file.tmpfile}] > $max } {
+ template::form::set_error upload_form upload_file \
+ [_ file-storage.out_of_space]
+ break
+ }
+ }
+
+ set file_name [template::util::file::get_property filename $upload_file]
+ set upload_tmpfile [template::util::file::get_property tmp_filename $upload_file]
+ set mime_type [template::util::file::get_property mime_type $upload_file]
+
+ if {$selector_type eq "image" && ![string match image/* $mime_type]} {
+ template::form::set_error upload_form upload_file \
+ [_ acs-templating.HTMLArea_SelectImageUploadNoImage]
+ break
+ }
+
+ set existing_file_id [fs::get_item_id -name $file_name -folder_id $folder_id]
+
+ if {$existing_file_id ne ""} {
+ # write new revision
+ fs::add_file \
+ -name $file_name \
+ -item_id $existing_file_id \
+ -parent_id $folder_id \
+ -tmp_filename $upload_tmpfile \
+ -creation_user $user_id \
+ -creation_ip [ad_conn peeraddr] \
+ -package_id $fs_package_id
+ } else {
+ # write file
+ fs::add_file \
+ -name $file_name \
+ -parent_id $folder_id \
+ -tmp_filename $upload_tmpfile \
+ -creation_user $user_id \
+ -creation_ip [ad_conn peeraddr] \
+ -package_id $fs_package_id
+ }
+
+ }
+} else {
+ set write_p 0
+}
+
+
+# display the contents
+
+set folder_name [lang::util::localize [fs::get_object_name -object_id $folder_id]]
+set content_size_total 0
+
+set folder_path [db_exec_plsql get_folder_path {
+ select content_item__get_path(:folder_id, :root_folder_id)
+}]
+
+
+# -pass_to_urls {c}
+
+template::list::create \
+ -name contents \
+ -multirow contents \
+ -pass_properties {fs_package_id selector_type folder_id} \
+ -key object_id \
+ -html {width 100%}\
+ -filters {folder_id {} file_types {} selector_type {} fs_package_id {}} \
+ -elements {
+ name {
+ label "[_ file-storage.Name]"
+ display_template {
+
+
+
+
+
+
+
+ onclick="selectImage('@contents.object_id@','@contents.file_url@','@contents.type@');return false;">@contents.name@
+ }
+ orderby_desc {name desc}
+ orderby_asc {name asc}
+ html {nowrap ""}
+ }
+ content_size_pretty {
+ label "[_ file-storage.Size]"
+ orderby_desc {content_size desc}
+ orderby_asc {content_size asc}
+ }
+ type {
+ label "[_ file-storage.Type]"
+ orderby_desc {type desc}
+ orderby_asc {type asc}
+ }
+ last_modified_pretty {
+ label "[_ file-storage.Last_Modified]"
+ orderby_desc {last_modified_ansi desc}
+ orderby_asc {last_modified_ansi asc}
+ html {nowrap ""}
+ }
+ }
+
+set order_by_clause [expr {[exists_and_not_null orderby] ?
+ [template::list::orderby_clause -orderby -name contents] :
+ " order by fs_objects.sort_key, fs_objects.name asc"}]
+
+
+if {$selector_type eq "image"} {
+ set file_types "image/%"
+}
+set filter_clause [expr {$file_types eq "*" ? "" :
+ "and (type like '$file_types' or type = 'folder')" }]
+
+set fs_sql "select object_id, name, live_revision, type, title,
+ to_char(last_modified, 'YYYY-MM-DD HH24:MI:SS') as last_modified_ansi,
+ content_size, url, sort_key, file_upload_name,
+ case
+ when :folder_path is null
+ then fs_objects.name
+ else :folder_path || '/' || name
+ end as file_url,
+ case
+ when last_modified >= (now() - cast('99999' as interval))
+ then 1
+ else 0
+ end as new_p
+ from fs_objects
+ where parent_id = :folder_id
+ and exists (select 1
+ from acs_object_party_privilege_map m
+ where m.object_id = fs_objects.object_id
+ and m.party_id = :user_id
+ and m.privilege = 'read')
+ $filter_clause
+ $order_by_clause"
+
+db_multirow -extend {
+ icon last_modified_pretty content_size_pretty
+ properties_link properties_url folder_p title
+} contents get_fs_contents $fs_sql {
+ set last_modified_ansi [lc_time_system_to_conn $last_modified_ansi]
+ set last_modified_pretty [lc_time_fmt $last_modified_ansi "%x %X"]
+ set content_size_pretty [lc_numeric $content_size]
+
+ if {$type eq "folder"} {
+ # append content_size_pretty " [_ file-storage.items]"
+ set content_size_pretty ""
+ } else {
+ append content_size_pretty " [_ file-storage.bytes]"
+ }
+ if {$title eq ""} {set title $name}
+
+ set file_upload_name [fs::remove_special_file_system_characters \
+ -string $file_upload_name]
+
+ if { ![empty_string_p $content_size] } {
+ incr content_size_total $content_size
+ }
+
+ set name [lang::util::localize $name]
+
+ switch -- $type {
+ folder {
+ set folder_p 1
+ set icon /resources/file-storage/folder.gif
+ set file_url [export_vars -base file-selector \
+ {fs_package_id {folder_id $object_id}
+ selector_type file_types}]
+ }
+ url {
+ set folder_p 1
+ set icon /resources/url-button.gif
+ set file_url $fs_url/$url
+ }
+ default {
+ set folder_p 0
+ set icon /resources/file-storage/file.gif
+ set file_url ${fs_url}view/$file_url
+ }
+ }
+
+
+ # We need to encode the hashes in any i18n message keys (.LRN plays
+ # this trick on some of its folders). If we don't, the hashes will cause
+ # the path to be chopped off (by ns_conn url) at the leftmost hash.
+ regsub -all {\#} $file_url {%23} file_url
+}
+
+set HTML_NothingSelected [_ acs-templating.HTMLArea_SelectImageNothingSelected]
+switch $selector_type {
+ "image" {
+ set HTML_Title [_ acs-templating.HTMLArea_SelectImageTitle]
+ set HTML_Legend [_ acs-templating.HTMLArea_SelectImage]
+ set HTML_Preview [_ acs-templating.HTMLArea_SelectImagePreview]
+ set HTML_UploadTitle [_ acs-templating.HTMLArea_SelectImageUploadTitle]
+ set HTML_Context "COMMUNITY NAME"
+ }
+ "file" {
+ set HTML_Title [_ acs-templating.HTMLArea_SelectFileTitle]
+ set HTML_Legend [_ acs-templating.HTMLArea_SelectFile]
+ set HTML_Preview [_ acs-templating.HTMLArea_SelectImagePreview]
+ set HTML_UploadTitle [_ acs-templating.HTMLArea_SelectFileUploadTitle]
+ set HTML_Context "COMMUNITY NAME"
+ }
+}
+
+
+ad_return_template
Index: openacs-4/packages/xowiki/www/xinha/insert-ilink.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/xinha/insert-ilink.adp,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/xowiki/www/xinha/insert-ilink.adp 14 Dec 2005 16:13:01 -0000 1.1
@@ -0,0 +1,210 @@
+
+
+ #acs-templating.HTMLArea_InsertModifyLink#
+
+
+
+
+
+
+
+
+
+
+
+ #acs-templating.HTMLArea_InsertModifyLink#
+
+
+
+
Index: openacs-4/packages/xowiki/www/xinha/insert-ilink.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/xinha/insert-ilink.tcl,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/xowiki/www/xinha/insert-ilink.tcl 14 Dec 2005 16:13:01 -0000 1.1
@@ -0,0 +1,21 @@
+ad_page_contract {
+ @author Guenter Ernst guenter.ernst@wu-wien.ac.at,
+ @author Gustaf Neumann neumann@wu-wien.ac.at
+ @creation-date 13.07.2004
+ @cvs-id $Id: insert-ilink.tcl,v 1.1 2005/12/14 16:13:01 maltes Exp $
+} {
+ {fs_package_id:integer,optional}
+ {folder_id:integer,optional}
+ {file_types *}
+}
+
+set selector_type "file"
+set file_selector_link [export_vars -base file-selector \
+ {fs_package_id folder_id selector_type file_types}]
+set fs_found 1
+
+#set user_id [ad_verify_and_get_user_id]
+#permission::require_permission -party_id $user_id -object_id $fs_package_id \
+# -privilege "admin"
+
+ad_return_template
Index: openacs-4/packages/xowiki/www/xinha/insert-image.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/xinha/insert-image.adp,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/xowiki/www/xinha/insert-image.adp 14 Dec 2005 16:13:01 -0000 1.1
@@ -0,0 +1,235 @@
+
+
+
#acs-templating.HTMLArea_InsertImageTitle#
+
+
+
+
+
+
+
+
+
+
+
+
#acs-templating.HTMLArea_InsertImageTitle#
+
+
+
+
+
Index: openacs-4/packages/xowiki/www/xinha/insert-image.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/xinha/insert-image.tcl,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/xowiki/www/xinha/insert-image.tcl 14 Dec 2005 16:13:01 -0000 1.1
@@ -0,0 +1,14 @@
+ad_page_contract {
+ @author Guenter Ernst guenter.ernst@wu-wien.ac.at,
+ @author Gustaf Neumann neumann@wu-wien.ac.at
+ @creation-date 13.07.2004
+ @cvs-id $Id: insert-image.tcl,v 1.1 2005/12/14 16:13:01 maltes Exp $
+} {
+ {fs_package_id:integer,optional}
+ {folder_id:integer,optional}
+}
+
+set selector_type "image"
+set file_selector_link [export_vars -base file-selector \
+ {fs_package_id folder_id selector_type}]
+set fs_found 1