Merge pull request #3795 from nextcloud/bundle_vendor_js
Bundle vendor js
This commit is contained in:
commit
ec3f5aa6e2
|
@ -19,6 +19,13 @@ pipeline:
|
||||||
when:
|
when:
|
||||||
matrix:
|
matrix:
|
||||||
TESTS: check-autoloader
|
TESTS: check-autoloader
|
||||||
|
check-mergejs:
|
||||||
|
image: nextcloudci/php7.0:php7.0-7
|
||||||
|
commands:
|
||||||
|
- bash ./build/mergejschecker.sh
|
||||||
|
when:
|
||||||
|
matrix:
|
||||||
|
TESTS: check-mergejs
|
||||||
app-check-code:
|
app-check-code:
|
||||||
image: nextcloudci/php7.0:php7.0-7
|
image: nextcloudci/php7.0:php7.0-7
|
||||||
commands:
|
commands:
|
||||||
|
@ -493,6 +500,7 @@ matrix:
|
||||||
- TESTS: integration-ldap-features
|
- TESTS: integration-ldap-features
|
||||||
- TESTS: jsunit
|
- TESTS: jsunit
|
||||||
- TESTS: check-autoloader
|
- TESTS: check-autoloader
|
||||||
|
- TESTS: check-mergejs
|
||||||
- TESTS: app-check-code
|
- TESTS: app-check-code
|
||||||
- TESTS: syntax-php5.6
|
- TESTS: syntax-php5.6
|
||||||
- TESTS: syntax-php7.0
|
- TESTS: syntax-php7.0
|
||||||
|
|
|
@ -178,8 +178,6 @@ class ViewController extends Controller {
|
||||||
\OCP\Util::addScript('files', 'detailsview');
|
\OCP\Util::addScript('files', 'detailsview');
|
||||||
\OCP\Util::addStyle('files', 'merged');
|
\OCP\Util::addStyle('files', 'merged');
|
||||||
|
|
||||||
\OC_Util::addVendorScript('core', 'handlebars/handlebars');
|
|
||||||
|
|
||||||
\OCP\Util::addScript('files', 'fileactions');
|
\OCP\Util::addScript('files', 'fileactions');
|
||||||
\OCP\Util::addScript('files', 'fileactionsmenu');
|
\OCP\Util::addScript('files', 'fileactionsmenu');
|
||||||
\OCP\Util::addScript('files', 'files');
|
\OCP\Util::addScript('files', 'files');
|
||||||
|
|
|
@ -0,0 +1,35 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* @copyright 2017, Roeland Jago Douma <roeland@famdouma.nl>
|
||||||
|
*
|
||||||
|
* @author Roeland Jago Douma <roeland@famdouma.nl>
|
||||||
|
*
|
||||||
|
* @license GNU AGPL version 3 or any later version
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU Affero General Public License as
|
||||||
|
* published by the Free Software Foundation, either version 3 of the
|
||||||
|
* License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU Affero General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Affero General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Stupid simple code to merge all the default vendor javascript into 1
|
||||||
|
*/
|
||||||
|
$data = json_decode(file_get_contents(__DIR__.'/../core/js/core.json'), true);
|
||||||
|
$vendors = $data['vendor'];
|
||||||
|
|
||||||
|
$vendorjs = fopen(__DIR__.'/../core/vendor/core.js', 'w');
|
||||||
|
foreach($vendors as $vendor) {
|
||||||
|
fwrite($vendorjs, file_get_contents(__DIR__.'/../core/vendor/'.$vendor));
|
||||||
|
}
|
||||||
|
fclose($vendorjs);
|
|
@ -0,0 +1,25 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
#Regenerate the vendors core.js
|
||||||
|
echo
|
||||||
|
echo "Regenerating core/vendor/core.js"
|
||||||
|
|
||||||
|
d=`dirname $(readlink -f $0)`
|
||||||
|
|
||||||
|
php $d/mergejs.php
|
||||||
|
|
||||||
|
files=`git diff --name-only`
|
||||||
|
|
||||||
|
for file in $files
|
||||||
|
do
|
||||||
|
if [[ $file == core/vendor/core.js ]]
|
||||||
|
then
|
||||||
|
echo "The merged vendor file is not up to date"
|
||||||
|
echo "Please run: php build/mergejs.php"
|
||||||
|
echo "And commit the result"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "Vendor js merged as expected. Carry on"
|
||||||
|
exit 0
|
|
@ -13,7 +13,9 @@
|
||||||
"davclient.js/lib/client.js",
|
"davclient.js/lib/client.js",
|
||||||
"clipboard/dist/clipboard.js",
|
"clipboard/dist/clipboard.js",
|
||||||
"autosize/dist/autosize.js",
|
"autosize/dist/autosize.js",
|
||||||
"DOMPurify/dist/purify.min.js"
|
"DOMPurify/dist/purify.min.js",
|
||||||
|
"snapjs/dist/latest/snap.js",
|
||||||
|
"select2/select2.js"
|
||||||
],
|
],
|
||||||
"libraries": [
|
"libraries": [
|
||||||
"jquery-showpassword.js",
|
"jquery-showpassword.js",
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -114,13 +114,10 @@ class OC_Template extends \OC\Template\Base {
|
||||||
\OC_Util::addScript('jquery.avatar', null, true);
|
\OC_Util::addScript('jquery.avatar', null, true);
|
||||||
\OC_Util::addScript('placeholder', null, true);
|
\OC_Util::addScript('placeholder', null, true);
|
||||||
|
|
||||||
OC_Util::addVendorScript('select2/select2');
|
|
||||||
OC_Util::addVendorStyle('select2/select2', null, true);
|
OC_Util::addVendorStyle('select2/select2', null, true);
|
||||||
OC_Util::addScript('select2-toggleselect');
|
OC_Util::addScript('select2-toggleselect');
|
||||||
|
|
||||||
OC_Util::addScript('oc-backbone', null, true);
|
OC_Util::addScript('oc-backbone', null, true);
|
||||||
OC_Util::addVendorScript('core', 'backbone/backbone', true);
|
|
||||||
OC_Util::addVendorScript('snapjs/dist/latest/snap', null, true);
|
|
||||||
OC_Util::addScript('mimetypelist', null, true);
|
OC_Util::addScript('mimetypelist', null, true);
|
||||||
OC_Util::addScript('mimetype', null, true);
|
OC_Util::addScript('mimetype', null, true);
|
||||||
OC_Util::addScript("apps", null, true);
|
OC_Util::addScript("apps", null, true);
|
||||||
|
@ -140,19 +137,24 @@ class OC_Template extends \OC\Template\Base {
|
||||||
OC_Util::addScript('files/fileinfo');
|
OC_Util::addScript('files/fileinfo');
|
||||||
OC_Util::addScript('files/client');
|
OC_Util::addScript('files/client');
|
||||||
|
|
||||||
// Add the stuff we need always
|
if (\OC::$server->getConfig()->getSystemValue('debug')) {
|
||||||
// following logic will import all vendor libraries that are
|
// Add the stuff we need always
|
||||||
// specified in core/js/core.json
|
// following logic will import all vendor libraries that are
|
||||||
$fileContent = file_get_contents(OC::$SERVERROOT . '/core/js/core.json');
|
// specified in core/js/core.json
|
||||||
if($fileContent !== false) {
|
$fileContent = file_get_contents(OC::$SERVERROOT . '/core/js/core.json');
|
||||||
$coreDependencies = json_decode($fileContent, true);
|
if($fileContent !== false) {
|
||||||
foreach(array_reverse($coreDependencies['vendor']) as $vendorLibrary) {
|
$coreDependencies = json_decode($fileContent, true);
|
||||||
// remove trailing ".js" as addVendorScript will append it
|
foreach(array_reverse($coreDependencies['vendor']) as $vendorLibrary) {
|
||||||
OC_Util::addVendorScript(
|
//remove trailing ".js" as addVendorScript will append it
|
||||||
|
OC_Util::addVendorScript(
|
||||||
substr($vendorLibrary, 0, strlen($vendorLibrary) - 3),null,true);
|
substr($vendorLibrary, 0, strlen($vendorLibrary) - 3),null,true);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
throw new \Exception('Cannot read core/js/core.json');
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
throw new \Exception('Cannot read core/js/core.json');
|
// Import all (combined) default vendor libraries
|
||||||
|
OC_Util::addVendorScript('core', null, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (\OC::$server->getRequest()->isUserAgent([\OC\AppFramework\Http\Request::USER_AGENT_IE])) {
|
if (\OC::$server->getRequest()->isUserAgent([\OC\AppFramework\Http\Request::USER_AGENT_IE])) {
|
||||||
|
|
Loading…
Reference in New Issue