Commit Graph

387 Commits

Author SHA1 Message Date
fad94160c7 FIX: uses tippy for popover (#15409)
Note this commit also introduce a new {{d-popover}} component, example usage:

```hbs
{{#d-popover |state|}}
  {{d-button label="foo.things" class="d-popover-trigger"}}

  <div class="d-popover-content">
    Some content
  <div>
{{/d-popover}}
```
2022-05-02 17:10:26 +02:00
e164ff3085 FIX: Email styles for Gmail app dark mode (#16482) 2022-04-14 15:03:06 -04:00
6c0abe15e0 FEATURE: Add email dark mode (#16104)
implement dark mode emails when `SiteSetting.dark_mode_emails_active` is active.
2022-04-11 12:27:50 -05:00
216dfbb895 Update translations (#16314) 2022-03-30 14:52:59 +02:00
7af01d88d2 FIX: Better 0 file size detection and logging (#16116)
When creating files with create-multipart, if the file
size was somehow zero we were showing a very unhelpful
error message to the user. Now we show a nicer message,
and proactively don't call the API if we know the file
size is 0 bytes in JS, along with extra console logging
to help with debugging.
2022-03-07 12:39:33 +10:00
022480b461 Update translations (#15763) 2022-02-01 16:15:18 +01:00
3f694e4ab5 FEATURE: Use native color-picker (#15748) 2022-02-01 11:18:13 -03:00
14b8cd5e17 Update translations (#15637) 2022-01-18 14:41:41 +01:00
f6d97eef08 DEV: Remove duplicated emoji files (again) (#15593) 2022-01-17 01:05:21 +01:00
8cfd791e0f FEATURE: Add missing emojis (#15582)
* FEATURE: Add missing emojis

* More missing emojis
2022-01-14 17:51:13 -03:00
06bba76719 DEV: Update emojis constants (#15506)
Follow up to d1cfabd so the new emojis are usable by the app
2022-01-10 14:53:52 -03:00
fbb8fb0d80 DEV: Remove duplicate emoji files (#15496) 2022-01-09 15:42:36 -05:00
5c74f048a5 UX: updated "accept invite" error page (#15490) 2022-01-09 10:21:42 +05:30
0a0e06fcf8 FEATURE: Update emojis (#15468)
* FEATURE: Update emojis

* Add extra aliases for backwards compatibility
2022-01-07 15:49:56 -03:00
108c8302fb FEATURE: Automatic admin editor dark mode (#15419) 2021-12-29 11:02:37 -05:00
995c514336 DEV: Handle CORS and other fetch failures for media-optimization-worker (#15364)
Occasionally there will be a misconfigured CORS rule or a different
network failure when loading one of the media optimization WASM scripts.
This commit handles load failures and sends a new installFailed message
from the service worker, so that we don't error and hold up the rest
of the uploads if this occurs; the worker will just not process anything
and will keep trying to install itself with subsequent uploads until it succeeds.

This commit also removes the redundant useUppy variable in the worker
this should have been removed a while ago in f70e6c302fddd38595a1fc90e24964a2cb0716bb
2021-12-21 09:00:19 +10:00
b91ce192bf DEV: Remove redundant version of jsoneditor.js (#15355) 2021-12-17 15:20:22 -05:00
031f4f06d5 DEV: update and improvements to json editor (#15294)
- changes on how errors are handled to prevent weird cases
- uses didInsert/willDestroy to setup/clean state
- updates json editor library to 2.6.1
2021-12-14 17:21:49 +01:00
4afd6f0189 Update translations (#15292) 2021-12-14 14:53:35 +01:00
439cd68e0d DEV: updates popper to 2.10.2 (#14986) 2021-11-17 13:47:55 +01:00
2461ed303c DEV: Move loadLibs to explicit install message in media-optimization-worker (#14707)
Previously, `loadLibs` was called inside the `optimize` function of
the media-optimization-worker, which meant that it could be hit
multiple times causing load errors (as seen in b69c2f7311836b8e35719a4d24cb60020fd7234d)

This commit moves that call to a specific message handler (the `install` message)
for the service worker, and refactors the service for the media-optimization-worker
to wait for this installation to complete before continuing with processing
image optimizations.

This way, we know for sure based on promises and worker messages
that the worker is installed and has all required libraries
loaded before we continue on with attempting any processing. The
change made in b69c2f7311836b8e35719a4d24cb60020fd7234d is no
longer needed with this commit.
2021-10-25 13:17:43 +10:00
b69c2f7311 DEV: Fix wasm_bindgen double loading errors in Firefox (#14630)
When we are calling the loadLibs function, which in turn calls:

importScripts(settings.mozjpeg_script);
importScripts(settings.resize_script);

For the media-optimization-worker service worker, we are getting
an error in Firefox, which balks at wasm_bindgen, a global
variable defined with let, being redefined when the module loads.
This causes image processing to fail in Firefox when more than one
image is uploaded at a time.

The solution to this is to just check whether the scripts are
already imported, and if so do not import them again.

Chrome doesn't seem to care about this variable redefinition
and does not error, and it seems to be expected behaviour that
the script can be loaded multiple times (see https://github.com/w3c/ServiceWorker/issues/1041)
2021-10-18 15:47:50 +10:00
b44119cdb2 Update translations (#14579) 2021-10-12 16:00:22 +02:00
76f0cf10e6 FIX: Resolve short URLs after diffHTML was loaded (#14296)
Short URLs were resolved before diffHTML was loaded and content was
swapped by it, which meant that no URLs were found and the URLs remained
unsolved. This caused image elements to be blank.

* DEV: Updated diffHTML to 1.0.0-beta.20
2021-09-09 16:25:58 +03:00
f66217c0b3 DEV: updates popperjs 2.0.6 -> 2.9.3 (#14163) 2021-08-26 16:37:04 +02:00
c995b20ca4 Update translations (#14063) 2021-08-24 15:25:44 +02:00
d7c185bf3d DEV: updates chart.js to 3.5.1 (#14107) 2021-08-23 13:49:49 +02:00
8989c9e6c9 FIX: Use file.id instead of file.name for media-optimization resolvers (#14110)
This change only applies when uppy is calling the media-optimization-worker.

Since the old way of calling the worker via jQuery file uploader will
be removed soon, there is no point coming up with some random string
to use in place of the file name for the promise resolvers there, we
can live with this for now.
2021-08-23 12:10:33 +10:00
90ab520d06 FIX: Pass fileName to error handler for media optimization (#14058)
The file name is used to look up the promise to resolve; it
was being passed for the successful path but not for the
error path.
2021-08-17 09:33:16 +10:00
b626373b31 FEATURE: First pass of using uppy in the composer (#13935)
Adds uppy upload functionality behind a
enable_experimental_composer_uploader site setting (default false,
and hidden).

When enabled this site setting will make the composer-editor-uppy
component be used within composer.hbs, which in turn points to
a ComposerUploadUppy mixin which overrides the relevant
functions from ComposerUpload. This uppy uploader has parity
with all the features of jQuery file uploader in the original
composer-editor, including:

progress tracking
error handling
number of files validation
pasting files
dragging and dropping files
updating upload placeholders
upload markdown resolvers
processing actions (the only one we have so far is the media optimization
worker by falco, this works)
cancelling uploads
For now all uploads still go via the /uploads.json endpoint, direct
S3 support will be added later.

Also included in this PR are some changes to the media optimization
service, to support uppy's different file data structures, and also
to make the promise tracking and resolving more robust. Currently
it uses the file name to track promises, we can switch to something
more unique later if needed.

Does not include custom upload handlers, that will come
in a later PR, it is a tricky problem to handle.

Also, this new functionality will not be used in encrypted PMs because
encrypted PM uploads rely on custom upload handlers.
2021-08-13 09:14:34 +10:00
e951cb9aef Update translations (#13860) 2021-07-27 15:24:03 +02:00
29e71f8450 DEV: adds grinning_face_with_smiling_eyes.png to google-classic (#13856) 2021-07-27 13:27:13 +02:00
3667cc6447 Update translations (#13821) 2021-07-22 12:31:19 +02:00
5eb6e9281a FIX: manually adds frowning_face_with_open_mouth for apple (#13528) 2021-07-21 23:27:20 +02:00
28b5e6e47d Update translations (#13796) 2021-07-21 10:30:34 +02:00
53fe8b2e77 Update translations (#13647) 2021-07-13 20:30:09 +02:00
9b51b9bf4e FIX: Detect resize failures in the client size image optimization (#13589)
On iOS 15 beta, if you select the camera app when uploading an image
and try to upload a freshly taken picture, from the second picture
onwards the resize WASM operation will return an array filled with
zeroes.

Since every 4th byte is alpha, and at this step we are only dealing with
non-transparent images this a O(1) way to detect that the bug was hit.
(On normal images, all 4th bytes are 255 at this point)

Also adds a "catch-all" when the original image became too small to try
to accomodate other bugs of the same type. By default we only trigger
this whole operation on images over 1MB, so if the end result is <20KB
something weird did happen. Throwing here will let the upload continue
using the original file, so nothing is lost and the user can continue.
2021-06-30 16:01:17 -03:00
23930738a7 Update translations (#13565) 2021-06-29 16:02:02 +02:00
99da221034 FIX: Handle image decoding failure in composer image optimization (#13555)
There are some hard limits in browser Canvas implementations, that will
throw a runtime exception when crossed. Since those limits are platform
dependent, the best we can do is catch it and back off from trying to
optimize a problematic file.

For example, a 60MB PNG can be processed fine by Chrome but Firefox will
fail trying to extract the ImageData from the CanvasRenderingContext2D
with NS_ERROR_FAILURE.

Also cleans up the media-optimization-utils and add post-resize size logs
2021-06-28 18:21:39 -03:00
fa4a462517 FEATURE: Optimize images before upload (#13432)
Integrates [mozJPEG](https://github.com/mozilla/mozjpeg) and [Resize](https://github.com/PistonDevelopers/resize) using WebAssembly to optimize user uploads in the composer on the client-side.

NPM libraries are sourced from our [Squoosh fork](https://github.com/discourse/squoosh/tree/discourse), which was needed because we have an older asset pipeline.
2021-06-23 12:31:12 -03:00
252dd169a4 Update translations (#13476) 2021-06-22 15:21:20 +02:00
f941bbc147 Update translations (#13327) 2021-06-08 16:32:36 +02:00
9d6780f03d DEV: Remove emoji_one files (#13236)
And add a symlink so requests to those assets fallback to the default
emoji set (Twitter).
2021-06-02 09:18:25 -04:00
8ac184c636 Update translations (#13088) 2021-05-18 15:11:41 +02:00
b24270845f DEV: Update chart.js from 2.9.3 to 2.9.4 (#13026)
Release notes: https://github.com/chartjs/Chart.js/releases/tag/v2.9.4
2021-05-12 17:28:16 +02:00
21c301aa72 Update translations (#13030) 2021-05-11 19:01:59 +02:00
3b2f2b533f Update translations (#12851) 2021-04-27 16:01:06 +02:00
27eff709c4 Update translations (#12684) 2021-04-13 16:02:08 +02:00
abb0a4bae2 DEV: Add SCSS helper to replace asset-uri and image-uri (#12664) 2021-04-12 13:57:39 +10:00
93f74add7d Update translations (#12614) 2021-04-07 11:58:41 +02:00