Index: openacs-4/packages/dotlrn-bootstrap3-theme/dotlrn-bootstrap3-theme.info
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn-bootstrap3-theme/dotlrn-bootstrap3-theme.info,v
diff -u -r1.4.2.6 -r1.4.2.7
--- openacs-4/packages/dotlrn-bootstrap3-theme/dotlrn-bootstrap3-theme.info	24 Jul 2023 14:23:53 -0000	1.4.2.6
+++ openacs-4/packages/dotlrn-bootstrap3-theme/dotlrn-bootstrap3-theme.info	14 Feb 2024 11:01:19 -0000	1.4.2.7
@@ -6,33 +6,32 @@
     <pretty-plural>dotLRN Bootstrap 3 Themes</pretty-plural>
     <initial-install-p>f</initial-install-p>
     <singleton-p>t</singleton-p>
+    <implements-subsite-p>f</implements-subsite-p>
+    <inherit-templates-p>t</inherit-templates-p>
 
-    <version name="2.10.1b1" url="http://openacs.org/repository/download/apm/dotlrn-bootstrap3-theme-2.10.1b1.apm">
-       <owner url="mailto:manderga@wu.ac.at">manderga</owner>
-        <release-date>2021-09-16</release-date>
-        <vendor url="http://wu.ac.at">WU Vienna</vendor>
+    <version name="2.10.1b2" url="http://openacs.org/repository/download/apm/dotlrn-bootstrap3-theme-2.10.1b2.apm">
+        <owner url="mailto:manderga@wu.ac.at">manderga</owner>
         <summary>Provides a Theme for DotLRN based on Twitter Bootstrap</summary>
+        <release-date>2024-02-14</release-date>
+        <vendor url="http://wu.ac.at">WU Vienna</vendor>
         <maturity>0</maturity>
 
-        <provides url="dotlrn-bootstrap3-theme" version="2.10.1b1"/>
+        <provides url="dotlrn-bootstrap3-theme" version="2.10.1b2"/>
         <requires url="dotlrn" version="2.10.1b1"/>
-        <requires url="openacs-bootstrap3-theme" version="5.9.1"/>
+        <requires url="openacs-bootstrap3-theme" version="5.10.1b1"/>
 
         <callbacks>
-            <callback type="after-install"    proc="dotlrn_bootstrap3_theme::apm::after_install"/>
-            <callback type="before-uninstantiate" proc="dotlrn_bootstrap3_theme::apm::before_uninstantiate"/>
-            <callback type="before-uninstall" proc="dotlrn_bootstrap3_theme::apm::before_uninstall"/>
+            <callback type="before-uninstall"  proc="dotlrn_bootstrap3_theme::apm::before_uninstall"/>
+            <callback type="after-install"  proc="dotlrn_bootstrap3_theme::apm::after_install"/>
+            <callback type="before-uninstantiate"  proc="dotlrn_bootstrap3_theme::apm::before_uninstantiate"/>
+            <callback type="after-upgrade"  proc="dotlrn_bootstrap3_theme::apm::after_upgrade"/>
         </callbacks>
         <parameters>
-            <parameter datatype="string"  min_n_values="1"  max_n_values="1" name="AdditionalNavbarTabs"  default="/dotlrn/ #dotlrn.Home# #dotlrn.Home_Accesskey# /dotlrn/courses #dotlrn.Courses# #dotlrn.Courses_Accesskey# /dotlrn/communities #dotlrn.Communities# #dotlrn.Communities_Accesskey# /dotlrn/control-panel #dotlrn.control_panel# #dotlrn.control_panel_accesskey#" description="list of URL Names pairs which will make it into additional navbar tabs"/>
-            
-            <parameter datatype="string"  min_n_values="1"  max_n_values="1" name="ZenToBootstrapMap"  default="#new-portal.simple_1column_layout_name# #dotlrn-bootstrap3-theme.bootstrap-1column# #new-portal.simple_2column_layout_name# #dotlrn-bootstrap3-theme.bootstrap-2column#  #new-portal.simple_3column_layout_name# #dotlrn-bootstrap3-theme.bootstrap-3column# #theme-zen.Zen_1_column# #dotlrn-bootstrap3-theme.bootstrap-1column#  #theme-zen.Zen_2_column# #dotlrn-bootstrap3-theme.bootstrap-2column# #theme-zen.Zen_3_column# #dotlrn-bootstrap3-theme.bootstrap-3column#  #theme-zen.Zen_thin_thick# #dotlrn-bootstrap3-theme.bootstrap-2column# #theme-zen.Zen_thin_thick_thin# #dotlrn-bootstrap3-theme.bootstrap-3column#"  description="list of old layout/new layout names used to update an existing .LRN site"/>
-            
-            <parameter datatype="string"  min_n_values="1"  max_n_values="1" name="BootstrapToZenMap"  default="#dotlrn-bootstrap3-theme.bootstrap-1column# #theme-zen.Zen_1_column# #dotlrn-bootstrap3-theme.bootstrap-2column# #theme-zen.Zen_2_column# #dotlrn-bootstrap3-theme.bootstrap-3column# #theme-zen.Zen_3_column#" description="list of old layout/new layout names used to update an existing .LRN site"/>
-            
-            <parameter datatype="string"  min_n_values="1"  max_n_values="1"  name="GenericCommunityTab"  default="0" description="Use a generic name for the community tab"/>
+            <parameter scope="instance" datatype="string"  min_n_values="1"  max_n_values="1"  name="AdditionalNavbarTabs"  default="/dotlrn/ #dotlrn.Home# #dotlrn.Home_Accesskey# /dotlrn/courses #dotlrn.Courses# #dotlrn.Courses_Accesskey# /dotlrn/communities #dotlrn.Communities# #dotlrn.Communities_Accesskey# /dotlrn/control-panel #dotlrn.control_panel# #dotlrn.control_panel_accesskey#" description="list of URL Names pairs which will make it into additional navbar tabs"/>
+            <parameter scope="instance" datatype="string"  min_n_values="1"  max_n_values="1"  name="BootstrapToZenMap"  default="#dotlrn-bootstrap3-theme.bootstrap-1column# #theme-zen.Zen_1_column# #dotlrn-bootstrap3-theme.bootstrap-2column# #theme-zen.Zen_2_column# #dotlrn-bootstrap3-theme.bootstrap-3column# #theme-zen.Zen_3_column#" description="list of old layout/new layout names used to update an existing .LRN site"/>
+            <parameter scope="instance" datatype="string"  min_n_values="1"  max_n_values="1"  name="GenericCommunityTab"  default="0" description="Use a generic name for the community tab"/>
+            <parameter scope="instance" datatype="string"  min_n_values="1"  max_n_values="1"  name="ZenToBootstrapMap"  default="#new-portal.simple_1column_layout_name# #dotlrn-bootstrap3-theme.bootstrap-1column# #new-portal.simple_2column_layout_name# #dotlrn-bootstrap3-theme.bootstrap-2column#  #new-portal.simple_3column_layout_name# #dotlrn-bootstrap3-theme.bootstrap-3column# #theme-zen.Zen_1_column# #dotlrn-bootstrap3-theme.bootstrap-1column#  #theme-zen.Zen_2_column# #dotlrn-bootstrap3-theme.bootstrap-2column# #theme-zen.Zen_3_column# #dotlrn-bootstrap3-theme.bootstrap-3column#  #theme-zen.Zen_thin_thick# #dotlrn-bootstrap3-theme.bootstrap-2column# #theme-zen.Zen_thin_thick_thin# #dotlrn-bootstrap3-theme.bootstrap-3column#" description="list of old layout/new layout names used to update an existing .LRN site"/>
         </parameters>
 
     </version>
 </package>
-
Index: openacs-4/packages/dotlrn-bootstrap3-theme/tcl/apm-callback-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn-bootstrap3-theme/tcl/apm-callback-procs.tcl,v
diff -u -r1.2.2.3 -r1.2.2.4
--- openacs-4/packages/dotlrn-bootstrap3-theme/tcl/apm-callback-procs.tcl	21 Aug 2020 14:36:44 -0000	1.2.2.3
+++ openacs-4/packages/dotlrn-bootstrap3-theme/tcl/apm-callback-procs.tcl	14 Feb 2024 11:01:19 -0000	1.2.2.4
@@ -96,16 +96,16 @@
             -template /packages/dotlrn-bootstrap3-theme/resources/masters/dotlrn-master \
             -css {
 {-href /resources/acs-subsite/site-master.css -media all -order 0}
-{-href //maxcdn.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css -media all -order 1}
+{-href urn:ad:css:bootstrap3 -media all -order 1}
 {-href /resources/openacs-bootstrap3-theme/css/main.css -media all -order 2}
 {-href /resources/dotlrn-bootstrap3-theme/css/dotlrn.css -media all -order 3}
 {-href /resources/dotlrn-bootstrap3-theme/css/color/green.css -media all -order 4}
 {-href /resources/acs-templating/forms.css -media all -order 5}
 {-href /resources/acs-templating/lists.css -media all -order 6}
             } \
             -js {
-{-src "/resources/openacs-bootstrap3-theme/js/jquery-1.11.3.min.js" -order 1}
-{-src "//maxcdn.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js" -order 2}
+                {-src urn:ad:js:jquery -order 1}
+                {-src urn:ad:js:bootstrap3 -order 2}
             } \
             -form_template standard \
             -list_template table \
@@ -153,7 +153,57 @@
     subsite::delete_subsite_theme -key dotlrn_bootstrap3
 }
 
+ad_proc -private dotlrn_bootstrap3_theme::apm::after_upgrade {
+    {-from_version_name:required}
+    {-to_version_name:required}
+} {
+    Upgrade logic
+} {
+    apm_upgrade_logic \
+        -from_version_name $from_version_name \
+        -to_version_name $to_version_name \
+        -spec {
+            2.10.1b1 2.10.1b2 {
+                #
+                # Subsites using this theme before we change it. We
+                # exclude those that were customized.
+                #
+                set subsites [subsite::get_theme_subsites \
+                                  -theme dotlrn_bootstrap3 -unmodified]
 
+                #
+                # Switch to URN for external dependencies
+                #
+                db_dml update {
+                  update subsite_themes set
+                         js = REPLACE(REPLACE(js,
+                                              '/resources/openacs-bootstrap3-theme/js/jquery-1.11.3.min.js',
+                                              'urn:ad:js:jquery'
+                                              ),
+                                      '//maxcdn.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js',
+                                      'urn:ad:js:bootstrap3'
+                                     ),
+                         css = REPLACE(css,
+                                       '//maxcdn.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css',
+                                       'urn:ad:css:bootstrap3'
+                                      )
+                  where key = 'dotlrn_bootstrap3'
+                }
+
+                #
+                # Update the subsites
+                #
+                foreach subsite_id $subsites {
+                    subsite::set_theme \
+                        -subsite_id $subsite_id \
+                        -theme dotlrn_bootstrap3
+                }
+            }
+        }
+}
+
+
+
 # Local variables:
 #    mode: tcl
 #    tcl-indent-level: 4