Skip to content

Commit dd6429e

Browse files
committed
Merge remote-tracking branch 'Joomla/4.4-dev' into 5.0/upmerge-2023-11-12
2 parents 6eff78c + 584d7b0 commit dd6429e

File tree

38 files changed

+8892
-2460
lines changed

38 files changed

+8892
-2460
lines changed

.drone.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ steps:
3939
- ./libraries/vendor/bin/phan
4040

4141
- name: npm
42-
image: node:18-bullseye-slim
42+
image: node:20-bullseye-slim
4343
depends_on: [ phpcs ]
4444
volumes:
4545
- name: npm-cache
@@ -382,6 +382,6 @@ trigger:
382382

383383
---
384384
kind: signature
385-
hmac: 16aad9229964700a46de8f3e3265147715d3d5c1173eec9439148af364d6092c
385+
hmac: 9da03e44bdb36f2473f1c20a83777be096e3f18b7102153cf9135a2fc6ace0e5
386386

387387
...

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ Build Status
88
---------------------
99
| Drone-CI | AppVeyor | PHP | Node | npm |
1010
|------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------|--------------------------------------------------------------------------------------|---------------------------------------------------------------------------------|
11-
| [![Build Status](https://ci.joomla.org/api/badges/joomla/joomla-cms/status.svg?branch=5.0-dev)](https://ci.joomla.org/joomla/joomla-cms) | [![Build status](https://ci.appveyor.com/api/projects/status/ru6sxal8jmfckvjc/branch/5.0-dev?svg=true)](https://ci.appveyor.com/project/release-joomla/joomla-cms) | [![PHP](https://img.shields.io/badge/PHP-V8.1.0-green)](https://www.php.net/) | [![node-lts](https://img.shields.io/badge/Node-V18.0-green)](https://nodejs.org/en/) | [![npm](https://img.shields.io/badge/npm-v9.6.7-green)](https://nodejs.org/en/) |
11+
| [![Build Status](https://ci.joomla.org/api/badges/joomla/joomla-cms/status.svg?branch=5.0-dev)](https://ci.joomla.org/joomla/joomla-cms) | [![Build status](https://ci.appveyor.com/api/projects/status/ru6sxal8jmfckvjc/branch/5.0-dev?svg=true)](https://ci.appveyor.com/project/release-joomla/joomla-cms) | [![PHP](https://img.shields.io/badge/PHP-V8.1.0-green)](https://www.php.net/) | [![node-lts](https://img.shields.io/badge/Node-V20.0-green)](https://nodejs.org/en/) | [![npm](https://img.shields.io/badge/npm-v10.1.0-green)](https://nodejs.org/en/) |
1212

1313
Overview
1414
---------------------

administrator/components/com_admin/script.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2488,6 +2488,10 @@ public function updateAssets($installer)
24882488
// List all components added since 4.0
24892489
$newComponents = [
24902490
// Components to be added here
2491+
'com_guidedtours',
2492+
'com_mails',
2493+
'com_scheduler',
2494+
'com_workflow',
24912495
];
24922496

24932497
foreach ($newComponents as $component) {

administrator/components/com_content/tmpl/articles/modal.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@
9494
-2 => 'icon-trash',
9595
0 => 'icon-times',
9696
1 => 'icon-check',
97+
2 => 'icon-archive',
9798
];
9899
?>
99100
<?php foreach ($this->items as $i => $item) : ?>

administrator/components/com_finder/src/Indexer/Parser.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -97,13 +97,13 @@ public function parse($input)
9797
// Find the last space character if we aren't at the end.
9898
$ls = (($start + $chunk) < $end ? strrpos($string, ' ') : false);
9999

100-
// Truncate to the last space character.
100+
// Truncate to the last space character (but include it in the string).
101101
if ($ls !== false) {
102-
$string = substr($string, 0, $ls);
102+
$string = substr($string, 0, $ls + 1);
103103
}
104104

105105
// Adjust the start position for the next iteration.
106-
$start += ($ls !== false ? ($ls + 1 - $chunk) + $chunk : $chunk);
106+
$start += $ls !== false ? $ls + 1 : $chunk;
107107

108108
// Parse the chunk.
109109
$return .= $this->process($string);

administrator/components/com_media/config.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@
5555
type="textarea"
5656
label="COM_MEDIA_FIELD_RESTRICT_UPLOADS_EXTENSIONS_LABEL"
5757
description="COM_MEDIA_FIELD_RESTRICT_UPLOADS_EXTENSIONS_DESC"
58-
default="bmp,gif,jpg,jpeg,png,webp,avif,ico,mp3,mp4,odg,odp,ods,odt,pdf,png,ppt,txt,xcf,xls,csv"
58+
default="bmp,gif,jpg,jpeg,png,webp,avif,ico,mp3,mp4,odg,odp,ods,odt,pdf,ppt,txt,xcf,xls,csv"
5959
showon="restrict_uploads:1"
6060
/>
6161

api/components/com_content/src/Controller/ArticlesController.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
namespace Joomla\Component\Content\Api\Controller;
1212

1313
use Joomla\CMS\Filter\InputFilter;
14+
use Joomla\CMS\Helper\TagsHelper;
1415
use Joomla\CMS\MVC\Controller\ApiController;
1516
use Joomla\Component\Fields\Administrator\Helper\FieldsHelper;
1617

@@ -114,6 +115,10 @@ protected function preprocessSaveData(array $data): array
114115
}
115116
}
116117

118+
$tags = new TagsHelper();
119+
$tags->getTagIds($data['id'], 'com_content.article');
120+
$data['tags'] = explode(',', $tags->tags);
121+
117122
return $data;
118123
}
119124
}

build/build-modules-js/error-pages.es6.js

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,8 @@ const {
44
const Ini = require('ini');
55
const { dirname } = require('path');
66
const Recurs = require('recursive-readdir');
7-
const Postcss = require('postcss');
8-
const Autoprefixer = require('autoprefixer');
9-
const CssNano = require('cssnano');
10-
const { minify } = require('terser');
7+
const { transform } = require('esbuild');
8+
const LightningCSS = require('lightningcss');
119

1210
const RootPath = process.cwd();
1311
const dir = `${RootPath}/installation/language`;
@@ -35,10 +33,13 @@ module.exports.createErrorPages = async (options) => {
3533
let cssContent = await readFile(`${srcPath}/template.css`, { encoding: 'utf8' });
3634
let jsContent = await readFile(`${srcPath}/template.js`, { encoding: 'utf8' });
3735

38-
const cssMin = await Postcss([Autoprefixer, CssNano]).process(cssContent, { from: undefined });
36+
const { code } = LightningCSS.transform({
37+
code: Buffer.from(cssContent),
38+
minify: true,
39+
});
3940

40-
cssContent = cssMin.css;
41-
jsContent = await minify(jsContent);
41+
cssContent = code;
42+
jsContent = await transform(jsContent, { minify: true });
4243

4344
const processIni = async (file) => {
4445
const languageStrings = Ini.parse(await readFile(file, { encoding: 'utf8' }));

build/build-modules-js/init/minify-vendor.es6.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
const { lstat, readFile, writeFile } = require('fs-extra');
22
const { sep, basename } = require('path');
33
const recursive = require('recursive-readdir');
4-
const { minify } = require('terser');
4+
const { transform } = require('esbuild');
55

66
const RootPath = process.cwd();
77

@@ -70,7 +70,7 @@ const minifyJS = async (file) => {
7070
if (isMinified || needsDotJS) {
7171
minified = content;
7272
} else {
73-
minified = (await minify(content, { sourceMap: false, format: { comments: false } })).code;
73+
minified = (await transform(content, { minify: true })).code;
7474
}
7575

7676
const newFile = needsDotJS ? file.replace('.min.js', '.js') : file.replace('.js', '.min.js');

build/build-modules-js/javascript/build-bootstrap-js.es6.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ const {
22
readdir, readFile, writeFile, unlink,
33
} = require('fs').promises;
44
const { resolve } = require('path');
5-
const { minify } = require('terser');
5+
const { transform } = require('esbuild');
66
const rimraf = require('rimraf');
77
const rollup = require('rollup');
88
const { nodeResolve } = require('@rollup/plugin-node-resolve');
@@ -16,7 +16,7 @@ const outputFolder = 'media/vendor/bootstrap/js';
1616

1717
const createMinified = async (file) => {
1818
const initial = await readFile(resolve(outputFolder, file), { encoding: 'utf8' });
19-
const mini = await minify(initial.replace('./popper.js', `./popper.min.js?${bsVersion}`).replace('./dom.js', `./dom.min.js?${bsVersion}`), { sourceMap: false, format: { comments: false } });
19+
const mini = await transform(initial.replace('./popper.js', `./popper.min.js?${bsVersion}`).replace('./dom.js', `./dom.min.js?${bsVersion}`), { minify: true });
2020
await writeFile(resolve(outputFolder, file), initial.replace('./popper.js', `./popper.js?${bsVersion}`).replace('./dom.js', `./dom.js?${bsVersion}`), { encoding: 'utf8', mode: 0o644 });
2121
await writeFile(resolve(outputFolder, file.replace('.js', '.min.js')), mini.code, { encoding: 'utf8', mode: 0o644 });
2222
};

0 commit comments

Comments
 (0)