Index: openacs-4/packages/acs-content-repository/acs-content-repository.info =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/acs-content-repository.info,v diff -u -N -r1.90 -r1.91 --- openacs-4/packages/acs-content-repository/acs-content-repository.info 27 Jan 2010 17:34:09 -0000 1.90 +++ openacs-4/packages/acs-content-repository/acs-content-repository.info 9 Mar 2010 11:49:46 -0000 1.91 @@ -7,7 +7,7 @@ t t - + OpenACS The canonical repository for OpenACS content. 2009-06-19 @@ -20,7 +20,7 @@ GPL 3 - + Index: openacs-4/packages/acs-content-repository/tcl/revision-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/tcl/revision-procs.tcl,v diff -u -N -r1.28 -r1.29 --- openacs-4/packages/acs-content-repository/tcl/revision-procs.tcl 20 Nov 2008 23:24:57 -0000 1.28 +++ openacs-4/packages/acs-content-repository/tcl/revision-procs.tcl 9 Mar 2010 11:49:46 -0000 1.29 @@ -381,17 +381,17 @@ } ad_proc -public cr_create_mime_type { - -extension - -mime_type - -description + -mime_type:required + {-extension ""} + {-description ""} } { Creates a mime type if it does not exist. Also maps extension to mime_type (unless the extension is already mapped to another mime - type). + type or extension is empty). - @param extension the default extension for the given mime type @param mime_type the mime_type to create + @param extension the default extension for the given mime type @param a plain text description of the mime type (< 200 characters) @author Jeff Davis (davis@xarg.net) @@ -412,13 +412,15 @@ where mime_type = :mime_type) } - db_dml maybe_map_extension { - insert into cr_extension_mime_type_map (extension, mime_type) - select :extension, :mime_type - from dual - where not exists (select 1 + if { $extension ne "" } { + db_dml maybe_map_extension { + insert into cr_extension_mime_type_map (extension, mime_type) + select :extension, :mime_type + from dual + where not exists (select 1 from cr_extension_mime_type_map where extension = :extension) + } } } Index: openacs-4/packages/acs-content-repository/www/admin/index.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/www/admin/index.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/acs-content-repository/www/admin/index.adp 9 Mar 2010 11:49:46 -0000 1.1 @@ -0,0 +1,10 @@ + + + Content Repository Administration + + + Index: openacs-4/packages/acs-content-repository/www/admin/mime-types/extensions.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/www/admin/mime-types/extensions.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/acs-content-repository/www/admin/mime-types/extensions.adp 9 Mar 2010 11:49:46 -0000 1.1 @@ -0,0 +1,6 @@ + + + doc + @context@ + + Index: openacs-4/packages/acs-content-repository/www/admin/mime-types/extensions.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/www/admin/mime-types/extensions.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/acs-content-repository/www/admin/mime-types/extensions.tcl 9 Mar 2010 11:49:46 -0000 1.1 @@ -0,0 +1,40 @@ +ad_page_contract { + + @author Emmanuelle Raffenne (eraffenne@gmail.com) + @creation-date 22-feb-2010 + @cvs-id $Id: extensions.tcl,v 1.1 2010/03/09 11:49:46 emmar Exp $ + +} { + mime_type:notnull +} + +set mime_type_label [db_string get_mime_type {} -default $mime_type] + +set doc(title) "Extensions Mapped to $mime_type_label" +set context [list [list "./" "Mime Types"] $doc(title)] + +set return_url [export_vars -base "extensions" {mime_type}] + +set actions [list "Add extension" [export_vars -base "map" {mime_type return_url}] ""] + +template::list::create \ + -name extensions \ + -multirow extensions \ + -actions $actions \ + -elements { + mime_type { + label "MIME type" + } + extension { + label "Extension" + } + action { + label "Action" + link_url_col action_url + } + } + +db_multirow -extend {action action_url} extensions get_extensions {} { + set action_url [export_vars -base "unmap" {mime_type extension return_url}] + set action "Unmap" +} Index: openacs-4/packages/acs-content-repository/www/admin/mime-types/extensions.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/www/admin/mime-types/extensions.xql,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/acs-content-repository/www/admin/mime-types/extensions.xql 9 Mar 2010 11:49:46 -0000 1.1 @@ -0,0 +1,25 @@ + + + + + + + select label + from cr_mime_types + where mime_type = :mime_type + + + + + + + + select mime_type,extension + from cr_extension_mime_type_map + where mime_type = :mime_type + order by extension + + + + + Index: openacs-4/packages/acs-content-repository/www/admin/mime-types/index.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/www/admin/mime-types/index.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/acs-content-repository/www/admin/mime-types/index.adp 9 Mar 2010 11:49:46 -0000 1.1 @@ -0,0 +1,6 @@ + + + doc + @context@ + + Index: openacs-4/packages/acs-content-repository/www/admin/mime-types/index.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/www/admin/mime-types/index.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/acs-content-repository/www/admin/mime-types/index.tcl 9 Mar 2010 11:49:46 -0000 1.1 @@ -0,0 +1,99 @@ +ad_page_contract { + + @author Emmanuelle Raffenne (eraffenne@gmail.com) + @creation-date 22-feb-2010 + @cvs-id $Id: index.tcl,v 1.1 2010/03/09 11:49:46 emmar Exp $ + +} { + { extension_p 0 } + { orderby "mime_type" } +} + +set return_url [export_vars -base "index" {extension_p orderby}] + +set actions [list "Create MIME type" [export_vars -base "new" {return_url}] ""] + +if { $extension_p } { + + set doc(title) "MIME Type Extension Map" + + lappend actions "Show MIME types only" [export_vars -base "./" {{extension_p 0}}] "" + + set elms { + extension { + label "Mapped extension" + orderby "map.extension" + } + mime_type { + label "MIME type" + link_url_col extensions_url + html {title "Manage mapped extensions for this MIME type"} + orderby "mime.mime_type" + } + label { + label "Description" + link_url_col extensions_url + html {title "Manage mapped extensions for this MIME type"} + orderby "mime.label" + } + action { + label "Action" + link_url_col action_url + } + } + +} else { + + set doc(title) "MIME Types" + + lappend actions "Show extension map" [export_vars -base "./" {{extension_p 1}}] "" + + set elms { + mime_type { + label "MIME type" + link_url_col extensions_url + html {title "Manage mapped extensions for this MIME type"} + orderby "mime_type" + } + label { + label "Description" + link_url_col extensions_url + html {title "Manage mapped extensions for this MIME type"} + orderby "label" + } + extension { + label "Default extension" + orderby "extension" + } + } + +} + +template::list::create \ + -name mime_types \ + -multirow mime_types \ + -actions $actions \ + -orderby_name orderby \ + -bulk_action_export_vars {extension_p} \ + -elements $elms \ + -filters { extension_p } + +if { $extension_p } { + + db_multirow -extend {extensions_url action action_url} mime_types get_mime_type_map {} { + set extensions_url [export_vars -base "extensions" {mime_type}] + if { $extension ne "" } { + set action "unmap" + set action_url [export_vars -base "unmap" {return_url extension mime_type}] + } + } + +} else { + + db_multirow -extend {extensions_url} mime_types get_mime_types {} { + set extensions_url [export_vars -base "extensions" {mime_type}] + } + +} + +set context [list $doc(title)] Index: openacs-4/packages/acs-content-repository/www/admin/mime-types/index.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/www/admin/mime-types/index.xql,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/acs-content-repository/www/admin/mime-types/index.xql 9 Mar 2010 11:49:46 -0000 1.1 @@ -0,0 +1,25 @@ + + + + + + + select mime.mime_type, mime.label, map.extension + from cr_mime_types mime left join cr_extension_mime_type_map map + on (mime.mime_type = map.mime_type) + [template::list::orderby_clause -orderby -name mime_types] + + + + + + + + select mime_type, label, file_extension as extension + from cr_mime_types + [template::list::orderby_clause -orderby -name mime_types] + + + + + Index: openacs-4/packages/acs-content-repository/www/admin/mime-types/map.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/www/admin/mime-types/map.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/acs-content-repository/www/admin/mime-types/map.adp 9 Mar 2010 11:49:46 -0000 1.1 @@ -0,0 +1,6 @@ + + + doc + @context@ + + Index: openacs-4/packages/acs-content-repository/www/admin/mime-types/map.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/www/admin/mime-types/map.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/acs-content-repository/www/admin/mime-types/map.tcl 9 Mar 2010 11:49:46 -0000 1.1 @@ -0,0 +1,47 @@ +ad_page_contract { + + @author Emmanuelle Raffenne (eraffenne@gmail.com) + @creation-date 22-feb-2010 + @cvs-id $Id: map.tcl,v 1.1 2010/03/09 11:49:46 emmar Exp $ + +} { + mime_type:notnull + {return_url ""} +} + +set doc(title) "Add an extension" + +set label [db_string get_mime_type {} -default $mime_type] + +set context [list [list [export_vars -base "extensions" {mime_type}] "Extensions mapped to $label"] $doc(title)] + +if { $return_url eq "" } { + set return_url [export_vars -base "extensions" {mime_type}] +} + +ad_form -name extension_new -export {return_url} -cancel_url $return_url -form { + {mime_type:text(inform) + {label "MIME type"} + {html {size 25}} + } + {label:text(inform) + {label "Description"} + {html {size 50}} + } + {extension:text(text) + {label "Extension"} + {html {size 5}} + } +} -on_request { +} -on_submit { + + cr_create_mime_type \ + -extension $extension \ + -mime_type $mime_type + +} -after_submit { + + ad_returnredirect $return_url + ad_script_abort + +} Index: openacs-4/packages/acs-content-repository/www/admin/mime-types/map.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/www/admin/mime-types/map.xql,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/acs-content-repository/www/admin/mime-types/map.xql 9 Mar 2010 11:49:46 -0000 1.1 @@ -0,0 +1,14 @@ + + + + + + + select label + from cr_mime_types + where mime_type = :mime_type + + + + + Index: openacs-4/packages/acs-content-repository/www/admin/mime-types/new.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/www/admin/mime-types/new.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/acs-content-repository/www/admin/mime-types/new.adp 9 Mar 2010 11:49:46 -0000 1.1 @@ -0,0 +1,6 @@ + + + doc + @context@ + + Index: openacs-4/packages/acs-content-repository/www/admin/mime-types/new.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/www/admin/mime-types/new.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/acs-content-repository/www/admin/mime-types/new.tcl 9 Mar 2010 11:49:46 -0000 1.1 @@ -0,0 +1,44 @@ +ad_page_contract { + + @author Emmanuelle Raffenne (eraffenne@gmail.com) + @creation-date 22-feb-2010 + @cvs-id $Id: new.tcl,v 1.1 2010/03/09 11:49:46 emmar Exp $ + +} { + {return_url ""} +} + +set doc(title) "Create a new MIME Type" +set context [list [list "./" "MIME types"] $doc(title)] + +if { $return_url eq "" } { + set return_url "./" +} + +ad_form -name mime_type_new -export {return_url} -cancel_url $return_url -form { + {mime_type:text(text) + {label "MIME type"} + {html {size 25}} + } + {label:text(text) + {label "Description"} + {html {size 50}} + } + {extension:text(text),optional + {label "Default extension"} + {html {size 5}} + } +} -on_request { +} -on_submit { + + cr_create_mime_type \ + -extension $extension \ + -mime_type $mime_type \ + -description $label + +} -after_submit { + + ad_returnredirect $return_url + ad_script_abort + +} Index: openacs-4/packages/acs-content-repository/www/admin/mime-types/unmap.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/www/admin/mime-types/unmap.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/acs-content-repository/www/admin/mime-types/unmap.tcl 9 Mar 2010 11:49:46 -0000 1.1 @@ -0,0 +1,19 @@ +ad_page_contract { + + @author Emmanuelle Raffenne (eraffenne@gmail.com) + @creation-date 22-feb-2010 + @cvs-id $Id: unmap.tcl,v 1.1 2010/03/09 11:49:46 emmar Exp $ + +} { + extension:notnull + mime_type:notnull + {return_url ""} +} + +if { $return_url eq "" } { + set return_url "index" +} + +db_dml extension_unmap {} + +ad_returnredirect $return_url Index: openacs-4/packages/acs-content-repository/www/admin/mime-types/unmap.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/www/admin/mime-types/unmap.xql,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/acs-content-repository/www/admin/mime-types/unmap.xql 9 Mar 2010 11:49:46 -0000 1.1 @@ -0,0 +1,13 @@ + + + + + + + delete from cr_extension_mime_type_map + where extension = :extension and mime_type = :mime_type + + + + +