Commit 064ef07f authored by Frank Bergmann's avatar Frank Bergmann

- Added missing OpenACS 5.9.1 upgrade scripts

parent 4c53411b
<?xml version="1.0"?>
<queryset>
<rdbms><type>oracle</type><version>8.1.6</version></rdbms>
<fullquery name="select_applications">
<querytext>
select p.package_id,
p.instance_name,
n.node_id,
n.name
from site_nodes n,
apm_packages p,
apm_package_types t
where n.parent_id = :subsite_node_id
and p.package_id = n.object_id
and t.package_key = p.package_key
and t.package_type = 'apm_application'
and exists (select 1
from acs_object_party_privilege_map perm
where perm.object_id = p.package_id
and perm.privilege = 'read'
and perm.party_id = :user_id)
order by upper(instance_name)
</querytext>
</fullquery>
</queryset>
<?xml version="1.0"?>
<queryset>
<rdbms><type>postgresql</type><version>9.0</version></rdbms>
<fullquery name="select_applications">
<querytext>
select p.package_id,
p.instance_name,
n.node_id,
n.name
from site_nodes n,
apm_packages p,
apm_package_types t
where n.parent_id = :subsite_node_id
and p.package_id = n.object_id
and t.package_key = p.package_key
and t.package_type = 'apm_application'
and acs_permission__permission_p(p.package_id, :user_id, 'read')
order by upper(instance_name)
</querytext>
</fullquery>
</queryset>
<?xml version="1.0"?>
<queryset>
<rdbms><type>oracle</type><version>8.1.6</version></rdbms>
<fullquery name="select_subsites">
<querytext>
select p.package_id,
p.instance_name,
n.node_id,
n.name,
:subsite_url || n.name as url,
(select count(*)
from group_approved_member_map m
where m.rel_type = 'membership_rel'
and m.group_id = ag.group_id) as num_members,
(select min(r2.member_state)
from group_member_map m2,
membership_rels r2
where m2.group_id = ag.group_id
and m2.member_id = :untrusted_user_id
and r2.rel_id = m2.rel_id) as member_state,
g.group_id,
g.join_policy
from site_nodes n,
apm_packages p,
application_groups ag,
groups g
where n.parent_id = :subsite_node_id
and p.package_id = n.object_id
and p.package_key in ('[join [subsite::package_keys] {','}]')
and ag.package_id = p.package_id
and g.group_id = ag.group_id
and (exists (select 1
from acs_object_party_privilege_map perm
where perm.object_id = p.package_id
and perm.privilege = 'read'
and perm.party_id = :untrusted_user_id) or g.join_policy != 'closed')
order by lower(instance_name)
</querytext>
</fullquery>
</queryset>
<?xml version="1.0"?>
<queryset>
<rdbms><type>postgresql</type><version>9.0</version></rdbms>
<fullquery name="select_subsites">
<querytext>
select p.package_id,
p.instance_name,
n.node_id,
n.name,
:subsite_url || n.name as url,
(select count(*)
from group_approved_member_map m
where m.rel_type = 'membership_rel'
and m.group_id = ag.group_id) as num_members,
(select min(r2.member_state)
from group_member_map m2,
membership_rels r2
where m2.group_id = ag.group_id
and m2.member_id = :untrusted_user_id
and r2.rel_id = m2.rel_id) as member_state,
g.group_id,
g.join_policy
from site_nodes n,
apm_packages p,
application_groups ag,
groups g
where n.parent_id = :subsite_node_id
and p.package_id = n.object_id
and p.package_key in ('[join [subsite::package_keys] {','}]')
and ag.package_id = p.package_id
and g.group_id = ag.group_id
and (acs_permission__permission_p(p.package_id, :untrusted_user_id, 'read')
or g.join_policy != 'closed')
order by lower(instance_name)
</querytext>
</fullquery>
</queryset>
alter table subsite_themes add local_p char(1) default 'f'
constraint subsite_themes_local_p_ck check (local_p in ('t','f'));
alter table subsite_themes add column local_p boolean default false;
--
-- Changes induced by the type discrepancy cleanup in 5.9.1d8-5.9.1d9:
-- Using consistently varchar(1000) for object types.
--
ALTER TABLE subsite_callbacks ALTER COLUMN object_type TYPE varchar(1000);
<?xml version="1.0"?>
<queryset>
<rdbms><type>oracle</type><version>8.1.6</version></rdbms>
<fullquery name="select_groups">
<querytext>
select DISTINCT g.group_id, g.group_name
from (select group_id, group_name
from groups g, acs_objects o
where g.group_id = o.object_id
and o.object_type = :group_type) g,
(select object_id
from acs_object_party_privilege_map
where party_id = :user_id and privilege = 'read') perm,
application_group_element_map m
where perm.object_id = g.group_id
and m.package_id = :package_id
and m.element_id = g.group_id
order by lower(g.group_name)
</querytext>
</fullquery>
</queryset>
<?xml version="1.0"?>
<queryset>
<rdbms><type>oracle</type><version>8.1.6</version></rdbms>
<fullquery name="select_rel_constraints">
<querytext>
select c.constraint_id, c.constraint_name
from rel_constraints c
application_group_segments s1, application_group_segments s2
where s1.segment_id = c.rel_segment
and s1.package_id = :package_id
and s2.segment_id = c.required_rel_segment
and s2.package_id = :package_id
and exists (select 1
from acs_object_party_privilege_map perm
where perm.object_id = c.constraint_id
and perm.party_id = :user_id
and perm.privilege = 'read')
order by lower(c.constraint_name)
</querytext>
</fullquery>
</queryset>
<?xml version="1.0"?>
<queryset>
<rdbms><type>postgresql</type><version>9.0</version></rdbms>
<fullquery name="select_rel_constraints">
<querytext>
select c.constraint_id, c.constraint_name
from rel_constraints c
application_group_segments s1, application_group_segments s2
where s1.segment_id = c.rel_segment
and s1.package_id = :package_id
and s2.segment_id = c.required_rel_segment
and s2.package_id = :package_id
and acs_permission__permission_p(c.constraint_id, :user_id, 'read')
order by lower(c.constraint_name)
</querytext>
</fullquery>
</queryset>
<master>
<property name="context">@context;literal@</property>
<property name="doc(title)">Dependent relations exist</property>
You must remove the following dependent relations before you can
remove the @rel.rel_type_pretty_name@ between @rel.object_id_one_name@
and @rel.object_id_two_name@.
<p>
<ul>
<multiple name="dependents">
<li> @dependents.rel_type_pretty_name@ between
@dependents.object_id_one_name@ and @dependents.object_id_two_name@
(<a href="remove?@dependents.export_vars@">remove</a>)
</li>
</multiple>
</ul>
ad_page_contract {
Delete the theme with the specified key
@author Gustaf Neumann
@creation-date 2017-01-20
} {
theme:trim
} -validate {
new_key_valid -requires new_key {
if {![db_string check_exists_theme {
select 1 from subsite_themes where key = :theme
} -default 0]} {
ad_complain "Theme with key '$theme' does not exist"
}
}
}
subsite::delete_subsite_theme -key $theme
ns_returnredirect "."
<master>
<property name="&doc">doc</property>
<property name="context">@context;literal@</property>
<h1>Available Themes</h1>
<p>The following themes are available in your installation:</p>
<listtemplate name="themes"></listtemplate>
<p>To perform customizations, one can modify the <a href="../../shared/parameters?return_url=/admin/themes"> theme
parameters</a> of the currently selected theme and save it under a new
name. </p>
<p>When a theme originating from a theming package is deleted, it might
ne recreated via the after_install callback of that package.</p>
ad_page_contract {
Themes
@author Gustaf Neumann
@creation-date 2017-01-20
} {
{rename_theme ""}
}
set doc(title) [_ acs-subsite.Themes]
set context [list $doc(title)]
set subsite_node_id [ad_conn subsite_node_id]
list::create \
-name themes \
-multirow themes \
-key key \
-pass_properties rename_theme \
-page_query_name select_themes \
-elements {
edit {
sub_class narrow
display_template {
<if @themes.active_p;literal@ true>
<img src="/resources/acs-subsite/Edit16.gif" height="16" width="16" alt="#acs-subsite.Edit_this_theme#" style="border:0">
</if>
}
link_url_eval {[export_vars -base view { {theme $key} }]}
link_html { title "#acs-subsite.Edit_this_theme#" }
}
key {
label "[_ acs-subsite.Key]"
}
name {
label "[_ acs-subsite.Name]"
}
usage_count {
label "[_ acs-subsite.Usage]"
html {style "text-align: center;"}
}
active_p {
label "[_ acs-subsite.Active_theme]"
display_template {
<if @themes.active_p;literal@ true>
<img src="/shared/images/radiochecked.gif" height="16" width="16" alt="#acs-subsite.Modified_theme#"
style="display: block; margin-left: auto; margin-right: auto;">
</if>
<else>
<a href="set?theme=@themes.key@" title="#acs-subsite.Select_theme#">
<img src="/shared/images/radio.gif" height="16" width="16" alt="#acs-subsite.Select_theme#"
style="display: block; margin-left: auto; margin-right: auto;">
</a>
</else>
}
}
modified_p {
label "[_ acs-subsite.Modified_theme]"
display_template {
<if @themes.modified_p;literal@ true>
<if @rename_theme@ eq @themes.key;literal@>
<form name="rename_theme" action="save-new">
<div>
<label for="new-theme">New key: </label>
<input id="new-theme" name="new_theme" type="text" value="@themes.key@" size="40"><br>
<label for="new-name">New name: </label>
<input id="new-name" name="new_name" type="text" value="@themes.name@" size="40"><br>
<input type="submit" value="Save New"></div>
</form>
</if>
<else>
<img src="/shared/images/radiochecked.gif" height="16" width="16" alt="#acs-subsite.Modified_theme#"
style="display: block; margin-left: auto; margin-right: auto;">
<a href="./?rename_theme=@themes.key;literal@">Save new</a>
</else>
</if>
}
}
delete {
sub_class narrow
display_template {
<if @themes.usage_count;literal@ eq 0>
<img src="/shared/images/Delete16.gif" height="16" width="16" alt="#acs-subsite.Delete_this_theme#" style="border:0">
</if>
}
link_url_eval {[export_vars -base delete { {theme $key} }]}
link_html { title "#acs-subsite.Delete_this_theme#" }
}
}
set subsite_id [ad_conn subsite_id]
set currentThemeKey [parameter::get -parameter ThemeKey -package_id $subsite_id]
set settings {
template DefaultMaster
css ThemeCSS
js ThemeJS
form_template DefaultFormStyle
list_template DefaultListStyle
list_filter_template DefaultListFilterStyle
dimensional_template DefaultDimensionalStyle
resource_dir ResourceDir
streaming_head StreamingHead
}
set package_keys '[join [subsite::package_keys] ',']'
db_multirow -extend {active_p modified_p delete_p usage_count} themes select_themes {} {
set active_p [expr {$currentThemeKey eq $key}]
set modified_p 0
if {$active_p} {
foreach {var param} $settings {
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'"
break
}
}
}
set usage_count [db_string count_theme_usages [subst {
select count(*)
from apm_parameters p, apm_parameter_values v
where p.parameter_name = 'ThemeKey'
and p.package_key in ($package_keys)
and p.parameter_id = v.parameter_id
and v.attr_value = :key
}]]
}
# Local variables:
# mode: tcl
# tcl-indent-level: 4
# indent-tabs-mode: nil
# End:
<?xml version="1.0"?>
<queryset>
<rdbms><type>postgresql</type><version>7.1</version></rdbms>
<fullquery name="select_themes">
<querytext>
select * from subsite_themes
</querytext>
</fullquery>
</queryset>
\ No newline at end of file
ad_page_contract {
Save current settings as a theme with a new key and name
@author Gustaf Neumann
@creation-date 2017-01-20
} {
new_theme:word,trim
new_name:trim
} -validate {
new_theme_valid -requires new_theme {
if {[db_string check_exists_theme {
select 1 from subsite_themes where key = :new_theme
} -default 0]} {
ad_complain "Theme with key '$new_theme' exists already"
}
}
}
#
# Save the current setting under a new name
#
subsite::save_theme_parameters_as \
-theme $new_theme \
-pretty_name $new_name
#
# ... and actiate the new theme automatically
#
subsite::set_theme -theme $new_theme
ns_returnredirect "."
ad_page_contract {
Set the theme to the specified key
@author Gustaf Neumann
@creation-date 2017-01-20
} {
theme:trim
} -validate {
new_key_valid -requires new_key {
if {![db_string check_exists_theme {
select 1 from subsite_themes where key = :theme
} -default 0]} {
ad_complain "Theme with key '$theme' does not exist"
}
}
}
subsite::set_theme -theme $theme
ns_returnredirect "."
<master>
<property name="doc(title)">@page_title;literal@</property>
<property name="context">@context;literal@</property>
<property name="focus">theme.key</property>
<h1>@page_title@</h1>
<h3>@sub_title@</h3>
<formtemplate id="theme"></formtemplate>
ad_page_contract {
View (and maybe edit) theme parameters
@author Gustaf Neumann
@creation-date 2017-01-21
} {
{theme:word,trim}
} -validate {
theme_valid -requires theme {
if {![db_string check_exists_theme {
select 1 from subsite_themes where key = :theme
} -default 0]} {
ad_complain "Theme with key '$theme' does not exist"
}
}
}
set subsite_id [ad_conn subsite_id]
set instance_name [apm_instance_name_from_id $subsite_id]
set settings {
template DefaultMaster
css ThemeCSS
js ThemeJS
form_template DefaultFormStyle
list_template DefaultListStyle
list_filter_template DefaultListFilterStyle
dimensional_template DefaultDimensionalStyle
resource_dir ResourceDir
streaming_head StreamingHead
}
set subsite_id [ad_conn subsite_id]
set currentThemeKey [parameter::get -parameter ThemeKey -package_id $subsite_id]
#
# Get the default values for the theme from the DB
#
db_1row get_vars_of_seleted_theme {select * from subsite_themes where key = :theme}
#
# Default edit buttons
#
set editButtons {{" Save Parameters " save}}
if {$local_p} {
#
# When the local_p flag is set, allow to overwrite the theme
# defaults.
#
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
set currentSpec [list ${var}:text(textarea),nospell,optional [list label $param] [list html $htmlSpecs]]
} else {
lappend htmlSpecs size 80
set currentSpec [list ${var}:text,optional [list label $param] [list html $htmlSpecs]]
}
if {$currentThemeKey eq $key} {
set currentValue [string trim [parameter::get -parameter $param -package_id $subsite_id]]
regsub -all {\r\n} $currentValue "\n" currentValue
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<$value>"
incr nr_differs
}
#
# set the variable in the form to the value obtained from the parameters
#
set $var $currentValue
}
lappend formSpec $currentSpec
}
lappend formSpec [list theme:text(hidden)]
if {$nr_differs > 0} {
set sub_title "Subsite uses modified theme parameters based on $theme"
} else {
set sub_title "Subsite uses theme parameters of $theme"
}
#set return_url [export_vars -base view {theme}]
set return_url "."
ad_form -name theme \
-cancel_url $return_url \
-edit_buttons $editButtons \
-form $formSpec \
-on_request {
#ns_log notice "on request"
} -on_submit {
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]
}
}
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:
# mode: tcl
# tcl-indent-level: 4
# indent-tabs-mode: nil
# End:
<master>
<property name="doc(title)">@action;literal@</property>
<property name="context">@context;literal@</property>
<p>Done.</p>
<p>You can <a href="@email_link@">send the user email</a> or <a href="@return_url@">go back</a>.</p>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment