mirror of
https://github.com/NodeBB/NodeBB.git
synced 2026-07-07 13:03:12 +02:00
perf: ltr/rtl change
fix modals
This commit is contained in:
@@ -120,7 +120,7 @@
|
||||
"rss": "1.2.2",
|
||||
"rtlcss": "4.0.0",
|
||||
"sanitize-html": "2.7.1",
|
||||
"sass": "1.54.3",
|
||||
"sass": "1.54.9",
|
||||
"semver": "7.3.7",
|
||||
"serve-favicon": "2.5.0",
|
||||
"sharp": "0.30.7",
|
||||
|
||||
@@ -52,7 +52,7 @@ const buildImports = {
|
||||
'@import "fontawesome";',
|
||||
'@import "admin/admin";',
|
||||
source,
|
||||
'@import "jquery-ui.scss";',
|
||||
'@import "jquery-ui";',
|
||||
'@import "@adactive/bootstrap-tagsinput/src/bootstrap-tagsinput";',
|
||||
'@import "../public/vendor/mdl/material";',
|
||||
].join('\n');
|
||||
@@ -218,10 +218,7 @@ CSS.buildBundle = async function (target, fork) {
|
||||
|
||||
const data = await getBundleMetadata(target);
|
||||
const minify = process.env.NODE_ENV !== 'development';
|
||||
const [ltr, rtl] = await Promise.all([
|
||||
minifier.css.bundle(data.imports, data.paths, minify, fork, 'ltr'),
|
||||
minifier.css.bundle(data.imports, data.paths, minify, fork, 'rtl'),
|
||||
]);
|
||||
const { ltr, rtl } = await minifier.css.bundle(data.imports, data.paths, minify, fork);
|
||||
|
||||
await Promise.all([
|
||||
fs.promises.writeFile(path.join(__dirname, '../../build/public', `${target}.css`), ltr.code),
|
||||
|
||||
@@ -231,29 +231,39 @@ actions.buildCSS = async function buildCSS(data) {
|
||||
loadPaths: data.paths,
|
||||
});
|
||||
|
||||
const postcssArgs = [autoprefixer];
|
||||
if (data.direction === 'rtl') {
|
||||
postcssArgs.push(rtlcss());
|
||||
async function processScss(direction) {
|
||||
const postcssArgs = [autoprefixer];
|
||||
if (direction === 'rtl') {
|
||||
postcssArgs.unshift(rtlcss());
|
||||
}
|
||||
if (data.minify) {
|
||||
postcssArgs.push(clean({
|
||||
processImportFrom: ['local'],
|
||||
}));
|
||||
}
|
||||
return await postcss(postcssArgs).process(scssOutput.css.toString(), {
|
||||
from: undefined,
|
||||
});
|
||||
}
|
||||
if (data.minify) {
|
||||
postcssArgs.push(clean({
|
||||
processImportFrom: ['local'],
|
||||
}));
|
||||
}
|
||||
const result = await postcss(postcssArgs).process(scssOutput.css.toString(), {
|
||||
from: undefined,
|
||||
});
|
||||
return { code: result.css };
|
||||
|
||||
const [ltrresult, rtlresult] = await Promise.all([
|
||||
processScss('ltr'),
|
||||
processScss('rtl'),
|
||||
]);
|
||||
|
||||
return {
|
||||
ltr: { code: ltrresult.css },
|
||||
rtl: { code: rtlresult.css },
|
||||
};
|
||||
};
|
||||
|
||||
Minifier.css = {};
|
||||
Minifier.css.bundle = async function (source, paths, minify, fork, direction) {
|
||||
Minifier.css.bundle = async function (source, paths, minify, fork) {
|
||||
return await executeAction({
|
||||
act: 'buildCSS',
|
||||
source: source,
|
||||
paths: paths,
|
||||
minify: minify,
|
||||
direction: direction,
|
||||
}, fork);
|
||||
};
|
||||
|
||||
|
||||
@@ -119,8 +119,8 @@
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-bs-dismiss="modal" aria-hidden="true">×</button>
|
||||
<h4 class="modal-title">[[admin/extend/plugins:order-active]]</h4>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-hidden="true"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<p>
|
||||
@@ -132,7 +132,7 @@
|
||||
<ul class="plugin-list"></ul>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-bs-dismiss="modal">[[global:buttons.close]]</button>
|
||||
<button type="button" class="btn btn-outline-secondary" data-bs-dismiss="modal">[[global:buttons.close]]</button>
|
||||
<button type="button" class="btn btn-primary" id="save-plugin-order">[[global:save]]</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -126,7 +126,7 @@
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<div component="group-selector" class="btn-group">
|
||||
<button type="button" class="btn btn-default dropdown-toggle w-100" data-bs-toggle="dropdown">
|
||||
<button type="button" class="btn btn-outline-secondary dropdown-toggle w-100" data-bs-toggle="dropdown">
|
||||
<span component="group-selector-selected">{group.displayName}</span> <span class="caret"></span>
|
||||
</button>
|
||||
<div component="group-selector-search" class="hidden position-absolute w-100">
|
||||
|
||||
@@ -65,8 +65,8 @@
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-bs-dismiss="modal" aria-hidden="true">×</button>
|
||||
<h4 class="modal-title">[[admin/manage/groups:create]]</h4>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-hidden="true"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="alert alert-danger hide" id="create-modal-error"></div>
|
||||
@@ -95,7 +95,7 @@
|
||||
</form>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-bs-dismiss="modal">
|
||||
<button type="button" class="btn btn-outline-secondary" data-bs-dismiss="modal">
|
||||
[[global:close]]
|
||||
</button>
|
||||
<button type="button" class="btn btn-primary" id="create-modal-go">
|
||||
|
||||
@@ -58,8 +58,8 @@
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-bs-dismiss="modal" aria-hidden="true">×</button>
|
||||
<h4 class="modal-title">[[admin/manage/tags:create]]</h4>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-hidden="true"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<form>
|
||||
|
||||
@@ -48,7 +48,7 @@
|
||||
<!-- IF ../error -->
|
||||
<li data-plugin-id="{../id}" class="clearfix">
|
||||
<div class="float-end">
|
||||
<button class="btn btn-default disabled"><i class="fa fa-exclamation-triangle"></i> [[admin/extend/plugins:plugin-item.unknown]]</button>
|
||||
<button class="btn btn-outline-secondary disabled"><i class="fa fa-exclamation-triangle"></i> [[admin/extend/plugins:plugin-item.unknown]]</button>
|
||||
<button data-action="toggleInstall" data-installed="1" class="btn btn-danger"><i class="fa fa-trash-o"></i> [[admin/extend/plugins:plugin-item.uninstall]]</button>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-bs-dismiss="modal" aria-hidden="true">×</button>
|
||||
<h3 id="crop-picture">[[user:crop_picture]]</h3>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-hidden="true"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div id="upload-progress-box" class="progress hide">
|
||||
@@ -30,7 +30,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button class="btn btn-default" data-bs-dismiss="modal" aria-hidden="true">Close</button>
|
||||
<button class="btn btn-outline-secondary" data-bs-dismiss="modal" aria-hidden="true">Close</button>
|
||||
<button class="btn btn-primary upload-btn <!-- IF !allowSkippingCrop -->hidden<!-- ENDIF !allowSkippingCrop -->">[[user:upload_picture]]</button>
|
||||
<button class="btn btn-primary crop-btn">[[user:upload_cropped_picture]]</button>
|
||||
</div>
|
||||
|
||||
@@ -110,7 +110,7 @@ describe('minifier', () => {
|
||||
it('.css.bundle() should concat styles', (done) => {
|
||||
minifier.css.bundle(styles, paths, false, false, 'ltr', (err, bundle) => {
|
||||
assert.ifError(err);
|
||||
assert.strictEqual(bundle.code, '.help {\n margin: 10px;\n}\n\n.yellow {\n background: yellow;\n}\n\n.help {\n display: block;\n}\n.help .blue {\n background: blue;\n}');
|
||||
assert.strictEqual(bundle.ltr.code, '.help {\n margin: 10px;\n}\n\n.yellow {\n background: yellow;\n}\n\n.help {\n display: block;\n}\n.help .blue {\n background: blue;\n}');
|
||||
done();
|
||||
});
|
||||
});
|
||||
@@ -118,7 +118,7 @@ describe('minifier', () => {
|
||||
it('.css.bundle() should minify styles', (done) => {
|
||||
minifier.css.bundle(styles, paths, true, false, 'ltr', (err, bundle) => {
|
||||
assert.ifError(err);
|
||||
assert.strictEqual(bundle.code, '.help{margin:10px}.yellow{background:#ff0}.help{display:block}.help .blue{background:#00f}');
|
||||
assert.strictEqual(bundle.ltr.code, '.help{margin:10px}.yellow{background:#ff0}.help{display:block}.help .blue{background:#00f}');
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user