Index: openacs-4/packages/richtext-ckeditor4/tcl/richtext-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-ckeditor4/tcl/richtext-procs.tcl,v
diff -u -N -r1.9 -r1.10
--- openacs-4/packages/richtext-ckeditor4/tcl/richtext-procs.tcl 27 Jun 2018 13:04:48 -0000 1.9
+++ openacs-4/packages/richtext-ckeditor4/tcl/richtext-procs.tcl 3 Aug 2018 09:52:43 -0000 1.10
@@ -17,15 +17,15 @@
set package_id [apm_package_id_from_key "richtext-ckeditor4"]
# ns_section ns/server/${server}/acs/richtext-ckeditor
- # ns_param CKEditorVersion 4.9.2
+ # ns_param CKEditorVersion 4.10.0
# ns_param CKEditorPackage standard
# ns_param CKFinderURL /acs-content-repository/ckfinder
# ns_param StandardPlugins uploadimage
#
set version [parameter::get \
-package_id $package_id \
-parameter CKEditorVersion \
- -default 4.9.2]
+ -default 4.10.0]
set ckfinder_url [parameter::get \
-package_id $package_id \
-parameter CKFinderURL \
@@ -191,7 +191,7 @@
#
}
- ad_proc ::richtext::ckeditor4::version_info {
+ ad_proc ::richtext::ckeditor4::resource_info {
{-ck_package ""}
{-version ""}
} {
@@ -201,7 +201,7 @@
} {
#
- # If no version or ck editor package are specified, use the
+ # If no version or CKeditor package are specified, use the
# namespaced variables as default.
#
if {$version eq ""} {
@@ -211,17 +211,38 @@
set ck_package ${::richtext::ckeditor4::ck_package}
}
+ #
+ # Setup variables for access via CDN vs. local resources.
+ #
+ set resourceDir [acs_package_root_dir richtext-ckeditor4/www/resources]
+ set resourceUrl /resources/richtext-ckeditor4
+ set cdn //cdn.ckeditor.com/
+
set suffix $version/$ck_package/ckeditor.js
- set resources $::acs::rootdir/packages/richtext-ckeditor4/www/resources
- if {[file exists $resources/$suffix]} {
- lappend result file $resources/$suffix
- lappend result resources /resources/richtext-ckeditor4/$suffix
- lappend result basedir /resources/richtext-ckeditor4/$version/$ck_package
- } else {
- lappend result basedir //cdn.ckeditor.com/$version/$ck_package
+
+ if {[file exists $resourceDir/$version/$ck_package]} {
+ set prefix $resourceUrl/$version
+ set cdnHost ""
+ } else {
+ set prefix $cdn/$version
+ set cdnHost cdn.ckeditor.com
}
- lappend result cdn "//cdn.ckeditor.com/$suffix"
+ #
+ # Return the dict with at least the required fields
+ #
+ lappend result \
+ resourceName "CKEditor 4" \
+ resourceDir $resourceDir \
+ cdn $cdn \
+ cdnHost $cdnHost \
+ prefix $prefix \
+ cssFiles {} \
+ jsFiles {} \
+ extraFiles {} \
+ downloadURLs http://download.cksource.com/CKEditor/CKEditor/CKEditor%20${version}/ckeditor_${version}_${ck_package}.zip \
+ urnMap {}
+
return $result
}
@@ -243,26 +264,35 @@
customization.
} {
- set version_info [::richtext::ckeditor4::version_info \
+ if {$version eq ""} {
+ set version ${::richtext::ckeditor4::version}
+ }
+ if {$ck_package eq ""} {
+ set ck_package ${::richtext::ckeditor4::ck_package}
+ }
+
+ set resource_info [::richtext::ckeditor4::resource_info \
-ck_package $ck_package \
-version $version]
+
+ set prefix [dict get $resource_info prefix]
- if {[dict exists $version_info resources]} {
- template::head::add_javascript -order $order \
- -src [dict get $version_info resources]
- } else {
- template::head::add_javascript -order $order -src [dict get $version_info cdn]
- security::csp::require script-src cdn.ckeditor.com
- security::csp::require style-src cdn.ckeditor.com
- security::csp::require img-src cdn.ckeditor.com
+ if {[dict exists $resource_info cdnHost] && [dict get $resource_info cdnHost] ne ""} {
+ security::csp::require script-src [dict get $resource_info cdnHost]
+ security::csp::require style-src [dict get $resource_info cdnHost]
+ security::csp::require img-src [dict get $resource_info cdnHost]
}
+ ns_log notice "SRC -src $prefix/$ck_package/ckeditor.js"
+ template::head::add_javascript -order $order \
+ -src $prefix/$ck_package/ckeditor.js
+
foreach adapter $adapters {
template::head::add_javascript -order $order.1 \
- -src [dict get $version_info basedir]/adapters/$adapter
+ -src $prefix/adapters/$adapter
}
#
- # add required general directives for content security policies
+ # Add required general directives for content security policies.
#
security::csp::require script-src 'unsafe-eval'
security::csp::require -force script-src 'unsafe-inline'
@@ -287,7 +317,7 @@
} {
#
- # If no version or ck editor package are specified, use the
+ # If no version or ck_package are specified, use the
# namespaced variables as default.
#
if {$version eq ""} {
@@ -296,9 +326,16 @@
if {$ck_package eq ""} {
set ck_package ${::richtext::ckeditor4::ck_package}
}
+
+ set resource_info [::richtext::ckeditor4::resource_info \
+ -ck_package $ck_package \
+ -version $version]
+
+ ::util::resources::download \
+ -resource_info $resource_info \
+ -version_dir $version
- set download_url http://download.cksource.com/CKEditor/CKEditor/CKEditor%20${version}/ckeditor_${version}_${ck_package}.zip
- set resources $::acs::rootdir/packages/richtext-ckeditor4/www/resources
+ set resourceDir [dict get $resource_info resourceDir]
#
# Do we have unzip installed?
@@ -309,32 +346,24 @@
}
#
- # Do we have a writable output directory under resources?
+ # Do we have a writable output directory under resourceDir?
#
- if {![file isdirectory $resources/$version]} {
- file mkdir $resources/$version
+ if {![file isdirectory $resourceDir/$version]} {
+ file mkdir $resourceDir/$version
}
- if {![file writable $resources/$version]} {
- error "directory $resources/$version is not writable"
+ if {![file writable $resourceDir/$version]} {
+ error "directory $resourceDir/$version is not writable"
}
#
- # So far, everything is fine, download the editor package
+ # So far, everything is fine, unpack the editor package.
#
- set result [util::http::get -url $download_url -spool]
- #ns_log notice "GOT $result"
- if {[dict get $result status] == 200} {
- #
- # The Download was successful, unzip it and let the
- # directory structure look similar as on the CDN.
- #
- set fn [dict get $result file]
- set output [exec $unzip -o $fn -d $resources/$version]
+ foreach url [dict get $resource_info downloadURLs] {
+ set fn [file tail $url]
+ set output [exec $unzip -o $resourceDir/$version/$fn -d $resourceDir/$version]
file rename -- \
- $resources/$version/ckeditor \
- $resources/$version/$ck_package
- } else {
- error "download of $download_url failed, HTTP status: [dict get $result status]"
+ $resourceDir/$version/ckeditor \
+ $resourceDir/$version/$ck_package
}
}
Index: openacs-4/packages/richtext-ckeditor4/www/sitewide-admin/index.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-ckeditor4/www/sitewide-admin/index.adp,v
diff -u -N -r1.3 -r1.4
--- openacs-4/packages/richtext-ckeditor4/www/sitewide-admin/index.adp 1 Feb 2018 10:49:28 -0000 1.3
+++ openacs-4/packages/richtext-ckeditor4/www/sitewide-admin/index.adp 3 Aug 2018 09:52:43 -0000 1.4
@@ -3,18 +3,4 @@
@context;literal@
@title;noquote@
-
-The current version of CKEditor is @version@.
-This version of CKEditor is installed locally
-under @resources@
-In the current installation, this version of CKEditor can be used via CDN @cdn@.
-
- Do you want to download
- version @version@ of CKEditor to your file system?
-
-
- The directory @path@ is NOT writable for the server. In
- order to be able to download the CKEditor via this web interface,
- please change the permissions so that OpenACS can write to it.
-
-
.
+
Index: openacs-4/packages/richtext-ckeditor4/www/sitewide-admin/index.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/richtext-ckeditor4/www/sitewide-admin/index.tcl,v
diff -u -N -r1.2 -r1.3
--- openacs-4/packages/richtext-ckeditor4/www/sitewide-admin/index.tcl 7 Aug 2017 23:48:14 -0000 1.2
+++ openacs-4/packages/richtext-ckeditor4/www/sitewide-admin/index.tcl 3 Aug 2018 09:52:43 -0000 1.3
@@ -1,16 +1,13 @@
-set title "Richtext CKEditor Sitewide Admin"
-set context [list $title]
-set version $::richtext::ckeditor4::version
+ad_page_contract {
+ @author Gustaf Neumann
-#
-# Get version info about CKEditor. If not locally installed, offer a
-# link for download.
-#
-set version_info [::richtext::ckeditor4::version_info]
-if {[dict exists $version_info resources]} {
- set resources [dict get $version_info resources]
+ @creation-date Aug 6, 2018
+} {
}
-set cdn [dict get $version_info cdn]
-set path $::acs::rootdir/packages/richtext-ckeditor4/www
-set writable [file writable $path]
+set version $::richtext::ckeditor4::version
+set resource_info [::richtext::ckeditor4::resource_info]
+
+set title "[dict get $resource_info resourceName] - Sitewide Admin"
+set context [list $title]
+