Commit Graph

1269 Commits

Author SHA1 Message Date
Robin Ward 0e710dc573 Improvements to Lazy Loading
- Now applied to all images over 150x150px

- Stores the width and height in the WeakMap rather than using
percentages for accuracy

- When oneboxed images are hidden, they are given a subtle border for better
visibility.

- Don't apply when in the composer. Causes flickering.
2018-12-21 11:31:27 -05:00
Robin Ward a2ae67509d Don't use getAttribute if we don't need to 2018-12-20 16:41:04 -05:00
Sam Saffron 400eea4d13 UX: show lazy loaded images while they are downloading
Also shows fuzzy image right away prior to it being downloaded
2018-12-20 22:04:30 +08:00
Penar Musaraj f5c4ab0573 Add category link renderer to plugin API (#6787)
* Add category link renderer to plugin API

- lets themes/plugins override the category link display

- planning to use this in a "category icons" theme component

* small code review fix

* Code review refactor
2018-12-19 10:26:09 +01:00
Robin Ward 662cfc416b FEATURE: Show a blurry preview when lazy loading images
This generates a 10x10 PNG thumbnail for each lightboxed image.
If Image Lazy Loading is enabled (IntersectionObserver API) then
we'll load the low res version when offscreen. As the image scrolls
in we'll swap it for the high res version.

We use a WeakMap to track the old image attributes. It's much less
memory than storing them as `data-*` attributes and swapping them
back and forth all the time.
2018-12-19 01:57:30 +08:00
Robin Ward 6797a710aa FEATURE: Lazily Load Images as they scroll into the viewport.
This feature uses the Intersection Observer API

https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API

It should be compatible with all modern browsers. Non-Edge IE is *NOT*
supported, so in that particular browser images are loaded by default.
2018-12-12 10:12:49 +11:00
Penar Musaraj 923692d45a FIX: tooltip regression in admin dashboard
- adds registerHoverTooltip in tooltip qunit test
2018-12-03 11:15:31 -05:00
Dan Ungureanu d657ce844b DEV: Call onClose for closing modals. 2018-11-27 13:05:27 +11:00
Penar Musaraj 03deda2147 Upgrade to FontAwesome 5 (take two) (#6673)
* Add missing icons to set

* Revert FA5 revert

 This reverts commit 42572ff

* use new SVG syntax in locales

* Noscript page changes (remove login button, center "powered by" footer text)

* Cast wider net for SVG icons in settings

- include any _icon setting for SVG registry (offers better support for plugin settings)

- let themes store multiple pipe-delimited icons in a setting

- also replaces broken onebox image icon with SVG reference in cooked post processor

* interpolate icons in locales

* Fix composer whisper icon alignment

* Add support for stacked icons

* SECURITY: enforce hostname to match discourse hostname

This ensures that the hostname rails uses for various helpers always matches
the Discourse hostname

* load SVG sprite with pre-initializers

* FIX: enable caching on SVG sprites

* PERF: use JSONP for SVG sprites so they are served from CDN

This avoids needing to deal with CORS for loading of the SVG

Note, added the svg- prefix to the filename so we can quickly tell in
dev tools what the file is

* Add missing SVG sprite JSONP script to CSP

* Upgrade to FA 5.5.0

* Add support for all FA4.7 icons

- adds complete frontend and backend for renamed FA4.7 icons

- improves performance of SvgSprite.bundle and SvgSprite.all_icons

* Fix group avatar flair preview

- adds an endpoint at /svg-sprites/search/:keyword

- adds frontend ajax call that pulls icon in avatar flair preview even when it is not in subset

* Remove FA 4.7 font files
2018-11-26 16:49:57 -05:00
Joffrey JAFFEUX 3453707784 FEATURE: allows html tooltips (#6665) 2018-11-26 11:15:23 +01:00
Joffrey JAFFEUX 9672c92045 DEV: removes _.each from codebase (#6629) 2018-11-20 14:46:58 +01:00
Joffrey JAFFEUX 30e0d744db DEV: removes _.delay from codebase (#6619) 2018-11-19 10:47:00 +01:00
Joffrey JAFFEUX 907cf3ee2f DEV: replaces setTimeout by Ember.run.later (#6618) 2018-11-19 10:46:38 +01:00
Régis Hanol 0f5aeab003 DEV: enable no-alert & no-console eslint rules 2018-11-14 23:17:56 +01:00
Guo Xiang Tan 44391ee8ab FEATURE: Upload Site Settings. (#6573) 2018-11-14 15:03:02 +08:00
Robin Ward 467be59d75 FEATURE: Allow expanded posts to return user custom fields 2018-11-13 12:44:54 -05:00
Sam 42572ff138 Revert font awesome 5 changes
We are still pushing ahead on this 100% just need a bit longer to prepare
all plugins
2018-11-08 16:12:18 +11:00
Penar Musaraj 005e1ecb9b FEATURE: Update Font Awesome to v5.4.1 and SVGs (#6557)
* First take on subsetting svg icons

* FontAwesome 5 svg subset WIP

* Include icons from plugins/badges into svg sprite subset

* add svg icon support to themes

* Add spec for SvgSprite

* Misc. SVG icon fixes

* Use FA5 svgs in local-dates plugin

* CSS adjustments, fix SVG icons in group flair

* Use SVG icons in poll plugin

* Add SVG icons to /wizard
2018-11-07 13:05:43 -05:00
Joffrey JAFFEUX 11ee07093c FEATURE: revamps search-menu layout (#6543) 2018-10-30 10:44:49 -04:00
Bianca Nenciu 2a77550f8c FIX: Do not track right clicks. (#6530) 2018-10-25 09:46:04 +00:00
Bianca Nenciu 22ada32d4d FIX: Strip @ when searching for users and groups. (#6506) 2018-10-19 11:56:10 +11:00
Vinoth Kannan 08c404e138 FIX: Do not set null value to remove cookie 2018-10-16 06:12:32 +05:30
Joe 2acb885c72 FEATURE: fullscreen composer mode on desktop
Adds keyboard shortcut and icon that allows expanding composer to full screen.
2018-10-15 13:59:49 +11:00
Maja Komel 57b52cd1de FIX: keep emoji syntax for custom emojis in quotes (#6488) 2018-10-15 10:57:15 +08:00
Guo Xiang Tan 84d4c81a26 FEATURE: Support backup uploads/downloads directly to/from S3.
This reverts commit 3c59106bac.
2018-10-15 09:43:31 +08:00
Bianca Nenciu 6275e745a7 FIX: Fix open quote links in new window. (#6477) 2018-10-11 15:51:14 +08:00
Guo Xiang Tan 3c59106bac Revert "FEATURE: Support backup uploads/downloads directly to/from S3."
This reverts commit c29a4dddc1.

We're doing a beta bump soon so un-revert this after that is done.
2018-10-11 11:08:23 +08:00
Gerhard Schlager c29a4dddc1 FEATURE: Support backup uploads/downloads directly to/from S3. 2018-10-11 10:38:43 +08:00
Kyle Zhao ffc241eb25 FIX: multiple loadScript to the same url may resolve prematurely (#6474)
This is how `loadScript(url)` currently deals with multiple concurrent requests

1. Check existing `<script>` tags, and mark existing scripts (other than the 
   input `url`) as loaded
2. Find "true" `url` of the requested resource (CDN, subfolder path, etc)
3. Check if we have loaded the resource with that "true" `url`, and resolve 
   immediately if we have
4. Otherwise insert a `<script>` tag with the "true" `url` to load it

For example, in a subfolder install:

- Input `url` = `/javascripts/script.js`
- "True" `url` = `/subfolder/javascript/script.js`

And the _very_ subtle bug here is that we should use also use the true `url` 
for step (1), because:

- Since the input and true `url` are different, we mistakenly mark the true 
  `url` as loaded in step one 
- After finding the true `url`, and setting `loaded[trueUrl] = true` in (1), we
  resolve the promise prematurely, when the resource could still be loading
2018-10-11 08:55:36 +08:00
Penar Musaraj 0ea8c1943f Let plugins decorate banner topic, fixes local dates in banners (#6452) 2018-10-10 17:27:23 +08:00
David Taylor 9bf522f227 FEATURE: Mixed case tagging (#6454)
- By default, behaviour is not changed: tags are made lowercase upon creation and edit.

- If force_lowercase_tags is disabled, then mixed case tags are allowed.

- Tags must remain case-insensitively unique. This is enforced by ActiveRecord and Postgres.

- A migration is added to provide a `UNIQUE` index on `lower(name)`. Migration includes a safety to correct any current tags that do not meet the criteria.

- A `where_name` scope is added to `models/tag.rb`, to allow easy case-insensitive lookups. This is used instead of `Tag.where(name: "blah")`.

- URLs remain lowercase. Mixed case URLs are functional, but have the lowercase equivalent as the canonical.
2018-10-05 10:23:52 +01:00
Bianca Nenciu 6ad13e5ae9 FIX: Avoid redirection when not leaving forum. (#6419)
* FIX: Avoid redirection when not leaving forum.

* DEV: Updated click-track's tests.
2018-10-04 22:06:31 +08:00
Kyle Zhao 373d6e3fe6 always loadScript with a script tag (#6411)
to avoid Content Security Policy unsafe-line violations
2018-10-01 10:06:01 +08:00
Joffrey JAFFEUX 7bf8b0d305 FIX: treats users_(by_type|tl) as other reports (#6391) 2018-09-13 17:35:54 +02:00
Sam daa02431df FIX: remove div used to measure textarea position
Also corrects the positioning of autocomplete (when typing @ or emoji)

Previously there were edge conditions where autocomplete would be hundreds
of pixels away due to a bug measuring.


This correct an issue where Firefox ends up having an enormous blank space
at the bottom of topics after editing.
2018-09-13 14:53:32 +10:00
Sam 56b6a4779d FIX: make route to tag more robust
There are some edge cases where code would fail here, so adding protection
2018-09-06 17:24:32 +10:00
Sam 5bdc00c3be FIX: do not automatically route all actions to hovered posts
This feature (hitting d when a post is hovered with mouse deletes) causes a lot of confusion and is very risky.
2018-09-06 10:34:58 +10:00
Joffrey JAFFEUX 17087eff2a FIX: Reset tags on category change (#6363) 2018-09-05 17:18:52 +02:00
Guo Xiang Tan 0f812aa768 Make prettier happy. 2018-08-30 15:56:30 +08:00
Vinoth Kannan 092fb0c170 Merge pull request #6333 from vinothkannans/rich-text-pasting
FIX: Use tight list format for GDocs html to markdown
2018-08-30 12:14:50 +05:30
Vinoth Kannan 4c99acea1b FIX: Use tight list format for GDocs html to markdown 2018-08-29 16:21:31 +00:00
Kris 8ff83d174e FIX: Changing tag name class to data attribute (#6326) 2018-08-29 10:49:19 -04:00
Vinoth Kannan 26f17150e1 Merge pull request #6327 from vinothkannans/rich-text-pasting
FIX: Keep emojis and remove clicks count on html to markdown
2018-08-29 13:38:55 +05:30
Vinoth Kannan fb35b0b3c3 FIX: Keep emojis and remove clicks count 2018-08-29 07:26:25 +00:00
Sam 9ab1fb7dfc FEATURE: correctly store width and height on uploads
Previously we used width and height for thumbnails, new code ensures

1. We auto correct width and height
2. We added extra columns for thumbnail_width and height, this is determined
 by actual upload and no longer passed in as a side effect
3. Optimized Image now stores filesize which can be used for analysis, decisions

Also

- fixes Android image manifest as a side effect
- fixes issue where a thumbnail generated that is smaller than the upload is no longer used
2018-08-28 12:59:22 +10:00
Joffrey JAFFEUX 82dcc5cbfa FEATURE: makes reports loadable in bulk (#6309) 2018-08-24 15:28:01 +02:00
James Kiesel a4001c1ea0 FEATURE: Pop revise modal on post edited notification (#6287)
* Add revision number to notification url

* Pop modal on route change

* Add semicolon

* Ensure modal pops even when navigating within a topic

* Ensure modal pops when visiting from other page

* Fix eslint errors

* Fix prettier errors

* Add callback for notification item click

* Remove stray revisionUrl function

* Rename to afterRouteComplete
2018-08-24 09:13:07 -04:00
Bianca Nenciu 758fae7f9f UX: Keyboard shortcuts will automatically select hovered post 2018-08-22 15:47:17 +10:00
David Taylor e7e8f4ef4c Add plugin API for handling uploads with specific file extensions 2018-08-17 16:08:47 +01:00
Joffrey JAFFEUX 37d4f27c44 FIX: quality/bugfix dashboard/reports pass (#6283) 2018-08-17 16:19:25 +02:00