Sam
94b8ba4f8f
FIX: remove slow platform detection from server side
...
Historically due to https://meta.discourse.org/t/why-is-discourse-so-slow-on-android/8823
we decreased page sizes of both home page and topic page on android by half.
This was done on the server side and as a side effect and caused page sizes on android
to mismatch between Android and non Android.
Unfortunately about a year ago googlebot started pretending it is Android,
this cause Google to start indexing pages as what android would see. So
it saw double the amount of pages in the index as what exists on desktop.
This in turn caused double the amount of indexing work and a large amount
of broken links on long topics.
This fix removes all special behavior which is no longer needed due to
other performance work in Discourse including raw handlebars on home page
and virtual dom on topic pages.
I tested we do not need this on Blu Advance 5.0 it has 1.3 GHZ mediatec mt6580
This phone retails for around $50 USD.
If we decide long term that we want any hacks like this we will shift them
to the client side. It can just hold data in memory without rendering.
2018-12-13 13:57:05 +11:00
Sam
966d3c8437
remove unneeded code
...
```
irb(main):001:0> def test; if false; puts "hi"; end; end
=> :test
irb(main):002:0> test
=> nil
```
2018-11-21 12:57:34 +11:00
Sam
20268385a5
FIX: never attempt to log invalid post numbers
...
Previously in some cases we would queue logging of invalid post numbers
The impact would be we would miss logging an incoming link and would leak
an error.
2018-11-21 11:58:47 +11:00
Sam
e17a13ce19
FEATURE: additional "related messages" section
...
This splits out previous message correspondence from suggeted and instead
has a dedicated section called "related messages"
2018-11-12 13:04:42 +11:00
Neil Lalonde
ebe7835316
FIX: links in rss feeds are sometimes wrong on subfolder installs
2018-08-27 18:05:15 -04:00
Arpit Jalan
17b851cf08
FEATURE: show last updated date for wiki topics
2018-07-30 20:27:49 +05:30
Arpit Jalan
dfcb2a0d42
FEATURE: include published_time in metadata
2018-07-30 17:09:56 +05:30
Guo Xiang Tan
711371e8c8
FIX: Select+below will ask server for post ids on megatopics.
2018-07-13 15:10:39 +08:00
Guo Xiang Tan
c722b07057
FIX: /t/:topic_id/last
route did not return any posts.
2018-07-13 14:26:10 +08:00
David Taylor
81f9500f5c
FIX: Change megatopic threshold to 10,000 posts
2018-07-12 22:00:53 +01:00
Guo Xiang Tan
258e9e35ca
PERF: Make mega topics work without a stream.
...
There are tradeoffs that we took here. For the complete
story see
https://meta.discourse.org/t/performance-improvements-on-long-topics/30187/27?u=tgxworld .
2018-07-12 12:46:12 +08:00
Guo Xiang Tan
b4e1388f9b
PERF: Drop support for gaps in mega topics.
...
Based on our current implementation, there isn't a
practical way to determine the gaps of large topics
cheaply. We tried to load the gaps in chunks but felt
that the code becomes too complicated. Note that
megatopics are quite rare in the wild.
2018-07-10 16:27:02 +08:00
Guo Xiang Tan
21f333654c
REFACTOR: Reduce dependency on the post stream in TopicView
.
...
This will allow us to drop the post stream from the payload for
mega-topics. On smaller topics, the extra query is fast because
of an existing index.
2018-07-10 15:53:00 +08:00
Guo Xiang Tan
252e5574cc
FIX: Prevent ambigous column errors when joining TopicView
queries.
2018-06-29 10:33:08 +08:00
Guo Xiang Tan
eb427f7cf4
PERF: Update TopicView#participant_count
to use Topic#posts_count
.
...
Use the counter cache instead of hitting the DB and plucking
every single id.
2018-06-27 17:18:47 +08:00
Guo Xiang Tan
cfa7898c2d
Rename TopicView#last_read_post_id
to TopicView#filtered_post_id
.
2018-06-27 12:33:57 +08:00
Guo Xiang Tan
cb69888758
PERF: Don't pluck all the columns just to retrieve a single value.
2018-06-27 11:41:35 +08:00
Guo Xiang Tan
49ffc1eb61
Revert "PERF: Send down gaps as the relevant posts load instead of front loading."
...
This reverts commit 4c3352528e
.
2018-06-26 12:54:14 +08:00
Guo Xiang Tan
4c3352528e
PERF: Send down gaps as the relevant posts load instead of front loading.
2018-06-26 12:49:06 +08:00
Guo Xiang Tan
0b6a2e9d1f
Remove force summary mode for megatopics for now.
...
The logic is too hairy and we can't reliably determine
when to force summary mode. Work is underway to improve
perf for megatopics so this will not be required
eventually.
2018-06-26 12:49:06 +08:00
Guo Xiang Tan
5100a62fc0
FIX: Megatopics forced into summary mode when loading posts.
2018-06-25 22:11:56 +08:00
Guo Xiang Tan
f69356e628
FIX: Users can't "show all posts" in forced summary topics.
2018-06-22 11:32:45 +08:00
Guo Xiang Tan
9a7a079f4d
Force summary mode when user enters at the top of megalodoon topics.
2018-06-21 15:18:52 +08:00
Guo Xiang Tan
f7d22bad90
FEATURE: Forced summary mode for megalodon topics.
...
This is mainly done for performance reasons and megalodon
topics are usually a byproduct of imports where site setting
limits are not respected.
2018-06-21 14:00:20 +08:00
Guo Xiang Tan
5cef4e281b
PERF: Memoize TopicView#gaps
results.
2018-06-21 12:37:24 +08:00
Sam
2d59d06916
PERF: mega_topics get no post counts per user
2018-06-21 11:09:45 +10:00
Guo Xiang Tan
ff5fc3cb08
Use a fixed limit for mega topic posts count.
2018-06-20 16:58:52 +08:00
Guo Xiang Tan
9c925a66ff
PERF: Don't display days ago on timeline for megatopics.
...
Analysis using `pg_stat_statements` showed this query
to be eating up a significant portion of CPU.
2018-06-20 16:25:54 +08:00
Sam
cbdab71179
PERF: stop counting participants on very large topics
...
This query gets very expensive and can be bypassed on large topics
2018-06-20 18:11:39 +10:00
Sam
5f64fd0a21
DEV: remove exec_sql and replace with mini_sql
...
Introduce new patterns for direct sql that are safe and fast.
MiniSql is not prone to memory bloat that can happen with direct PG usage.
It also has an extremely fast materializer and very a convenient API
- DB.exec(sql, *params) => runs sql returns row count
- DB.query(sql, *params) => runs sql returns usable objects (not a hash)
- DB.query_hash(sql, *params) => runs sql returns an array of hashes
- DB.query_single(sql, *params) => runs sql and returns a flat one dimensional array
- DB.build(sql) => returns a sql builder
See more at: https://github.com/discourse/mini_sql
2018-06-19 16:13:36 +10:00
Guo Xiang Tan
81b5d61fa7
FIX: topic_destroyed
web hook couldn't find topic.
2018-05-28 17:38:02 +08:00
Régis Hanol
c5c1d8e180
Add support for the '/p/:post_id' route on the client-side
2018-03-24 02:44:39 +01:00
Arpit Jalan
345b453ee1
optimize query for fetching PM created in previous hour
2018-03-12 16:40:17 +05:30
Arpit Jalan
3a35f459c7
optimize last pm log fetching
2018-03-11 09:34:08 +05:30
Arpit Jalan
f862122978
FIX: do not log personal message view if there exists a similar log in previous hour
2018-03-11 09:23:32 +05:30
Arpit Jalan
b9a669ba32
FIX: do not log personal message view if user can't see the message
2018-02-25 22:39:25 +05:30
Arpit Jalan
1f6adbea5c
FEATURE: log private message views
2018-01-29 08:08:08 +05:30
Sam
dee498a281
correct regression
2017-12-13 17:36:36 +11:00
Sam
9d925f6b26
FIX: correctly count participants when more than 24
...
Also cuts out one query for the normal case
2017-12-13 17:19:42 +11:00
Gerhard Schlager
44ee388070
FEATURE: omit images from og and twitter description tags
2017-11-28 21:34:02 +01:00
Régis Hanol
47e79570cc
FIX: frequent posters wasn't displaying the correct information
2017-10-02 17:47:04 +02:00
Robin Ward
00b190af75
Revert "A safe way to create class variables in a multisite environment."
...
The approach taken by this interface was flawed. We need a better
solution.
2017-09-29 11:06:12 -04:00
Robin Ward
3e13becf33
A safe way to create class variables in a multisite environment.
...
This should allow plugins to set class variables that will not
stomp on other plugins.
2017-09-27 13:00:47 -04:00
Guo Xiang Tan
5be5def217
PERF: Bypass AR and just use raw SQL.
2017-09-25 13:48:59 +08:00
Régis Hanol
797936d2c5
FIX: don't leak whisper count in user card
2017-09-14 20:08:16 +02:00
Régis Hanol
0096ee40da
FIX: only show participants the user can see
2017-09-13 17:14:03 +02:00
Guo Xiang Tan
58321d0783
PERF: Remove Object#present?
check introduced in e0d5d9670a
.
2017-09-07 21:36:27 +08:00
Guo Xiang Tan
e0d5d9670a
Fix the build.
2017-09-07 18:41:44 +08:00
Guo Xiang Tan
3e123b1a39
PERF: Use pluck
instead of enmurating through all the records.
2017-09-07 17:24:23 +08:00
Régis Hanol
75e4f7f896
Shorten some very long lines
...
Prevent warnings from already defined constants when reloading
2017-08-12 04:18:04 +02:00
Régis Hanol
ecbeaed0bc
fix weird indentation
2017-08-04 17:28:25 +02:00
Régis Hanol
c76161787c
eager load more tables for the topic_view
2017-08-04 17:23:53 +02:00
Guo Xiang Tan
5012d46cbd
Add rubocop to our build. ( #5004 )
2017-07-28 10:20:09 +09:00
Sam
6ddd8d9166
FIX: when entering topics "tracking" would not be set
...
There was a timing issue when subscribing to messages for topics.
Old flow:
- We generate JSON for topic
- We subscribe to messages for topic
New flow:
- We keep track of last id in the topic message bus channel
- We generate JSON
- We subscribe to messages for topic starting at saved message id
This ensures that there is complete overlap for message consumption
and that there are no cases where an update may go missing due to timing
2017-05-16 15:04:21 -04:00
Neil Lalonde
5a8bbe663a
FEATURE: include most popular tag in page title for webcrawlers of tagged uncategorized topics
2017-02-07 16:55:42 -05:00
Neil Lalonde
61d4c1203e
FEATURE: group avatar flair shows on topic participants list, and participant avatars can have custom styles
2017-01-18 11:38:00 -05:00
Arpit Jalan
988aca6d92
FIX: bump opengraph user avatar image to 200px
2016-11-26 23:00:18 +05:30
Arpit Jalan
382803cb05
FEATURE: include post image in OpenGraph image tag
2016-10-31 15:11:33 +05:30
Rafael dos Santos Silva
0229df4c73
Second review fixes
2016-09-26 20:46:55 -03:00
Rafael dos Santos Silva
2a5a0bebb3
Adjusts from review
2016-09-26 20:46:55 -03:00
Rafael dos Santos Silva
804019647e
Makes it possible to paginate on print page
2016-09-26 20:46:55 -03:00
Rafael dos Santos Silva
9a46af59ad
FIX: TopicView were using Topic.relative_url instead of TopicView.relative_url on all methods.
2016-09-26 20:46:55 -03:00
Rafael dos Santos Silva
70c68f0a7c
Open print dialog automatically
2016-09-26 20:44:50 -03:00
Rafael dos Santos Silva
c12e533273
Feature: Adds a button to print a topic
2016-09-26 20:44:50 -03:00
Arpit Jalan
a39929d12e
FEATURE: add opengraph and twitter meta tags on every page
2016-08-21 22:08:49 +05:30
Robin Ward
559fa36c18
FEATURE: Topic timeline widget
2016-05-31 10:51:39 -04:00
Robin Ward
65392f37bb
FIX: Apply both embedded post filters
2016-05-03 15:19:59 -04:00
Robin Ward
664f1913c8
FIX: Don't include hidden posts in embedded comments
2016-05-03 15:01:20 -04:00
Régis Hanol
4960b62110
FEATURE: new 'block_auto_generated_emails' site setting
2016-04-20 21:29:27 +02:00
Arpit Jalan
e30c8239a2
FEATURE: show poster avatar for remote Discourse post onebox
2016-04-15 00:03:37 +05:30
Neil Lalonde
a299231f9a
FEATURE: add setting to omit category name from topic page title tag
2016-04-11 16:44:16 -04:00
Robin Ward
1006b1ba94
Various Plugin Enhancements and Extension Points
2016-03-11 15:53:37 -05:00
Guo Xiang Tan
e8de80de98
FIX: Default to first page when page params is an array.
2016-02-25 11:32:58 +08:00
Sam Saffron
bc75010b20
FEATURE: suggested messages for messages
...
FEATURE: clicking envelope takes you to inbox
Suggested messages works somewhat like suggested topics.
- New show up first (in either group inbox or inbox)
- Then unread (in either group inbox or inbox)
- Finally "related" which are messages with same participants as the current pm.
2016-02-03 18:50:05 +11:00
Régis Hanol
98c0fac461
FEATURE: add small action post when adding/removing users in messages
2016-01-11 12:42:06 +01:00
Arpit Jalan
51ced7aeae
make site setting for read time word count per minute
2015-12-30 12:15:30 +05:30
Arpit Jalan
6ef1537ee0
FEATURE: better unfurling of Discourse topics on Slack
2015-12-28 19:10:19 +05:30
Régis Hanol
37c5909a31
FIX: use the first image in the first post in the topic as opengraph image
...
FEATURE: new 'default_opengraph_image_url' setting
2015-10-15 11:00:47 +02:00
Sam
47597ae6b3
PERF: better caching in topic view
2015-09-28 16:50:24 +10:00
Régis Hanol
4f7140fb32
FIX: properly filter whispers in user stream
2015-09-22 00:50:52 +02:00
Kane York
c9e4745fe8
FIX: Return 410 Gone for deleted topics you could otherwise see
2015-09-18 00:14:43 -07:00
Robin Ward
5af0f5f80e
FEATURE: Whisper posts
2015-09-11 14:05:21 -04:00
Kane York
460243d7a3
FIX: Give 403 for deleted topics, +lots of tests
2015-09-11 08:29:44 -07:00
Robin Ward
bb93a345eb
UX: Use smaller messages for moderator actions.
2015-07-27 10:09:21 -04:00
Sam
940be8261a
FIX: going to PM directly results in 500 error
...
regressed 1 day ago.
2015-07-23 09:57:42 +10:00
Sam
90b85e5b23
FIX: missing category from title in non-js view
2015-07-22 10:26:58 +10:00
Sam
4167757dee
correct exception when page is sent in as array
2015-05-07 10:49:29 +10:00
Sam
c3e3afcb2c
PERF: eliminate N+1 query due to polls
2015-05-04 16:12:03 +10:00
Régis Hanol
a737090442
- FEATURE: revamped poll plugin
...
- add User.staff scope
- inject MessageBus into Ember views (so it can be used by the poll plugin)
- REFACTOR: use more accurate is_first_post? method instead of post_number == 1
- FEATURE: add support for JSON-typed custom fields
- FEATURE: allow plugins to add validation
- FEATURE: add post_custom_fields to PostSerializer
- FEATURE: allow plugins to whitelist post_custom_fields
- FIX: don't bump when post did not save successfully
- FEATURE: polls are supported in any post
- FEATURE: allow for multiple polls in the same post
- FEATURE: multiple choice polls
- FEATURE: rating polls
- FEATURE: new dialect allowing users to preview polls in the composer
2015-04-23 19:33:29 +02:00
Sam Saffron
27aa0bc056
PERF: eliminate query that grabs every post number on topic page.
2015-04-23 00:10:09 +10:00
Sam
9698447e89
FEATURE: support staff only custom user fields
2015-03-03 17:51:01 +11:00
Sam
52bc03b5e6
FIX: summary mode was broken and missing a bunch of posts
2015-01-30 17:19:42 +11:00
Neil Lalonde
4a11bb5227
FIX: on topic page, don't try to render post counts for a deleted user
2015-01-15 15:39:34 -05:00
Sam
ae16186100
FEATURE: post chunk size should not be configurable
...
If people need to configure post chunk size use a plugin
Core only supports out of the box settings, if changed can lead to
severe performance issues.
2014-12-15 10:57:34 +11:00
Robin Ward
2d6b15a34d
Load fewer posts when the android platform is detected
2014-12-12 11:47:39 -05:00
Régis Hanol
fe007d08b3
FIX: remove links and html 'hellips' from topic/post summaries
2014-12-08 00:23:53 +01:00
Régis Hanol
929ff00741
FIX: use excerpt instead of the summary
2014-12-06 18:48:39 +01:00
Robin Ward
3eb020c466
Max out summary filter at 100 posts.
2014-10-28 15:58:04 -04:00
Jeff Atwood
92b615b503
reorganize site settings a bit
2014-10-19 23:14:50 -07:00
Régis Hanol
3ae1ebdfc3
FIX: use PostDestroyer when deleting/recovering a topic
2014-08-07 19:12:35 +02:00