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: