Index: openacs-4/packages/cms/www/modules/sitemap/create.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/cms/www/modules/sitemap/create.tcl,v diff -u -r1.5 -r1.6 --- openacs-4/packages/cms/www/modules/sitemap/create.tcl 16 Nov 2004 22:32:50 -0000 1.5 +++ openacs-4/packages/cms/www/modules/sitemap/create.tcl 6 Apr 2005 00:20:59 -0000 1.6 @@ -1,97 +1,75 @@ -# Create a new folder under the current folder +ad_page_contract { -request create -params { - parent_id -datatype integer -optional - mount_point -datatype keyword + Create a new folder under the current folder + +} { + {folder_id:optional,integer } + {mount_point "sitemap"} } -if { [util::is_nil parent_id] } { - set create_parent_id [cm::modules::${mount_point}::getRootFolderID] -} else { - set create_parent_id $parent_id -} - - # permissions check - user must have cm_new on parent -content::check_access $create_parent_id cm_new -user_id [auth::require_login] +#content::check_access $create_parent_id cm_new -user_id [auth::require_login] -# Get the path -set path [db_string get_path ""] - -# Create the form - -form create add_folder - -element create add_folder parent_id \ - -label "Parent ID" -integer keyword -widget hidden -param -optional - -element create add_folder mount_point \ - -label "Mount Point" -datatype keyword -widget hidden -param -optional - -if { [string equal $path ""] } { +set path [content::item::get_path -item_id $folder_id] +if {[template::util::is_nil path]} { set path "/" } -element create add_folder path \ - -label "In" -datatype text -widget inform -value "$path" +ad_form -name add_folder -form { -element create add_folder name \ - -label "Name" -datatype keyword -widget text -html { size 20 } \ - -validate { { expr ![string match $value "/"] } - { Folder name cannot contain slashes }} + {new_folder_id:key} -element create add_folder label \ - -label "Label" -widget text -datatype text \ - -html { size 30 } -optional + {parent_id:integer(hidden) + {value $folder_id} + } -element create add_folder description \ - -label "Description" -widget textarea -datatype text \ - -html { rows 5 cols 40 wrap physical } -optional + {folder_id:integer(hidden) + {value $folder_id} + } -#set parent_id [element get_value add_folder parent_id] -#set mount_point [element get_value add_folder mount_point] + {mount_point:text(hidden) + {value $mount_point} + } + {path:text(inform) + {label "Create in"} + {value $path} + } -# Insert the folder -if { [form is_valid add_folder] } { - form get_values add_folder \ - name label description parent_id mount_point + {name:text(text) + {label "Name"} + {help_text "Short name containing no special characters"} + } - set user_id [User::getID] - set ip [ns_conn peeraddr] - - db_transaction { + {label:text(text),optional + {label "Label"} + {html {size 30}} + {help_text "More descriptive label"} + } - set folder_id [db_exec_plsql new_folder " - begin - :1 := content_folder.new( - name => :name, - label => :label, - description => :description, - parent_id => :create_parent_id, - creation_user => :user_id, - creation_ip => :ip ); - end;"] + {description:text(textarea),optional + {label "Description"} + {html {rows 5 cols 40 wrap physical}} + } - if { [string equal $mount_point "templates"] } { +} -validate { - db_exec_plsql register_content_type " - begin - content_folder.register_content_type( - folder_id => :folder_id, - content_type => 'content_template', - include_subtypes => 'f' - ); - end;" - } + {name + { ![ string match "*/*" $name ] } + { Folder name cannot contain slashes } + } +} -on_submit { + + set folder_id [content::folder::new -folder_id $new_folder_id -name $name -label $label \ + -description $description -parent_id $parent_id] + if { [string equal $mount_point "templates"] } { + content::folder::register_content_type -folder_id $folder_id \ + -content_type content_template } - # Flush the paginator cache - cms_folder::flush $mount_point $parent_id +} -after_submit { - # Update the folder and refresh the tree - refreshCachedFolder $user_id sitemap $parent_id + ad_returnredirect [export_vars -base index {folder_id mount_point parent_id}] - forward "refresh-tree?id=$parent_id&goto_id=$parent_id&mount_point=$mount_point" }