Index: openacs-4/packages/acs-subsite/acs-subsite.info =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-subsite/acs-subsite.info,v diff -u -N -r1.117.2.25 -r1.117.2.26 --- openacs-4/packages/acs-subsite/acs-subsite.info 24 Jan 2017 09:42:30 -0000 1.117.2.25 +++ openacs-4/packages/acs-subsite/acs-subsite.info 11 Feb 2017 21:54:38 -0000 1.117.2.26 @@ -9,7 +9,7 @@ t t - + OpenACS Subsite 2015-10-04 @@ -18,7 +18,7 @@ GPL 3 - + Index: openacs-4/packages/acs-subsite/sql/oracle/themes-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-subsite/sql/oracle/themes-create.sql,v diff -u -N -r1.4.6.4 -r1.4.6.5 --- openacs-4/packages/acs-subsite/sql/oracle/themes-create.sql 12 Sep 2015 17:25:06 -0000 1.4.6.4 +++ openacs-4/packages/acs-subsite/sql/oracle/themes-create.sql 11 Feb 2017 21:54:38 -0000 1.4.6.5 @@ -10,22 +10,21 @@ create table subsite_themes ( key varchar(100) - constraint subsite_themes_key_pk - primary key, + constraint subsite_themes_key_pk primary key, name varchar(100) - constraint subsite_themes_name_nn - not null, + constraint subsite_themes_name_nn not null, template varchar(200) - constraint subsite_themes_template_nn - not null, + constraint subsite_themes_template_nn not null, css varchar(2000), js varchar(2000), form_template varchar(200), list_template varchar(200), list_filter_template varchar(200), dimensional_template varchar(200), resource_dir varchar(200), - streaming_head varchar(200) + streaming_head varchar(200), + local_p char(1) default 'f' + constraint subsite_themes_local_p_ck check (local_p in ('t','f')) ); -- Insert the old themes that were hard-wired into earlier versions of acs-subsite. Index: openacs-4/packages/acs-subsite/sql/oracle/upgrade/upgrade-5.9.1d10-5.9.1d11.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-subsite/sql/oracle/upgrade/upgrade-5.9.1d10-5.9.1d11.sql,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/acs-subsite/sql/oracle/upgrade/upgrade-5.9.1d10-5.9.1d11.sql 11 Feb 2017 21:54:38 -0000 1.1.2.1 @@ -0,0 +1,2 @@ +alter table subsite_themes add local_p char(1) default 'f' +constraint subsite_themes_local_p_ck check (local_p in ('t','f')); Index: openacs-4/packages/acs-subsite/sql/postgresql/themes-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-subsite/sql/postgresql/themes-create.sql,v diff -u -N -r1.3.6.4 -r1.3.6.5 --- openacs-4/packages/acs-subsite/sql/postgresql/themes-create.sql 12 Sep 2015 17:25:07 -0000 1.3.6.4 +++ openacs-4/packages/acs-subsite/sql/postgresql/themes-create.sql 11 Feb 2017 21:54:38 -0000 1.3.6.5 @@ -25,7 +25,8 @@ list_filter_template text, dimensional_template text, resource_dir text, - streaming_head text + streaming_head text, + local_p boolean default false ); -- Insert the old themes that were hard-wired into earlier versions of acs-subsite. Index: openacs-4/packages/acs-subsite/sql/postgresql/upgrade/upgrade-5.9.1d10-5.9.1d11.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-subsite/sql/postgresql/upgrade/upgrade-5.9.1d10-5.9.1d11.sql,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/acs-subsite/sql/postgresql/upgrade/upgrade-5.9.1d10-5.9.1d11.sql 11 Feb 2017 21:54:38 -0000 1.1.2.1 @@ -0,0 +1 @@ +alter table subsite_themes add column local_p boolean default false; Index: openacs-4/packages/acs-subsite/tcl/subsite-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-subsite/tcl/subsite-procs.tcl,v diff -u -N -r1.44.2.12 -r1.44.2.13 --- openacs-4/packages/acs-subsite/tcl/subsite-procs.tcl 23 Jan 2017 13:16:26 -0000 1.44.2.12 +++ openacs-4/packages/acs-subsite/tcl/subsite-procs.tcl 11 Feb 2017 21:54:38 -0000 1.44.2.13 @@ -846,6 +846,7 @@ ad_proc -public subsite::save_theme_parameters { -subsite_id -theme + -local_p } { Save the actual theming parameter set of the given/current subsite as default for the given/current theme. These default values are @@ -881,7 +882,8 @@ -list_filter_template [parameter::get -parameter DefaultListFilterStyle -package_id $subsite_id] \ -dimensional_template [parameter::get -parameter DefaultDimensionalStyle -package_id $subsite_id] \ -resource_dir [parameter::get -parameter ResourceDir -package_id $subsite_id] \ - -streaming_head [parameter::get -parameter StreamingHead -package_id $subsite_id] + -streaming_head [parameter::get -parameter StreamingHead -package_id $subsite_id] \ + -local_p $local_p } @@ -920,7 +922,8 @@ -list_filter_template [parameter::get -parameter DefaultListFilterStyle -package_id $subsite_id] \ -dimensional_template [parameter::get -parameter DefaultDimensionalStyle -package_id $subsite_id] \ -resource_dir [parameter::get -parameter ResourceDir -package_id $subsite_id] \ - -streaming_head [parameter::get -parameter StreamingHead -package_id $subsite_id] + -streaming_head [parameter::get -parameter StreamingHead -package_id $subsite_id] \ + -local_p true } @@ -952,9 +955,13 @@ {-dimensional_template ""} {-resource_dir ""} {-streaming_head ""} + {-local_p true} } { Add a new subsite theme, making it available to the theme configuration code. } { + # the following line is for Oracle compatibility + set local_p [expr {$local_p ? "t" : "f"}] + db_dml insert_subsite_theme {} } @@ -970,11 +977,15 @@ {-dimensional_template ""} {-resource_dir ""} {-streaming_head ""} + {-local_p false} } { Update the default theming parameters in the database @author Gustaf Neumann } { + # the following line is for Oracle compatibility + set local_p [expr {$local_p ? "t" : "f"}] + db_dml update { update subsite_themes set name = :name, @@ -986,7 +997,8 @@ list_filter_template = :list_filter_template, dimensional_template = :dimensional_template, resource_dir = :resource_dir, - streaming_head = :streaming_head + streaming_head = :streaming_head, + local_p = :local_p where key = :key } Index: openacs-4/packages/acs-subsite/tcl/subsite-procs.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-subsite/tcl/Attic/subsite-procs.xql,v diff -u -N -r1.12.10.6 -r1.12.10.7 --- openacs-4/packages/acs-subsite/tcl/subsite-procs.xql 2 Jan 2016 12:42:04 -0000 1.12.10.6 +++ openacs-4/packages/acs-subsite/tcl/subsite-procs.xql 11 Feb 2017 21:54:38 -0000 1.12.10.7 @@ -74,10 +74,12 @@ insert into subsite_themes (key, name, template, css, js, form_template, list_template, - list_filter_template, dimensional_template, resource_dir, streaming_head) + list_filter_template, dimensional_template, resource_dir, + streaming_head, local_p) values (:key, :name, :template, :css, :js, :form_template, :list_template, - :list_filter_template, :dimensional_template, :resource_dir, :streaming_head) + :list_filter_template, :dimensional_template, :resource_dir, + :streaming_head, :local_p) Index: openacs-4/packages/acs-subsite/www/admin/themes/index.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-subsite/www/admin/themes/index.adp,v diff -u -N -r1.1.2.1 -r1.1.2.2 --- openacs-4/packages/acs-subsite/www/admin/themes/index.adp 23 Jan 2017 13:16:26 -0000 1.1.2.1 +++ openacs-4/packages/acs-subsite/www/admin/themes/index.adp 11 Feb 2017 21:54:38 -0000 1.1.2.2 @@ -1,5 +1,5 @@ - @page_title;literal@ + doc @context;literal@

Available Themes

Index: openacs-4/packages/acs-subsite/www/admin/themes/index.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-subsite/www/admin/themes/index.tcl,v diff -u -N -r1.1.2.6 -r1.1.2.7 --- openacs-4/packages/acs-subsite/www/admin/themes/index.tcl 26 Jan 2017 13:10:32 -0000 1.1.2.6 +++ openacs-4/packages/acs-subsite/www/admin/themes/index.tcl 11 Feb 2017 21:54:38 -0000 1.1.2.7 @@ -7,8 +7,8 @@ {rename_theme ""} } -set page_title [_ acs-subsite.Themes] -set context [list $page_title] +set doc(title) [_ acs-subsite.Themes] +set context [list $doc(title)] set subsite_node_id [ad_conn subsite_node_id] @@ -114,6 +114,7 @@ set default [string trim [set $var]] set value [string trim [parameter::get -parameter $param -package_id $subsite_id]] regsub -all {\r\n} $value "\n" value + regsub -all {\r\n} $default "\n" default set modified_p [expr {$default ne $value}] if {$modified_p} { ns_log notice "theme parameter $var differs: default '$default' actual value '$value'" Index: openacs-4/packages/acs-subsite/www/admin/themes/view.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-subsite/www/admin/themes/view.tcl,v diff -u -N -r1.1.2.3 -r1.1.2.4 --- openacs-4/packages/acs-subsite/www/admin/themes/view.tcl 26 Jan 2017 13:10:32 -0000 1.1.2.3 +++ openacs-4/packages/acs-subsite/www/admin/themes/view.tcl 11 Feb 2017 21:54:38 -0000 1.1.2.4 @@ -33,42 +33,28 @@ set subsite_id [ad_conn subsite_id] set currentThemeKey [parameter::get -parameter ThemeKey -package_id $subsite_id] -#ns_log notice currentThemeKey=$currentThemeKey -#ns_log notice ACTION=[template::form get_action theme]-[ns_set array [ns_getform]] - +# +# Get the default values for the theme from the DB +# db_1row get_vars_of_seleted_theme {select * from subsite_themes where key = :theme} # -# Since the standard display mode does not produce good results in our -# case, we try to implement our own management here. Probably, the -# display mode of textarea should be fixed to reduce complexity here. +# Default edit buttons # -if {1 || [ns_queryget formbutton:edit] ne ""} { - set htmlSpecs "" - #ns_log notice "true edit mode" - set editMode 1 - set editButtons [list [list " Save " save] ] - set page_title "Edit Theme Parameters of Subsite: $instance_name" +set editButtons {{" Save Parameters " save}} +if {$local_p} { # - # Since we are doing our own display/edit modes, we have to tell - # ad_form, that this request should be treated like a fresh - # request. + # When the local_p flag is set, allow to overwrite the theme + # defaults. # - #ns_set truncate [ns_getform] 0 -} else { - set htmlSpecs [list disabled disabled] - #ns_log notice "view mode" - set editMode 0 - set editButtons [list [list Edit edit] ] - set page_title "View Theme Parameters of Subsite: $instance_name" + lappend editButtons {" Overwrite Theme Defaults and Save Parameters " overwrite} } - +set page_title "Edit Theme Parameters of Subsite: $instance_name" set context [list {. #acs-subsite.Themes#} $page_title] - - set nr_differs 0 set formSpec {} +set htmlSpecs "" foreach {var param} $settings { if {$var in {css js}} { lappend htmlSpecs rows 5 cols 100 @@ -81,9 +67,11 @@ if {$currentThemeKey eq $key} { set currentValue [string trim [parameter::get -parameter $param -package_id $subsite_id]] regsub -all {\r\n} $currentValue "\n" currentValue - if {$currentValue ne [string trim [set $var]]} { + set value [string trim [set $var]] + regsub -all {\r\n} $value "\n" value + if {$currentValue ne $value} { lappend currentSpec [list help_text "differs"] - #ns_log notice "current value \n<$currentValue>\ndiffers from\n<[string trim [set $var]]>" + ns_log notice "current value \n<$currentValue>\ndiffers from\n<$value>" incr nr_differs } # @@ -111,19 +99,31 @@ #ns_log notice "on request" } -on_submit { - #ns_log notice "on submit ====== SAVE?" - if {[ns_queryget formbutton:save] ne ""} { - ns_log notice "edit theme ====== SAVE form values in actual parameter settings" + + if {[ns_queryget formbutton:save] ne "" || [ns_queryget formbutton:overwrite] ne ""} { + #ns_log notice "edit theme ====== SAVE form values in actual parameter settings" foreach {var param} $settings { parameter::set_value -parameter $param -package_id $subsite_id -value [set $var] } } - - } -after_submit { - if {1 || !$editMode} { - ad_returnredirect $return_url - ad_script_abort + if {[ns_queryget formbutton:overwrite] ne ""} { + #ns_log notice "edit theme ====== OVERWRITE form values in theme defaults" + + set params {} + foreach {var param} $settings { + lappend params -$var [set $var] + } + + subsite::update_subsite_theme \ + -key $theme \ + -name $name \ + -local_p true \ + {*}$params } + + } -after_submit { + ad_returnredirect $return_url + ad_script_abort } # Local variables: