Commit graph

1658 commits

Author SHA1 Message Date
MickaelK
387631bf7e fix (upload): validation issue in upload task 2024-12-04 13:09:17 +11:00
MickaelK
ddb1e6fd53 feature (upload): canary - upload design 2024-12-04 13:07:17 +11:00
MickaelK
50b99a005c fix (upload): canary upload fab button 2024-12-04 10:34:34 +11:00
MickaelK
dba8bc000a fix (cloudflare): cloudflare cache issue 2024-12-03 23:35:15 +11:00
MickaelK
1b47b613b6 fix (cloudflare): cloudflare chunked issue 2024-12-03 23:14:13 +11:00
MickaelK
f2e006b545 chore (about): css in about page 2024-12-03 12:16:15 +11:00
MickaelK
5cd126d762 feature (form): enable markdown links 2024-12-03 11:56:31 +11:00
MickaelK
4a2d4d62ed fix (translation): missing danish translation 2024-12-03 10:58:19 +11:00
MickaelK
009cf9656e feature (translation): new translation key 2024-12-03 10:25:39 +11:00
MickaelK
e77093ad8b feature (admin): about page design 2024-12-03 02:19:23 +11:00
MickaelK
f4007544b9 fix (form): read only form fields
we used to have the readonly attribute but somehow it's not supported by
all fields, eg: select. As such when something is read only we disable
the field
2024-12-03 01:53:49 +11:00
MickaelK
ab8e9f7641 fix (upload): smart file list refresh
before this commit, the issue was:

1. whenever uploading a large folder, any upload would trigger the ls change, resulting in a lot of unecessary dom
changes which in case the user is browsing through a lot of picture would trigger some flickering in the thumbnail.

2. large upload would be slow as virtual.before would call change
   detection and refresh the list of files within the folder constantly

now by avoiding mutations we effectively just rerender when something we
are interested changes: aka something change in the current folder the
user is in
2024-12-02 22:02:12 +11:00
MickaelK
177961c62d fix (plg_video_thumbnail): error when backend doesn't support fileseek 2024-12-02 17:24:03 +11:00
MickaelK
0dfa9b3335 fix (panic): concurrent map access
this fix a panic that can be replicated using the video thumbnail
plugin, opening up a page with a lot of videos. Under the hood, the
server would call ffmpeg that would make a bunch of HTTP range requests
that would call the cache concurrently, hence causing the panic
2024-12-02 16:28:38 +11:00
MickaelK
ff67ed97ed feature (thumbnail): video thumbnail plugin
up until now, the stance was to refuse video thumbnail because it's too
slow but really many people don't seem to care that much about it and
keep insisting to have it.

With this solution, it's not in the base build but it gives an
option for those people to make it happen
2024-12-02 15:39:25 +11:00
MickaelK
c343338983 fix (upload): canary file uploader 2024-12-02 12:11:29 +11:00
MickaelK
a72925c5d8 fix (build): ts fix 2024-11-30 15:08:35 +11:00
MickaelK
487895abee fix (canary): retry mechanism on upload 2024-11-29 22:46:26 +11:00
MickaelK
ac9d1a4980 feature (tus): chunked upload via TUS
instead of inventing a new protocol for chunked upload that can be
resumed, we might as well use something that already exists like TUS.

As such we removed our custom implementation to favor that standard
2024-11-29 15:04:34 +11:00
MickaelK
c556a404f7 fix (chunked): progress calculation
issue:
1. create a 2MB file: dd if=/dev/zero of=testfile bs=1024 count=2048
2. size chunk to 1MB

what we see: progress up to 50%, then stop and jump to 100%
2024-11-28 02:25:02 +11:00
MickaelK
016afe6923 fix (checkbox): checkbox in dark mode 2024-11-28 02:12:18 +11:00
MickaelK
5e420cf5f3 fix (config): save config when disk is full
before this, if the user had a full disk, there wouldn't be any error
reported back whenever editing something in the admin
console as file.Close() would return nil ....

The only way to go around it is to wait for the sync to be done.
2024-11-28 02:03:35 +11:00
MickaelK
8303ae54f0 fix (fatal): edge case causing fatal issue
I've seen the case where someone ran out of disk with a corrupted config
file which gave the following fatal error in the login screen:

Uncaught TypeError: Cannot read properties of null (reading 'map')

with a stacktrace pointing to: ctrl_form.js:22:63

this fixes the assumptions on the config file so as to not trigger the
fatal error but head to the nicer error cases where it would say:

Internal Error: There is nothing here.

which is much nicer for end users than "Cannot read properties of null"
2024-11-28 01:50:43 +11:00
MickaelK
2914443789 chore (linter): linter and code verif 2024-11-28 01:46:53 +11:00
MickaelK
0dea98d4bd fix (chunked): chunked upload connection close
only close connection when using chunked upload. This is key if you must
use something like to work with Cloudflare
2024-11-28 01:32:41 +11:00
MickaelK
de5e2d9583 fix (cloudflare): proxy with size limit
Cloudflare does limit the size of file upload by an arbitrary number. We
can go around that by using chunked upload but somehow that wasn't
enough, to circumvent that issue, we make it clear to the proxy it
should close the connection and we hope the problem we go away
2024-11-27 23:45:39 +11:00
MickaelK
63f1c780fc Merge branch 'master' of ssh://github.com/mickael-kerjean/filestash 2024-11-27 00:54:59 +11:00
MickaelK
87a1987219 feature (upload): support for chunked uploads 2024-11-27 00:52:29 +11:00
Mickael
c7d48c9226
fix (webpack): webpack deps issue - #772
* fix (webpack): another webpack issue

* fix (webpack): uglify plugin is broken
2024-11-20 16:59:59 +11:00
MickaelK
12b27e3416 fix (webpack): uglify plugin is broken 2024-11-20 16:58:24 +11:00
MickaelK
0da11bf8cd fix (webpack): another webpack issue 2024-11-20 16:55:04 +11:00
MickaelK
69529b2bec fix (lint): linter and ts check 2024-11-20 16:06:43 +11:00
MickaelK
8aa33143d3 fix (sharelink): default path in shared link
regression where shared link are created without a path. This was
reported by a customer
2024-11-20 15:48:48 +11:00
MickaelK
66cc697b25 feature (tag): tag feature behind canary flag 2024-11-19 14:54:38 +11:00
MickaelK
92673f9ae3 feature (sidebar): sidebar toggle button 2024-11-18 23:41:35 +11:00
MickaelK
8c3c28ffbc fix (image): image viewer loader display 2024-11-18 18:49:40 +11:00
MickaelK
291d989ef9 fix (sidebar): better config on default
on a mobile like screen, the sidebar wouldn't be hidden entirely, it
would still show the border artifact. We need to make sure the default
is to be of class hidden to prevent such artefact
2024-11-18 17:35:48 +11:00
MickaelK
5181b1b49b fix (audio): audio context bug
whenever reading an audio file, quitting and coming back, the audio
context under wavesurfer.backend.ac would show a currentTime that is not
actually reset properly. Closing or trying several trick didn't fix the
issue, hence this approach which is quite dirty but work.

Overall wavesurfer has some weird tendencies, this is just one more hack
within the audio player
2024-11-18 16:19:17 +11:00
MickaelK
0c6fce8701 chore (refactoring): cleanup the code 2024-11-18 16:10:04 +11:00
MickaelK
26694081ba fix (audio): css issue in audio player 2024-11-18 15:08:06 +11:00
MickaelK
12d362f8e0 chore (refactoring): error handling refactoring 2024-11-18 15:00:09 +11:00
MickaelK
0936c78779 fix (pdf): pdfjs on retina screen
whenever using a retina typed screen, the PDF rendering would appear as
blurry. With this trick we largely improve rendering on those type of
screen
2024-11-18 12:49:15 +11:00
MickaelK
fed2b0f409 feature (video): responsive video player 2024-11-15 23:09:17 +11:00
MickaelK
fb4c6200ba fix (pdf): pdf on small device
whenever using a phone with no native PDF support, we'd render 2 page in
a row making things not visible
2024-11-15 22:48:59 +11:00
MickaelK
1609747f55 chore (refactoring): ellipsis - css to class 2024-11-15 14:06:35 +11:00
MickaelK
f57ba94d71 fix (editor): php code highlight
without this, we'd run onto either non highlighting of the code and / or
this error:

type:    Error
message: Cannot read properties of undefined (reading 'prev')
trace:   TypeError: Cannot read properties of undefined (reading 'prev')
    at Object.dispatch [as token] (http://localhost:8334/assets/g5b7268/lib/vendor/codemirror/mode/php/php.js:187:32)
    at readToken (http://localhost:8334/assets/g5b7268/lib/vendor/codemirror/lib/codemirror.js:1183:24)
    at runMode (http://localhost:8334/assets/g5b7268/lib/vendor/codemirror/lib/codemirror.js:1240:36)
    at highlightLine (http://localhost:8334/assets/g5b7268/lib/vendor/codemirror/lib/codemirror.js:1086:5)
    at getLineStyles (http://localhost:8334/assets/g5b7268/lib/vendor/codemirror/lib/codemirror.js:1130:20)
    at buildLineContent (http://localhost:8334/assets/g5b7268/lib/vendor/codemirror/lib/codemirror.js:1771:40)
    at getLineContent (http://localhost:8334/assets/g5b7268/lib/vendor/codemirror/lib/codemirror.js:2161:12)
    at buildLineElement (http://localhost:8334/assets/g5b7268/lib/vendor/codemirror/lib/codemirror.js:2243:17)
    at patchDisplay (http://localhost:8334/assets/g5b7268/lib/vendor/codemirror/lib/codemirror.js:4264:20)
    at updateDisplayIfNeeded (http://localhost:8334/assets/g5b7268/lib/vendor/codemirror/lib/codemirror.js:4171:5)
2024-11-15 01:32:10 +11:00
MickaelK
64a44415bf chore (cleanup): remove old script 2024-11-15 01:31:10 +11:00
MickaelK
c376fe8240 fix (onlyoffice): canary office integration - #629 2024-11-14 14:24:23 +11:00
MickaelK
b7f2b763de fix (login): loader before redirection
When we have a single storage selected, we automatically redirect the
user to it as we don't need to wait for a user action. The thing is we
used to have this UI being shown with a button that didn't make sense.
Instead we want to show the loader when we reach those condition
2024-11-14 12:40:51 +11:00
MickaelK
bd470b5ff5 Merge branch 'master' of ssh://github.com/mickael-kerjean/filestash 2024-11-14 02:06:23 +11:00