Merge branch 'develop' into feature/396-localisation

indiachan-spamvector
Thomas Lynch 1 year ago
commit 699865683f
  1. 7
      CHANGELOG.md
  2. 2
      controllers/forms/addassets.js
  3. 2
      controllers/forms/addflags.js
  4. 2
      controllers/forms/uploadbanners.js
  5. 2
      gulp/res/css/themes/56chan.css
  6. 0
      gulp/res/css/themes/assets/56chan-bg.png
  7. 0
      gulp/res/css/themes/assets/iwakura-bg.gif
  8. 0
      gulp/res/css/themes/assets/mushroom.png
  9. 0
      gulp/res/css/themes/assets/tchan-bg.png
  10. 0
      gulp/res/css/themes/assets/tchan-capcode.png
  11. 0
      gulp/res/css/themes/assets/tchan-star.png
  12. 0
      gulp/res/css/themes/assets/win95home.png
  13. 4
      gulp/res/css/themes/iwakura.css
  14. 4
      gulp/res/css/themes/mushroom.css
  15. 6
      gulp/res/css/themes/tchan.css
  16. 2
      gulp/res/css/themes/win95.css
  17. 15
      gulpfile.js
  18. 4
      package-lock.json
  19. 2
      package.json

@ -1,6 +1,6 @@
### 1.0.0
Version 1.0.0 is here. jschan is mature enough and there's no need to go to version 0.999, but this does not mean it is perfect or complete!
I want to keep improving jschan and there are plenty of features and internal improvements planned for versions 2, 3, and beyond.
I want to keep improving jschan and there are plenty of new features and changes planned for versions 2, 3, and beyond.
Thank you so much to all the jschan site admins, users & contributors for your help along the way. Your contributions have been invaluable to making this software great.
Special shoutout to l29utp0 & loynet (ptchan.org), Homicide (94chan.org) and some_random_guy (trashchan.xyz).
@ -19,6 +19,11 @@ Now, back to the program. Here are the changes for 1.0.0, with one especially no
- Security improvement to the 2FA validation flow during login.
- More minor bugfixes to permissions pages displays.
### 0.11.3
- Fix max vs total upload count in controller for uploading board assets, flags and banners.
- Move css theme assets to themes/assets instead of all lumped in one folder.
- Adjust the letter spacing and line spacing of the 2FA QR code.
### 0.11.2
- Convert the assets page form handling to the newer checkSchema code.
- Don't show the "Edit" option in the post dropdowns for public pages.

@ -18,7 +18,7 @@ module.exports = {
const errors = await checkSchema([
{ result: res.locals.numFiles === 0, expected: false, blocking: true, error: __('Must provide a file') },
{ result: numberBody(res.locals.numFiles, 0, globalLimits.assetFiles.max), expected: true, error: __('Exceeded max asset uploads in one request of %s', globalLimits.assetFiles.max) },
{ result: numberBody(res.locals.board.assets.length+res.locals.numFiles, 0, globalLimits.assetFiles.max), expected: true, error: __('Total number of assets would exceed global limit of %s', globalLimits.assetFiles.total) },
{ result: numberBody(res.locals.board.assets.length+res.locals.numFiles, 0, globalLimits.assetFiles.total), expected: true, error: __('Total number of assets would exceed global limit of %s', globalLimits.assetFiles.total) },
]);
if (errors.length > 0) {

@ -18,7 +18,7 @@ module.exports = {
const errors = await checkSchema([
{ result: res.locals.numFiles === 0, expected: false, blocking: true, error: __('Must provide a file') },
{ result: numberBody(res.locals.numFiles, 0, globalLimits.flagFiles.max), expected: true, error: __('Exceeded max flag uploads in one request of %s', globalLimits.flagFiles.max) },
{ result: numberBody(Object.keys(res.locals.board.flags).length+res.locals.numFiles, 0, globalLimits.flagFiles.max), expected: true, error: __('Total number of flags would exceed global limit of %s', globalLimits.flagFiles.total) },
{ result: numberBody(Object.keys(res.locals.board.flags).length+res.locals.numFiles, 0, globalLimits.flagFiles.total), expected: true, error: __('Total number of flags would exceed global limit of %s', globalLimits.flagFiles.total) },
]);
if (errors.length > 0) {

@ -17,7 +17,7 @@ module.exports = {
const errors = await checkSchema([
{ result: res.locals.numFiles === 0, expected: false, blocking: true, error: 'Must provide a file' },
{ result: numberBody(res.locals.numFiles, 0, globalLimits.bannerFiles.max), expected: true, error: `Exceeded max banner uploads in one request of ${globalLimits.bannerFiles.max}` },
{ result: numberBody(res.locals.board.banners.length+res.locals.numFiles, 0, globalLimits.bannerFiles.max), expected: true, error: `Total number of banners would exceed global limit of ${globalLimits.bannerFiles.total}` },
{ result: numberBody(res.locals.board.banners.length+res.locals.numFiles, 0, globalLimits.bannerFiles.total), expected: true, error: `Total number of banners would exceed global limit of ${globalLimits.bannerFiles.total}` },
]);
if (errors.length > 0) {

@ -31,7 +31,7 @@
}
body {
background: linear-gradient(#f9e272,rgba(255,255,255,0) 400px calc(100% - 200px),#f9e272),url(/css/themes/56chan-bg.png),hsl(178 40% 80%)
background: linear-gradient(#f9e272,rgba(255,255,255,0) 400px calc(100% - 200px),#f9e272),url(/css/themes/assets/56chan-bg.png),hsl(178 40% 80%)
}
.board-title {

Before

Width:  |  Height:  |  Size: 6.4 KiB

After

Width:  |  Height:  |  Size: 6.4 KiB

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 27 KiB

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

Before

Width:  |  Height:  |  Size: 338 B

After

Width:  |  Height:  |  Size: 338 B

Before

Width:  |  Height:  |  Size: 490 B

After

Width:  |  Height:  |  Size: 490 B

@ -31,7 +31,7 @@
}
body {
background: linear-gradient(#6d99BA50,#1c1c1c75 400px calc(100% - 200px),#d2738A90),url(/css/themes/iwakura-bg.gif),#0d0d0d none repeat scroll 0 0
background: linear-gradient(#6d99BA50,#1c1c1c75 400px calc(100% - 200px),#d2738A90),url(/css/themes/assets/iwakura-bg.gif),#0d0d0d none repeat scroll 0 0
}
a.quote {
@ -43,7 +43,7 @@ table {
}
tr {
background: var(--background-rest) url(/css/themes/iwakura-bg.gif)
background: var(--background-rest) url(/css/themes/assets/iwakura-bg.gif)
}
.captcha {

@ -30,7 +30,7 @@
--pinktext-color: #e0727f;
}
body {
background: var(--background-rest) url(/css/themes/mushroom.png);
background: var(--background-rest) url(/css/themes/assets/mushroom.png);
}
a.post-name {
color: #a0ffff;
@ -42,7 +42,7 @@ table {
border: 1px solid var(--box-border-color);
}
tr {
background: var(--background-rest) url(/css/themes/mushroom.png);
background: var(--background-rest) url(/css/themes/assets/mushroom.png);
}
.captcha {
filter: invert(90%);

@ -31,14 +31,14 @@
}
body {
background: #140e10 url(/css/themes/tchan-bg.png);
background: #140e10 url(/css/themes/assets/tchan-bg.png);
font-family: trebuchet ms,Tahoma,Verdana,Arial,sans-serif;
font-size: 13.3333px!important
}
.postmenu {
border: none;
background: url(/css/themes/tchan-star.png) no-repeat;
background: url(/css/themes/assets/tchan-star.png) no-repeat;
display: inline-block;
height: 19px;
width: 17px;
@ -95,7 +95,7 @@ a.post-name:before {
font-weight: 700!important;
text-shadow: none;
content: '';
background: url(/css/themes/tchan-capcode.png) 0 0 no-repeat;
background: url(/css/themes/assets/tchan-capcode.png) 0 0 no-repeat;
background-size: cover;
width: 15px!important;
height: 16px!important;

@ -79,7 +79,7 @@ textarea,
.navbar a:first-of-type::before {
content:'';
position:absolute;
background: url(/css/themes/win95home.png);
background: url(/css/themes/assets/win95home.png);
background-size: contain;
height: 1.75em;
width: 1.75em;

@ -340,22 +340,23 @@ async function css() {
await gulp.src([
`${paths.styles.src}/codethemes/*.css`,
])
.pipe(replace('url(./', 'url(/css/codethemes/'))
.pipe(replace('url(./', 'url(/css/codethemes/assets/'))
.pipe(less())
.pipe(cleanCSS())
.pipe(gulp.dest(`${paths.styles.dest}/codethemes/`));
//move any non-css (images) for code themes to codetheme folder
//move assets for code codethemes/assets folder
await gulp.src([
`${paths.styles.src}/codethemes/*`,
`!${paths.styles.src}/codethemes/*.css`,
])
.pipe(gulp.dest(`${paths.styles.dest}/codethemes/`));
//move any non-css (images) for themes to theme folder
.pipe(gulp.dest(`${paths.styles.dest}/codethemes/assets/`));
//move assets for themes to theme/assets folder
await gulp.src([
`${paths.styles.src}/themes/*`,
`!${paths.styles.src}/themes/*.css`,
`${paths.styles.src}/themes/assets/*`,
])
.pipe(gulp.dest(`${paths.styles.dest}/themes/`));
.pipe(gulp.dest(`${paths.styles.dest}/themes/assets/`));
await gulp.src([
`${paths.styles.src}/locals.css`,
`${paths.styles.src}/nscaptcha.css`,

4
package-lock.json generated

@ -1,12 +1,12 @@
{
"name": "jschan",
"version": "0.11.2",
"version": "0.11.3",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "jschan",
"version": "0.11.2",
"version": "0.11.3",
"license": "AGPL-3.0-only",
"dependencies": {
"@fatchan/express-fileupload": "^1.4.2",

@ -1,6 +1,6 @@
{
"name": "jschan",
"version": "0.11.2",
"version": "0.11.3",
"migrateVersion": "0.11.0",
"description": "",
"main": "server.js",

Loading…
Cancel
Save