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