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
Régis Hanol
2e134742d4
FIX: only show 'defer flags' when there are active flags on the post
2014-08-04 17:29:01 +02:00
riking
19b757b058
FEATURE: Hide deleted posts by default for staff
2014-07-17 10:40:15 -07:00
Robin Ward
60cb5ea6a9
FIX: If a user is deleted, don't break embedded comments for admins.
2014-06-18 17:39:36 -04:00
Régis Hanol
0df666277d
BUGFIXES: properly deal with bookmarks and deleted posts
...
BUGFIX: removing a bookmark from the activity feed was busted for deleted posts
BUGFIX: delete associated user actions when deleting a post
2014-06-04 17:41:11 +02:00
Sam
3405253405
FEATURE: rush posting read times for newly read posts
...
FEATURE: "read" indicator on posts
CHANGE: anon is now assumed to have read everything
2014-06-03 11:48:52 +10:00
Sam
2ad756464e
SECURITY: TopicView not correctly restricting to topic
2014-05-29 21:56:26 +10:00
Robin Ward
3211c60bbe
FEATURE: A new site setting public_user_custom_fields
which allows you
...
to whitelist custom fields that will be exposed to the Ember client
application.
2014-05-14 14:39:01 -04:00
Neil Lalonde
9f4171e487
Fix my prev_page code, thanks to riking
2014-05-13 10:15:28 -04:00
Louis Rose
1574485443
Perform the where(...).first to find_by(...) refactoring.
...
This refactoring was automated using the command: bundle exec "ruby refactorings/where_dot_first_to_find_by/app.rb"
2014-05-06 14:41:59 +01:00
Robin Ward
158487dfc2
FIX: Clean up next/prev rel links
2014-03-03 12:56:37 -05:00
Robin Ward
b61df08d1b
FEATURE: Admin selector to choose a primary group for a user, display it
...
and apply a CSS class to their posts.
2014-02-10 17:00:15 -05:00
Robin Ward
194081ca47
FIX: Hidden posts were not being displayed with the correct messaging.
2014-01-21 17:23:03 -05:00
Robin Ward
1ffcf39448
Make embedded comments look nicer
2014-01-03 12:52:42 -05:00
Robin Ward
744add9ece
FIX: Post count progress was a little off. Minor fix to hidden posts
2013-12-09 14:28:32 -05:00
Robin Ward
79427732b2
Show Gaps in the post stream when filters are active
...
Conflicts:
app/assets/javascripts/discourse/templates/topic.js.handlebars
2013-12-05 16:46:59 -05:00
Robin Ward
a2b70f64ca
FIX: Hidden posts would screw up the docking of the post progress
2013-11-27 14:59:14 -05:00
Robin Ward
4ce81e1b01
Rename "Best Of" to "Summary"
2013-11-18 12:48:26 -05:00
Robin Ward
ad3e276b4b
Rename TopicSummary -> TopicMap
2013-11-18 12:08:21 -05:00
Manoj
9650dbb97c
Refactor topics controller
...
Refactor: 1) TopicsController to reduce code climate complexity.
2) Topic model, addressed comments
fix typo
2013-10-28 11:42:07 +05:30
Sam
094b5eccca
bug fixes for user_stat extraction, decrease querying
2013-10-07 15:05:00 +11:00
Sam
4933e9d6ab
todo added to code
2013-09-05 09:33:51 +10:00
Neil Lalonde
117fc8db58
Change the way nuked users' posts are handled. Allow null in the user_id column of posts. Show these posts in the posts stream.
2013-09-04 15:42:21 -04:00
Navin
2ea15adad9
Extract methods to improve flog score of TopicView
2013-08-13 18:23:04 +02:00
Navin
9c5b5e3c7d
Refactor TopicView - extract filter method to FilterBestPosts
...
Still much to do but this should reduce the complexity scores
for TopicView
2013-07-12 15:54:54 +02:00
Robin Ward
19c169540c
Staff can enter and view deleted topics
2013-07-11 16:39:35 -04:00
Neil Lalonde
8814f9ed05
Fix a case when a staff user views a topic with a deleted post by a nuked user; might be a temporary solution until we decide what to do with nuked records
2013-07-10 16:52:47 -04:00
Robin Ward
cfc4dda9ff
FIX: OpenGraph should feature the desired post, if found in the set.
2013-07-08 12:21:39 -04:00
Robin Ward
88ca51bb00
FIX: Wordpress route wasn't updating filter count correctly
2013-07-05 16:59:16 -04:00
Robin Ward
6cd6484b5e
New mode for Wordpress: Filter ONLY posts liked by moderators
2013-07-05 16:07:24 -04:00
Robin Ward
4c90b16681
FIX: Next pages were missing on <noscript>
content. Also fixed some long standing bugs.
2013-07-05 14:45:54 -04:00
Sam
4d4a5735d2
logic to bypass trust level filter for high scoring posts
2013-07-03 12:37:17 +10:00
Robin Ward
5770879472
Refactor: Move Topic Details into better objects, identity map, tests, query string filters
2013-07-02 10:36:46 -04:00
Sam
b92e912ac9
add min replies, min score and min trust level params for wordpress
2013-07-01 21:29:45 +10:00
Sam
5e7ffd830e
hard code best requires trust level > 0, make it configurable later
2013-06-29 21:09:13 +10:00
Robin Ward
6106057328
FIX: Can view best filter while logged in
2013-06-28 12:20:06 -04:00
Sam
870e59883b
secure the links on the topic pages, eliminated deleted topics as well.
2013-06-05 16:10:26 +10:00
Sam
da6a88634b
improve best filter so it properly excludes all admin messages from count as well
2013-05-22 15:14:47 +10:00
Sam
c4d8085fc5
remove moderator status posts from best feed
2013-05-22 15:04:53 +10:00
Sam
80fb20816c
get rid of nonsense 404.html
...
correct 404 handling for invalid pages
2013-05-20 10:29:49 +10:00
Chris Hunt
c2a4f16f24
Show posts for last page when page out of range
2013-05-18 13:11:01 -07:00
Sam
5ec52bd2e9
:s/moderator?/staff/g ... our naming was kind of crazy, renamed moderator? to staff
2013-05-02 17:22:27 +10:00
Régis Hanol
7105349f1f
FIX: accessing a topic with a 'page' parameter
2013-04-04 00:12:27 +02:00
Sam
2295290383
added best=N option to get N best comment on a post
2013-03-27 22:53:11 -07:00
Robin Ward
f1e2923a91
Display correct post counts, even with a filter active
2013-03-26 15:06:23 -04:00
Robin Ward
5dc47c2d82
Rename posts_count
in topic view to post_counts_by_user
which makes much more sense
2013-03-26 14:06:24 -04:00
Robin Ward
2efd3e61c7
TopicView respects sort_order
and better specs
2013-03-26 13:27:11 -04:00
Sam
2a047df4f1
cache reply_to_user_id in post to eliminate a very nasty n+1 query
2013-03-19 16:54:23 -07:00
Robin Ward
908bba8c13
First stab at oneboxing of meta.discourse.org
2013-03-08 15:59:12 -05:00
Robin Ward
d1d4530efd
User Profile enhancements:
...
- Added PreloadStore support to avoid duplicate requests
- preliminary SEO
- Support for opengraph/twitter cards
2013-03-08 15:04:37 -05:00
Robin Ward
d848a9fedc
Add opengraph and twitter card support to topics
2013-03-07 17:46:43 -05:00
Régis Hanol
239cbd2d58
enforce coding convention
...
replaced every `and` by `&&` and every `or` by `||`
2013-03-05 01:42:44 +01:00
Gosha Arinich
0c99dea153
introduce Enum
2013-03-01 21:16:36 +03:00
Alexander
8855a0bfbe
RSS of a topic via new route
...
Adds TopicView#recent_posts; Post#by_newest, #with_user, #author_readable; User#readable_name
Autodiscovery tag in topic show HTML.
2013-02-26 14:54:17 -08:00
Gosha Arinich
cafc75b238
remove trailing whitespaces ❤️
2013-02-26 07:31:35 +03:00
Sam Saffron
4aa7ba620e
fix, so really long topics are correct, tested perf on a 4k post topic and seems fine
2013-02-15 13:08:37 +11:00
Sam Saffron
a8085f15c4
grab highest post number from the raw data, so deletions at the end of a topic work
2013-02-15 13:08:37 +11:00
Robin Ward
27a07054d7
We never want to filter TopicView to just one post.
2013-02-12 19:02:16 -05:00
Grant Ammons
f3dc93a0db
WIP, a very nice refactoring of TopicsController#show
2013-02-11 17:54:56 -05:00
Robin Ward
21b5628528
Initial release of Discourse
2013-02-05 14:16:51 -05:00