Index: openacs-4/packages/xowiki/xowiki.info
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/xowiki.info,v
diff -u -r1.63 -r1.64
--- openacs-4/packages/xowiki/xowiki.info 3 Sep 2007 21:07:53 -0000 1.63
+++ openacs-4/packages/xowiki/xowiki.info 14 Sep 2007 18:58:08 -0000 1.64
@@ -8,11 +8,11 @@
f
xowiki
-
- Gustaf Neumann
+
+ Gustaf Neumann, WU Wien
A more generic xotcl-based wikis example with object types
and subtypes based on the content repository (with category support)
- 2007-09-03
+ 2007-09-14
Gustaf Neumann
<pre>
XoWiki is a Wiki implementation for OpenACS in XOTcl. Instead of
@@ -54,7 +54,7 @@
BSD-Style
0
-
+
Index: openacs-4/packages/xowiki/catalog/xowiki.en_US.ISO-8859-1.xml
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/catalog/xowiki.en_US.ISO-8859-1.xml,v
diff -u -r1.30 -r1.31
--- openacs-4/packages/xowiki/catalog/xowiki.en_US.ISO-8859-1.xml 10 Aug 2007 20:06:05 -0000 1.30
+++ openacs-4/packages/xowiki/catalog/xowiki.en_US.ISO-8859-1.xml 14 Sep 2007 18:58:09 -0000 1.31
@@ -1,5 +1,5 @@
-
+
Admin
Back
@@ -62,6 +62,8 @@
Subtitle
Popular tags
popular tags
+ There is no page with name "%page_name%" available.
+ The given page does not exist
Please either change the existing portlets' name or the title of the xowiki page you want to add to the portal.
A portlet with the title '%page_title%' already exists in this portal.
Published
Index: openacs-4/packages/xowiki/www/admin/portal-element-add.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/admin/portal-element-add.tcl,v
diff -u -r1.6 -r1.7
--- openacs-4/packages/xowiki/www/admin/portal-element-add.tcl 3 Sep 2007 21:07:53 -0000 1.6
+++ openacs-4/packages/xowiki/www/admin/portal-element-add.tcl 14 Sep 2007 18:58:09 -0000 1.7
@@ -7,39 +7,59 @@
@param object_type show objects of this class and its subclasses
} -parameter {
- {-portal_id}
- {-page_name}
+ {-portal_id:required}
+ {-page_name:required}
{-referer .}
}
+set page_id [$package_id resolve_request -path $page_name method]
-#set page_id [$package_id resolve_request -path $page_name method]
-set page_id [::xo::db::CrClass lookup -name $page_name -parent_id [$package_id folder_id]]
-set page_title [$page_id title]
+if {$page_id eq ""} {
+ #
+ # If a page with the given name does not exist, return an error.
+ #
+ ad_return_error \
+ [_ xowiki.portlet_page_does_not_exist_error_short] \
+ [_ xowiki.portlet_page_does_not_exist_error_long $page_name]
-# for the time being, we add the portlet on the first page (page 0)
-set portal_page_id [portal::get_page_id -portal_id $portal_id -sort_key 0]
-
-if {[db_string check_unique_name_on_page {
- select 1 from portal_element_map
- where page_id = :portal_page_id
- and pretty_name = :page_title
-} -default 0]} {
- ad_return_error [_ xowiki.portlet_title_exists_error_short] [_ xowiki.portlet_title_exists_error_long]
} else {
- db_transaction {
- set element_id [portal::add_element \
- -portal_id $portal_id \
- -portlet_name [xowiki_portlet::get_my_name] \
- -pretty_name $page_title \
- -force_region [parameter::get_from_package_key \
- -parameter "xowiki_portal_content_force_region" \
- -package_key "xowiki-portlet"]
- ]
- portal::set_element_param $element_id package_id $package_id
- portal::set_element_param $element_id page_name [$page_id name]
+ #
+ # The page exists, get the title of the page...
+ #
+ set page_title [$page_id title]
+
+ # for the time being, we add the portlet on the first page (page 0)
+ set portal_page_id [portal::get_page_id -portal_id $portal_id -sort_key 0]
+
+ if {[db_string check_unique_name_on_page {
+ select 1 from portal_element_map
+ where page_id = :portal_page_id
+ and pretty_name = :page_title
+ } -default 0]} {
+ #
+ # The name of the portal element is not unique.
+ #
+ ad_return_error \
+ [_ xowiki.portlet_title_exists_error_short] \
+ [_ xowiki.portlet_title_exists_error_long $page_title]
+ } else {
+ #
+ # everything ok, add the portal element
+ #
+ db_transaction {
+ set element_id [portal::add_element \
+ -portal_id $portal_id \
+ -portlet_name [xowiki_portlet::get_my_name] \
+ -pretty_name $page_title \
+ -force_region [parameter::get_from_package_key \
+ -parameter "xowiki_portal_content_force_region" \
+ -package_key "xowiki-portlet"]
+ ]
+ portal::set_element_param $element_id package_id $package_id
+ portal::set_element_param $element_id page_name [$page_id name]
+ }
+ ad_returnredirect $referer
}
- ad_returnredirect $referer
}
ad_script_abort