Guo Xiang Tan
d3a409456f
PERF: Bypass AR and execute SQL directly.
2017-09-12 17:52:13 +08:00
Guo Xiang Tan
5d4221fbe1
PERF: Avoid calling expensive PostGuardian#can_see_post?
multiple times.
...
Before
```
Your Results: (note for timings- percentile is first, duration is second
in millisecs)
---
topic_admin:
50: 19
75: 19
90: 21
99: 27
topic:
50: 56
75: 62
90: 64
99: 99
timings:
load_rails: 1262
ruby-version: 2.4.1-p111
rss_kb: 198432
pss_kb: 136612
virtual: physical
architecture: amd64
operatingsystem: Ubuntu
memorysize: 15.59 GB
kernelversion: 4.10.0
physicalprocessorcount: 1
processor0: Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz
rss_kb_9877: 327892
pss_kb_9877: 263671
rss_kb_9946: 325468
pss_kb_9946: 261671
rss_kb_10153: 326456
pss_kb_10153: 262657
```
After
```
Your Results: (note for timings- percentile is first, duration is second
in millisecs)
---
topic_admin:
50: 18
75: 18
90: 20
99: 28
topic:
50: 41
75: 42
90: 46
99: 49
timings:
load_rails: 1201
ruby-version: 2.4.1-p111
rss_kb: 187936
pss_kb: 123596
virtual: physical
architecture: amd64
operatingsystem: Ubuntu
memorysize: 15.59 GB
kernelversion: 4.10.0
physicalprocessorcount: 1
processor0: Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz
rss_kb_26478: 342360
pss_kb_26478: 276696
rss_kb_26547: 340368
pss_kb_26547: 275930
rss_kb_26747: 338964
pss_kb_26747: 274466
```
2017-09-08 14:07:24 +08:00
Sam
b3fd091379
annotate stuff
2017-08-29 10:48:22 -04:00
Guo Xiang Tan
29a9e0c4d2
Fix the build.
2017-08-22 15:52:24 +09:00
Guo Xiang Tan
bc3e43b496
FIX: Topic timers being incorrectly trashed!
.
...
https://meta.discourse.org/t/temporary-timed-closure-of-topic-not-re-opening-topic/67877
2017-08-22 15:23:09 +09:00
Guo Xiang Tan
87994a86ce
FIX: Don't set topic timer for close topics when changing category.
...
https://meta.discourse.org/t/moving-a-topic-after-closure-reopens-topic/67659/4
2017-08-22 12:54:34 +09:00
Erick Guan
1146772deb
Fix: unlinked topic search model ( #5044 )
2017-08-15 11:46:57 -04:00
Neil Lalonde
94d8f6d734
FIX: digest emails should not include posts that are still in the edit grace period
2017-08-14 12:47:33 -04:00
Guo Xiang Tan
5012d46cbd
Add rubocop to our build. ( #5004 )
2017-07-28 10:20:09 +09:00
Guo Xiang Tan
b59dfb86f4
UX: Include group name in email when group is invited to a PM.
...
https://meta.discourse.org/t/xyz-invited-you-to-a-message-but-really-invited-a-group-im-in/65996
2017-07-26 15:51:44 +09:00
Leo McArdle
d0b027d88d
FEATURE: phase 1 of supporting multiple email addresses
2017-07-20 11:22:27 +09:00
Arpit Jalan
76981605fa
FIX: don't raise error when inviting existing user to private topic via email
...
https://meta.discourse.org/t/inviting-existing-user-to-a-private-topic-message-via-email-shows-error-message/65994
2017-07-12 21:51:21 +05:30
Neil Lalonde
fcb2f68565
FIX: duplicate topics and posts in summary email because user has muted tags and topics contain multiple tags
2017-07-04 16:12:10 -04:00
Neil Lalonde
3964929c75
FIX: summary email excludes all untagged topics if user has muted some tags
2017-07-04 12:52:25 -04:00
Guo Xiang Tan
4c98bd9d5f
FIX: Can't update status_type of topic timers.
...
https://meta.discourse.org/t/topic-timers-internal-error-500/64805
2017-06-21 15:31:15 +09:00
Guo Xiang Tan
dd85c1098b
Remove comment that is no longer valid.
2017-06-21 14:10:30 +09:00
Guo Xiang Tan
2fdf9068eb
FIX: Create notification for group users when group has been invited.
...
https://meta.discourse.org/t/inviting-a-group-to-a-message-does-not-trigger-a-notification-mail/50509
2017-06-14 14:53:49 +09:00
Guo Xiang Tan
b0dd05fdc6
FIX: Inherit topic auto close when changing topic's category.
2017-05-31 17:40:21 +09:00
Sam
0aed2533ac
Revert unread optimisation, has too many edge cases
2017-05-26 09:04:13 -04:00
Sam
29fac1ac18
PERF: improve performance of unread queries
...
Figuring out what unread topics a user has is a very expensive
operation over time.
Users can easily accumulate 10s of thousands of tracking state rows
(1 for every topic they ever visit)
When figuring out what a user has that is unread we need to join
the tracking state records to the topic table. This can very quickly
lead to cases where you need to scan through the entire topic table.
This commit optimises it so we always keep track of the "first" date
a user has unread topics. Then we can easily filter out all earlier
topics from the join.
We use pg functions, instead of nested queries here to assist the
planner.
2017-05-25 15:07:30 -04:00
Guo Xiang Tan
08c36fa968
REFACTOR: Clean up some code associated with topic timers.
2017-05-22 18:10:29 +08:00
Sam
4424fd81b8
add a tiny bit of extra protection
2017-05-16 16:08:42 -04:00
Sam
4b449914b8
FIX: admins could never remove self from messages
2017-05-16 16:06:24 -04:00
Neil Lalonde
7821400141
FEATURE: staff can set a timer to remind them about a topic
2017-05-16 14:49:50 -04:00
Sam
44d7fe89ed
FIX: unescape emoji in pretty title
...
This makes emoji in title consistent, it is later escaped back when needed
2017-05-15 10:28:05 -04:00
Guo Xiang Tan
8eecd42856
FIX: Delete topic timer after completion.
2017-05-12 10:28:51 +08:00
Neil Lalonde
55b61e9bea
rename topic_status_update to topic_timer
2017-05-11 18:27:53 -04:00
Arpit Jalan
77a8cae094
FIX: rescue specific errors on invite failure
2017-05-02 15:13:33 +05:30
Guo Xiang Tan
59b906ab0d
FEATURE: Disable minimum post length check when in PM with non human users.
...
https://meta.discourse.org/t/discourse-narrative-bot-beta-feedback/58621/65?u=tgxworld
2017-04-27 16:00:22 +08:00
Robin Ward
bf9c4a7828
FEATURE: secure_email site setting to prevent data going out in email
2017-04-26 13:05:56 -04:00
Arpit Jalan
aeead60036
FIX: make TopicEmbed trashable
2017-04-25 18:40:39 +05:30
Guo Xiang Tan
04016f0dec
Support Ruby 2.4.
2017-04-15 12:29:00 +08:00
Neil Lalonde
8395569b05
FIX: Topic.similar_to error when Search is not loaded
2017-04-12 14:48:30 -04:00
Guo Xiang Tan
ae1d6e7421
Fix incorrect method usage.
2017-04-07 15:52:08 +08:00
Guo Xiang Tan
71501feaf3
Improve validation for TopicStatusUpdate
.
2017-04-07 15:32:00 +08:00
Guo Xiang Tan
f4758a4c4d
FEATURE: Allow admins to schedule a topic to be published in the future.
2017-04-04 11:16:05 +08:00
Arpit Jalan
2418daeb63
FIX: check if post exists in topic
2017-03-31 18:02:14 +05:30
Guo Xiang Tan
34b7bee568
FEATURE: Allow admin to auto reopen at topic.
...
* This commit also introduces a `TopicStatusUpdate`
model to support other forms of deferred topic
status update in the future.
2017-03-31 11:14:18 +08:00
Guo Xiang Tan
e8fc8f0bb6
Update annotations.
2017-03-22 14:26:53 +08:00
Neil Lalonde
ad8a579c79
UX: banner enabled/disabled posts should be small posts, not full-size posts
2017-03-16 17:31:37 -04:00
Régis Hanol
fdf749770b
remove unecessary '.limit(1)'
2017-02-24 12:56:13 +01:00
Neil Lalonde
476ae57af3
FEATURE: primary group class on avatars in topic list
2017-02-20 15:55:10 -05:00
Robin Ward
b251d11518
FIX: If you make a new banner, clear the old dismissed values
2017-02-03 15:07:38 -05:00
Arpit Jalan
6b8691ecea
Merge pull request #4685 from techAPJ/approve-users-invite-fix
...
FIX: allow existing users to be invited to topic/message when must_approve_users is enabled
2017-02-03 13:22:18 +05:30
Arpit Jalan
dc2171960b
FIX: allow existing users to be invited to topic/message when must_approve_users is enabled
2017-02-03 13:01:23 +05:30
Neil Lalonde
b91cb92af0
FIX: reports for time to first reply and topics without replies were counting whispers and moderator actions
2017-02-02 17:27:41 -05:00
Guo Xiang Tan
3d21ccd4a5
FIX: Add validation to disallow censored words in topic title.
2017-01-09 16:55:41 +08:00
Sam
2f6a4cc6de
remove UserActionObserver, replace with after_save and service
...
interestingly there was some left over dead code from when stars
existed in the topic_users table
2016-12-22 16:46:53 +11:00
Sam
0a78ae739d
Remove SearchObserver, aim is to remove all observers
...
rails-observers gem is mostly unmaintained and is a pain to carry forward
new implementation contains significantly less magic as a bonus
2016-12-22 13:13:14 +11:00
Neil Lalonde
74956694e5
If summary email finds no topics, show topics more than 1 day old from new users
2016-12-19 14:54:08 -05:00
Neil Lalonde
923cf73c6e
Topic Featured Links: move data from custom fields to topics and categories tables. Invert behaviour of topic_featured_link_allowed checkbox. Fix a bug with invalid topic records due to changing that category checkbox.
2016-12-19 14:54:07 -05:00
Guo Xiang Tan
78553151ea
Update annotations.
2016-12-12 17:00:30 +08:00
Erick Guan
52763f5115
FEATURE: Allow posting a link with topics
2016-12-05 17:20:54 +01:00
Sam
c04d4171ff
FIX: whisper no longer experimental
...
- Regular users are not notified of whispers
- Regular users no longer have "stuck" topics in unread
- Additional tracking for staff highest post number
- Remove a bunch of unused columns in topics table
2016-12-02 17:03:31 +11:00
Neil Lalonde
45f368126f
FEATURE: New summary/digest email design
2016-11-18 14:03:42 -05:00
Neil Lalonde
6356c0555c
FIX: topic's best post shouldn't be deleted by the author
2016-08-19 13:19:08 -04:00
Neil Lalonde
7195a103ab
FEATURE: digests choose topics you're watching or tracking first
2016-08-18 17:16:52 -04:00
Neil Lalonde
5849c345cc
FEATURE: digest emails will try to choose topics from your tracked and watched categories first
2016-08-15 16:16:04 -04:00
Neil Lalonde
17b51bb465
FIX: topics tagged with muted tags should not be included in digest emails
2016-08-08 15:14:25 -04:00
Sam
4161ee210a
FEATURE: improved tag and category watching and tracking
...
- present tags watched on the user prefs page
- automatically watch or unwatch old topics based on watch status
New watching and tracking logic takes care of handling old topics
(either with or without read state)
When you watch a topic you now watch historically
Also removes confusing warnings from user.
2016-07-08 12:58:30 +10:00
Robin Ward
2005565c9c
Server side code for Watching First Post Only
2016-07-07 11:21:50 -04:00
Neil Lalonde
487c20959c
FEATURE: max topics/replies per day for new users now starts counting from the first post, not signup date
2016-06-20 16:55:11 -04:00
Guo Xiang Tan
b3a8f7d369
Merge pull request #4277 from tgxworld/fix_bug_when_post_creator_returns_nil
...
Fix bug when post creator returns nil
2016-06-20 18:15:52 +08:00
Guo Xiang Tan
9a0797204a
FIX: Add check to ensure post has been created.
2016-06-20 15:51:26 +08:00
Sam
8866169879
FEATURE: can invite/revoke groups on private messages
2016-06-20 16:29:27 +10:00
Guo Xiang Tan
e72684f9dc
Stop having things silently fail.
2016-06-20 14:27:15 +08:00
Arpit Jalan
4253141700
FEATURE: custom email message for topic invites
2016-06-07 23:43:15 +05:30
Régis Hanol
26f25fc0d9
FIX: most liked queries were leaking info in user summaries
2016-05-30 19:48:46 +02:00
Neil Lalonde
f13470b96b
Use db schema for tags instead of plugin store and custom fields
2016-05-26 14:29:48 -04:00
Arpit Jalan
82daf93eb3
Merge pull request #4206 from techAPJ/convert-topic
...
FEATURE: move a topic from PM to regular topic or vice versa
2016-05-04 01:33:15 +05:30
Arpit Jalan
c069488560
FIX: moderator_action posts should be suppressed from digests
2016-05-03 16:43:21 +05:30
Arpit Jalan
acfb540952
FEATURE: move a topic from PM to regular topic or vice versa
2016-05-02 21:34:05 +05:30
Régis Hanol
e2928f78d2
FIX: don't show top links from private categories in user summary
2016-05-02 15:26:23 +02:00
Neil Lalonde
e5918c7d00
FEATURE: Merge tagging plugin into core
2016-04-27 11:58:53 -04:00
Nick Ivanter
bc6862d82d
FIX: make sure the best post is not the worst
...
By default Postgres returns NULLs first when sorting in a descending order. As a result, best_post() would often actually return the "worst" post of the topic. And it was then included in digest emails in "popular posts".
2016-04-19 17:44:36 +03:00
Arpit Jalan
50fce0998f
FEATURE: allow moderators to see offical warnings
2016-04-11 18:44:19 +05:30
Arpit Jalan
64feffbb60
FEATURE: site setting for suppressing categories from digest email
2016-03-26 01:06:03 +05:30
Neil Lalonde
213950e4cf
FEATURE: add option to include topics from trust level 0 users in digest emails
2016-03-17 17:35:23 -04:00
Arpit Jalan
8349669f8e
streamline topic_invite locale
2016-03-02 00:39:17 +05:30
Arpit Jalan
41a0f9b7fd
UX: better error message when inviting user to a topic
2016-03-02 00:30:31 +05:30
Joe Buhlig
770d38d025
Add topic status_update change event
2016-02-24 08:59:06 -06:00
Sam
32c681c96b
annotate models
2016-02-23 10:33:53 +11:00
Sam
665fc44741
FIX: message_archived? not set correctly for groups
2016-01-19 18:35:46 +11:00
Régis Hanol
3083657358
FEATURE: better email in support
...
FEATURE: new incoming_email model
FEATURE: infinite scrolling in emails admin
FEATURE: new 'emails:import' rake task
2016-01-19 00:57:55 +01:00
Régis Hanol
737c606710
FIX: 'cancel_scheduled_job' wasn't working due to sidekiq upgrade
2016-01-13 09:08:26 +01:00
Régis Hanol
e2744fc19f
FIX: adding the 'contains_messages' column back
2016-01-12 12:06:51 +01:00
Régis Hanol
8049dfdfda
CLEANUP: remove 'contains_messages' leftover 💩
2016-01-12 11:29:26 +01:00
Régis Hanol
98c0fac461
FEATURE: add small action post when adding/removing users in messages
2016-01-11 12:42:06 +01:00
Sam
a4587b18f5
FEATURE: allow users to archive messages from message page
2015-12-30 13:26:39 +11:00
Sam
03ea0bfe22
FEATURE: allow users to archive messages
...
Messages are now in 3 buckets
- Inbox for all new messages
- Sent for all sent messages
- Archive for all messages you are done with
You can select messages from your Inbox or Sent and move them to your Archive,
you can move messages out of your Archive similarly
Similar concept applied to group messages, except that archiving and unarchiving
will apply to all group members
2015-12-23 11:09:30 +11:00
Régis Hanol
15c229195f
FEATURE: notification_level on a per-group basis
2015-12-14 23:17:09 +01:00
Arpit Jalan
e52852dd0f
FIX: Autoclose message was not correct when immediate
...
FEATURE: Warn when setting auto-close for right now
2015-12-08 18:16:48 +05:30
Régis Hanol
ba0df7e4cd
rename 'is_support' to 'contains_messages'
2015-11-26 18:40:54 +01:00
Régis Hanol
e8a6ff4808
prevent users from ever changing the category of a topic in a support category
2015-11-26 18:31:24 +01:00
Sam Saffron
6dd4bc7d57
FEATURE: support group owner, capable of controlling group membership
...
Group owners are regular users that can add or remove users to a group
The Admin UX allows admins to appoint group owners
The public group UX will display group owners first and unlock UI to
add and remove members
Group owners can only be appointed on non automatic groups
Group owners may not appoint another group owner
2015-11-10 00:56:57 +11:00
Régis Hanol
ff0c12efa2
Merge pull request #3878 from gdpelican/optimize-all-allowed-users
...
Optimize all_allowed_users query
2015-11-02 17:06:36 +01:00
Arpit Jalan
9f8d6b6088
FIX: allow exisiting users to be invited to topic/message when enable_local_logins is disabled
2015-10-30 11:28:05 +05:30
James Kiesel
2fc52e26a6
Optimize all_allowed_users query
2015-10-29 19:39:30 +02:00
Guo Xiang Tan
600e42c2ba
FIX: Race condition when wrapping PostCreator#create
in a transaction.
2015-10-15 14:42:40 +08:00
Sam
181ab89485
PERF: introduce fragment caches in site serializer
2015-09-28 16:50:24 +10:00
Robin Ward
a1877e8292
FIX: max_topics_per_day
was not working
2015-09-24 13:52:45 -04:00
Sam
ffb8cb8cac
FEATURE: remove dependency of Redcarpet
...
PERF: cache fancy_title in topics table
New pure ruby implementation is far more flexible and easier to amend.
2015-09-24 13:37:53 +10:00
Sam
613761d1cd
FEATURE: upgrade to Rails 4.2.4
2015-09-23 15:24:30 +10:00
Régis Hanol
4f7140fb32
FIX: properly filter whispers in user stream
2015-09-22 00:50:52 +02:00
Sam
c1ecd6f4ce
update annotations
2015-09-18 10:41:10 +10:00
Neil Lalonde
30999de3e2
add support for reports of 'time to first response' from a set of users
2015-09-14 13:36:54 -04:00
Robin Ward
5af0f5f80e
FEATURE: Whisper posts
2015-09-11 14:05:21 -04:00
Robin Ward
d1c69189f3
FEATURE: Can edit category/host relationships for embedding
2015-08-20 15:56:04 -04:00
Régis Hanol
9ae9aed010
FIX: change **default** notification state when a topic is recategorized within 5 days of creation
2015-08-19 22:40:20 +02:00
Régis Hanol
6669a2d94d
FEATURE: per-topic unsubscribe option in emails
2015-08-12 23:00:16 +02:00
Régis Hanol
faf4f44776
FEATURE: make pin expiration mandatory
2015-07-29 16:34:21 +02:00
Robin Ward
bb93a345eb
UX: Use smaller messages for moderator actions.
2015-07-27 10:09:21 -04:00
Sam
2876725e1b
REFACTOR: remove hacky search from discovery
2015-07-27 16:47:06 +10:00
Neil Lalonde
8e76e6e4b7
topics with no reply data were strings
2015-06-30 15:42:38 -04:00
Neil Lalonde
93d7edb810
FIX: reports of topics with no response and time to first response should not include replies to your own topic
2015-06-25 18:45:11 -04:00
Robin Ward
6422d5efbd
Use the same component for similar topics as search results.
2015-06-24 15:08:22 -04:00
Régis Hanol
f18098fd9b
FEATURE: category dropdown in admin reports
2015-06-24 15:19:39 +02:00
Régis Hanol
b25a16ee3e
FEATURE: 2 new reports: time to first response, topics with no response
...
FIX: relativeAgeMediumSpan was off by 1
REFACTOR: extracted decimalAdjust & round functions from the poll plugin
2015-06-22 19:46:51 +02:00
Sam
41e427bd2e
Work in progress, full page search
2015-06-22 18:09:08 +10:00
Régis Hanol
90eca69e0a
FEATURE: add a link to the topic in the banner for staff members
2015-06-09 19:31:14 +02:00
Robin Ward
7b6d6b76eb
FEATURE: Multiple embeddable hosts
...
- Also refactors two site settings components into one, with tests
2015-06-09 13:25:43 -04:00
Neil Lalonde
ea8cf1a208
FIX: topic auto-close uses the client's time zone
2015-05-27 18:01:46 -04:00
Arpit Jalan
4324a157e0
FIX: rate limit topic invitations
2015-05-13 14:44:37 +05:30
Erick Guan
a48dd1cc28
store the slug as the title is, only sanitize the slug
...
and prettify code
2015-05-05 18:33:16 +08:00
Erick Guan
b772ff6e13
FEATURE: add slug geneartion options
2015-05-05 18:08:30 +08:00
Sam
803feefd54
MessageBus handles readonly redis now, no need to wrap it
2015-05-04 12:21:00 +10:00
Neil Lalonde
1b250f1e01
FIX: crawler pages and RSS had broken links for sites deployed to a subfolder with relative_url_root
2015-04-30 12:46:26 -04:00
Robin Ward
8c930c97e0
If there are pending posts in a topic, display a message at the bottom
2015-04-27 15:55:10 -04:00
Robin Ward
5b3f99aa50
Don't blow up if Redis switches to READONLY
2015-04-24 14:37:16 -04:00
Tan Le
9fbc763902
Replace Hash#keys.each with Hash#each_key for some perf boost
2015-04-18 21:53:53 +10:00
Arpit Jalan
e8dd5592c6
FEATURE: support inviting existing users to topic and message when SSO is enabled
2015-04-05 14:31:35 +05:30
Arpit Jalan
8c2d7dcaac
FEATURE: invite existing user to a topic
2015-04-03 15:00:04 +05:30
Sam
5aa1272f05
clean up first day user definition and object model
2015-03-26 16:48:36 +11:00
Régis Hanol
c8631a7a8b
FIX: auto-message shouldn't generate notifications
2015-03-11 19:07:17 +01:00
Robin Ward
c4fa75918b
FIX: If a category of a topic changed, watching/tracking didn't kick in
2015-03-04 13:39:50 -05:00
Régis Hanol
1a070b16e4
FIX: use the 'post edit time limit' for topics too
2015-02-25 20:53:21 +01:00
Sam
47aa8f3f97
Merge pull request #3197 from riking/rate-limiter
...
FIX: Don't expire ratelimits at midnight server time
2015-02-23 16:52:25 +11:00
Régis Hanol
3cad4824d7
FEATURE: allow moderators to see flagged private messages
2015-02-16 13:03:04 +01:00
riking
3c035dce7c
FIX: Don't expire ratelimits at midnight server time
2015-02-10 22:45:46 -08:00
riking
83b51875bb
Use html_escape method instead of gsub
2015-02-09 15:03:17 -08:00
Arpit Jalan
21e94859a9
Do not allow TL0 users topics in email digest
2015-01-29 21:10:26 +05:30
Robin Ward
d43944b3ed
Extensibility for tracking changes to a topic
2015-01-28 13:37:06 -05:00
Sam
df7def6628
annotate
2015-01-08 11:18:43 +11:00
Sam
efc717c14a
FEATURE: remove star concept from Discourse
2015-01-07 13:43:27 +11:00
Sam
0396fd66f6
FEATURE: sorting by op likes shows the op likes count
2015-01-05 17:39:49 +11:00
Erick Guan
97b3914b70
FIX: use utc time when generate reports; set boundary
2014-12-30 22:43:03 +08:00
Régis Hanol
cd170ca548
FEATURE: auto-close topics based on community flags
2014-12-05 19:37:43 +01:00
Régis Hanol
10b5032188
FIX: auto-closing attribution when a TL4 user auto-closes a topic
2014-11-26 19:51:07 +01:00
Sam
6bed4e1bf0
add allowed_ips to api_keys
...
update annotations
2014-11-20 14:53:15 +11:00
Sam
c7bc692f40
PERF: stop querying banner topic on every page hit
2014-11-14 15:39:17 +11:00
Robin Ward
fde5e739c9
Work in progress (up till about?)
2014-11-05 12:39:25 -05:00
Sam
2251877332
FIX: "Dismiss Posts" corrupting read state
...
REFACTOR: seen_post_count was a bad name, renamed to highest_seen_post_number
2014-10-31 09:40:35 +11:00
Régis Hanol
7e94f9d6f9
FIX: insert different message when auto-closing a topic based on the last post
2014-10-29 21:26:32 +01:00
Régis Hanol
e7f251c105
LOTS of changes to properly handle post/topic revisions
...
FIX: history revision can now properly be hidden
FIX: PostRevision serializer is now entirely dynamic to properly handle
hidden revisions
FIX: default history modal to "side by side" view on mobile
FIX: properly hiden which revision has been hidden
UX: inline category/user/wiki/post_type changes with the revision
details
FEATURE: new '/posts/:post_id/revisions/latest' endpoint to retrieve
latest revision
UX: do not show the hide/show revision button on mobile (no room for
them)
UX: remove CSS transitions on the buttons in the history modal
FIX: PostRevisor now handles all the changes that might create new
revisions
FIX: PostRevision.ensure_consistency! was wrong due to off by 1
mistake...
refactored topic's callbacks for better readability
extracted 'PostRevisionGuardian'
2014-10-27 22:06:43 +01:00
Régis Hanol
5754e8dd0f
FEATURE: auto-close topics based on last post
2014-10-10 18:21:44 +02:00
Régis Hanol
de76b512c1
fix most deprecations in the specs (still some left)
2014-09-25 17:44:48 +02:00
Sam
0f585bcdbe
FIX: PM should never be allowed to have a category
...
FIX: TL3 should not be allowed to muck with PM titles
2014-09-11 17:39:34 +10:00
Robin Ward
334e21a03a
Revert "Revert "FEATURE: Can create warnings for users via PM""
...
This reverts commit 1c7559380c
.
2014-09-08 11:11:56 -04:00
Robin Ward
1c7559380c
Revert "FEATURE: Can create warnings for users via PM"
...
This reverts commit b0bfc1f93f
.
2014-09-08 10:38:59 -04:00
Robin Ward
b0bfc1f93f
FEATURE: Can create warnings for users via PM
2014-09-08 10:27:06 -04:00
Sam
414c6d191f
FIX: remove nullable dates post upgrade to Rails 4
2014-08-27 15:19:25 +10:00
Neil Lalonde
96eecf18ef
FIX: moving a post to a topic with a deleted post should use correct post_number. Was getting unique index violation on (topic_id, post_number).
2014-08-20 12:28:53 -04:00
Akshay
7ef61144e7
Avoid using to_s when performing String Interpolation
2014-08-14 23:55:27 +05:30
Neil Lalonde
e40e9351f6
FIX: don't allow same category name with different case
2014-08-12 11:40:33 -04:00
Sam
c1cbf1b269
PERF: new table used for title similarity search
2014-08-08 15:50:26 +10:00
Sam
16b7004767
PERF: optimise and improve topic similarity search
...
FIX: shows up similarity search with blank results
2014-08-08 12:12:53 +10:00
Neil Lalonde
b368667703
FIX: don't validate topic title if it isn't changing. topic stats were failing to update, causing necro topic warnings and other problems.
2014-08-01 17:30:07 -04:00
Régis Hanol
44ba74789b
FIX: actually retrieve the first 2 posts in a conversation about a flag
2014-07-28 22:54:03 +02:00
Régis Hanol
bddffa7f9a
FEATURE: flag dispositions normalization
...
All flags should end up in one of the three dispositions
- Agree
- Disagree
- Defer
In the administration area, the *active* flags section displays 4 buttons
- Agree (hide post + send PM)
- Disagree
- Defer
- Delete
Clicking "Delete" will open a modal that offer to
- Delete Post & Defer Flags
- Delete Post & Agree with Flags
- Delete Spammer (if available)
When the flag has a list associated, the list will now display 1
response and 1 reply and a "show more..." link if there are more in the
conversation. Replying to the conversation will NOT give a disposition.
Moderators must click the buttons that does that.
If someone clicks one buttons, this will add a default moderator message
from that moderator saying what happened.
The *old* flags section now displays the proper dispositions and is
super duper fast (no more N+9999 queries).
FIX: the old list includes deleted topics
FIX: the lists now properly display the topic states (deleted, closed,
archived, hidden, PM)
FIX: flagging a topic that you've already flagged the first post
2014-07-28 19:28:07 +02:00
Robin Ward
fb8dda7f42
FIX: We should use category_id
instead of category_name
to perform
...
operations, now that the subcategory names are not unique.
2014-07-16 15:40:35 -04:00
Sam
2d0def9940
FIX: First Quote badge bust
...
Feature: track quoted posts
2014-07-15 17:47:24 +10:00
Jeff Atwood
49dbded250
remove title_sanitize setting
2014-07-14 00:18:02 -07:00
Neil Lalonde
7d5d5862c1
Import optimizations for topic creation: Prevent queuing of most jobs when importing posts and topics. Only do some recalculations at the end of the import.
2014-07-03 16:24:47 -04:00
Régis Hanol
f733237075
TRIVIAL: remove default 'Read more' link in the banner
2014-06-20 19:05:26 +02:00
Régis Hanol
00117c18c3
FEATURE: dismissable banner topic
2014-06-18 20:05:19 +02:00
Régis Hanol
30611c343c
ensures only one banner topic at all time
2014-06-18 20:05:18 +02:00
Sam
b1d5f4440b
Annotate models
2014-05-28 12:30:57 +10:00
Régis Hanol
9125453628
FEATURE: add the first 3 participants in a private message
2014-05-12 09:32:49 +02:00
Sam
3f07c1d0a1
Backend support for group invites
2014-05-09 18:22:35 +10:00
Sam
a2e2d0e886
Merge pull request #2316 from mutiny/refactor-where-first
...
Refactor `where(...).first` to `find_by(...)`
2014-05-08 09:10:45 +10:00
Régis Hanol
21e8ae0eca
BUGFIX: the /top page now shows the first non-empty period
2014-05-07 19:04:39 +02: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
Benjamin Kampmann
0cf07d41ae
Move Concern from lib into app/models. refs #2279
2014-04-29 19:26:43 +02:00
Benjamin Kampmann
e502122c51
Add Custom Fields on Topics
2014-04-29 19:26:42 +02:00
Sam
e88e43bfb6
Merge pull request #2279 from fantasticfears/concern
...
move concerns to the model/concerns
2014-04-28 09:48:33 +10:00
Sam
759f4b4fe9
BUGFIX: category name is reserved in multisite
2014-04-24 09:19:59 +10:00
Erick Guan
6d45f71254
move concerns to the model/concerns
2014-04-19 12:00:40 +08:00
Régis Hanol
454f11e597
FEATURE: new title_sanitize site setting
2014-04-18 21:01:21 +02:00
Régis Hanol
b014d66b65
Merge pull request #2277 from vikhyat/fix-title-html
...
Fix HTML tags in topic titles
2014-04-18 11:37:33 +02:00
Vikhyat Korrapati
25a080a8e1
Fix HTML tags in topic titles.
...
We no longer sanitize titles before saving to the database since it
would cause problems like HTML entities showing up when you try to edit
a topic title. It isn't even really necessary since we only render
fancy_title directly and never title.
The escaping logic used here is the same that is used both in lodash and
onebox. See:
1. https://github.com/discourse/onebox/pull/190/files
2. https://github.com/lodash/lodash/blob/2.4.1/dist/lodash.compat.js#L6194
2014-04-18 10:47:00 +05:30
Robin Ward
64faee0935
Break down new topic counts by category if a digest contains many.
2014-04-17 16:42:40 -04:00
Robin Ward
fd4007eefc
FIX: Don't sort the new topics by score since the Top logic is already
...
sorting them by score.
2014-04-17 15:43:24 -04:00
Robin Ward
564b1d86b0
Digest should exclude muted topics.
2014-04-17 15:27:11 -04:00
Robin Ward
89aa2380c6
Use "Top" logic for digest emails. Leave out muted categories.
2014-04-17 15:22:19 -04:00
Sam
862a6696c0
Correct annotations
...
allow longer usernames (up to 60)
2014-04-15 15:53:48 +10:00
Robin Ward
a49b38ac35
TRIVIAL: Remove irrelevant comment :)
2014-04-14 21:00:52 -04:00
Robin Ward
b909e26fa4
Also use the body of the post when looking for similar topics
2014-04-14 15:48:58 -04:00
Robin Ward
0d238db43c
Exclude category definition topics from similar search
2014-04-14 15:21:05 -04:00
Sam
b9d4edd91a
FEATURE: display unpinned state, allow unpinning by clicking on pin
2014-04-10 10:59:02 +10:00
Régis Hanol
6373de550f
update annotations
2014-04-08 17:35:44 +02:00
Sam
0372b81d11
FEATURE: allow moderators to globally pin topics
2014-04-07 16:38:51 +10:00
Robin Ward
f5c7ccb4e6
New field: Whether or not to include an expandable first post for
...
embedded content.
2014-04-02 10:26:46 -04:00
Godfrey Chan
b68dbe081c
Remove deprecated finder method calls
2014-03-27 00:00:23 -07:00
Sam
090f5c99c2
FEATURE: Live update edits
2014-03-24 12:19:08 +11:00
Sam
5c148faeb9
annotations were out of date
2014-03-20 15:35:51 +11:00
Sam
b19400726f
BUGFIX/FEATURE: store topic changes in post revisions
...
History + edit notifications for title and category changes
2014-03-07 19:00:36 +11:00
Régis Hanol
ac99947979
BUGFIX: topic specs were dependent on Time.now
...
which would fail when DST was around
2014-03-06 12:44:52 +01:00
Sam
560b5356d5
Revert "Use symbols instead of strings in order clause"
...
Breaks 1.9.3 compat
This reverts commit 09a2d9e12c
.
2014-02-28 15:08:50 +11:00
Nick Borromeo
09a2d9e12c
Use symbols instead of strings in order clause
...
This simply changes the strings in the order clauses in the model. The
reason of the change is because the SQL generated when using symbols
automatically name spaces the column with the table name.
Topic.order(:title).to_sql
=> SELECT "topics".* FROM "topics" ORDER BY "topics"."title" ASC
This also changes the scopes using lamba to use stabby lambas for
consistency with other scopes.
2014-02-26 22:43:03 -08:00
Sam
9551f4aeea
PERF: calculate scores for topics/posts faster
...
Only look at topics that changed in last day for 15 minuted schedule
Do a full recalc weekly, just in case
2014-02-27 11:45:40 +11:00
Stephan Kaag
f12925887c
Drop Rails3 support
2014-02-17 19:42:08 +01:00
Sam
be560d4eb6
Update annotations
2014-02-07 11:07:52 +11:00
Robin Ward
4981525047
REFACTOR: Fixes poor class hierarchy for listing topics
...
- Upgrades Ember to latest
- Fixes a bunch of bugs with page titles and missing "active" states
2014-01-18 19:26:24 +01:00
Neil Lalonde
2a33a35566
Staff can create uncategorized topics even if allow_uncategorized_topics is false
2014-01-15 15:58:29 -05:00
Neil Lalonde
52580f09af
Rename favorite to starred everywhere
2014-01-10 14:54:19 -05:00
Régis Hanol
567d2bd23c
add top page
2013-12-24 00:50:36 +01:00
Neil Lalonde
c0e1ef75f6
Don't auto-close a topic too soon in PeriodicalUpdates
2013-12-18 14:09:49 -05:00
Sam
96fdf72d5e
rails master compatability
2013-12-13 17:04:45 +11:00
Régis Hanol
06dd7ffe3c
better revision history
2013-12-12 03:41:34 +01:00
Neil Lalonde
9a24d2651d
Allow category to auto-close topics in X hours instead of days. FIX: the system message that says a topic was automatically closed was only counting in days.
2013-12-06 16:39:35 -05:00
Sam
2db3cfb16b
annotate models
2013-12-05 17:40:35 +11:00
Neil Lalonde
abed146cc7
FIX: Category description topics shouldn't auto-close
2013-12-04 10:31:25 -05:00
Neil Lalonde
a9ab98ef9e
Auto-close time can be entered in 3 ways, so a topic can close at any time
2013-11-27 09:52:35 -05:00
Robin Ward
4ce81e1b01
Rename "Best Of" to "Summary"
2013-11-18 12:48:26 -05:00
Robin Ward
7207cef7aa
TopicQuery cleanup in advance of custom sorting:
...
- Move SQL method constants into a module
- Removed unused count methods
- Moved methods that don't return a TopicList into Topic
- Replaced some confusing method signatures
2013-11-13 12:26:32 -05:00
Sam
d1d661f6e1
add logic that auto closes any topics that missed the queued job (due to redis flush or whatever)
2013-11-11 10:52:44 +11:00
Robin Ward
948a545cb1
Category descriptions should not appear in digests
2013-11-06 15:05:06 -05:00
Robin Ward
de30af9302
Support for inviting to a forum from a user's invite page.
2013-11-06 12:56:50 -05:00
Robin Ward
6063b52d6a
Support for choosing a destination category when splitting topics.
2013-10-29 15:30:06 -04: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
4929c5db71
FIX: when allow_uncategorized_topics was false, PMs can not be created
2013-10-25 09:33:39 +11:00
Sam
666264879c
change it so all topics MUST include a category, we store a special uncategorized category to compensate
...
this cleans up a bunch of internals and removes some settings
2013-10-24 12:08:02 +11:00
Sam
1ee49798b2
work in progress wide category list
2013-10-18 11:10:10 +11:00
Robin Ward
f8625b5510
Merge pull request #1495 from cored/refactor-topic-invite-by-email
...
Refactor: Topic model
2013-10-17 07:04:12 -07:00
Manoj
7c03076c2a
Refactored Topic#limit_topics_per_day to reduce code climate complexity
...
Extracted 1) #apply_per_day_rate_limit_for, method as generic
RateLimiter , 2) #limit_first_day_topics_per_day as a separate method,
3) Added User#added_a_day_ago?, 4) Fixed private methods indentation.
2013-10-16 14:58:18 +05:30
Sam
ad2ed5fe51
rate limits for topics and posts on first day
...
max_topics_in_first_day and max_replies_in_first_day
2013-10-10 10:32:03 +11:00
Rafael George
3a1e1e046b
Refactor: Topic#invite_by_email
...
Extract Topic#email_already_existas_for? and Topic#grant_permission_to_user
Fix failing spec due to missing variable in extracted method
2013-10-09 13:55:02 -04:00
Neil Lalonde
bccb37b6f3
When creating a topic, don't select a category by default when allow_uncategorized_topics is false. Also, added category validation on the server to enforce allow_uncategorized_topics.
2013-10-08 14:41:20 -04:00
Sam
5bf26ec34e
large refactor, ship a few columns from the user table into user_stats
2013-10-07 15:04:59 +11:00
Claus Strasburger
15a973fd45
Improved private message user removal, locale edit
...
replaced array iteration with findProperty (will be renamed and aliased to findBy with Ember 1.1)
added modal dialog to verify
catched nil-error on topic.rb
2013-10-02 19:16:43 +02:00
Sam
5caa7a0e4d
improve performance of periodical update job, decrease frequency and shift it by a few minutes
2013-09-30 16:59:16 +10:00
Sam
32e3e3f382
update annotations
2013-09-06 17:38:50 +10:00
Einar Jonsson
23d8f5fec7
Replaced delegator methods with Forwardable def_delegator in Topic
2013-08-30 09:29:34 +00:00
Robin Ward
bbd79aafd1
Revert "Replaced delegator methods with Forwardable def_delegator in Topic"
...
This reverts commit 3ed037940f
.
2013-08-29 11:45:27 -04:00
Einar Jonsson
3ed037940f
Replaced delegator methods with Forwardable def_delegator in Topic
2013-08-28 11:25:57 +00:00
Einar Jonsson
b385cdcc34
Extracted featured_users functionality out of Topic.
...
* Created a TopicFeatureUsers model
* Topic#featured_user_ids and Topic#feature_topic_users now delegate to
* a TopicFeatureUsers instance to keep demeter happy.
2013-08-27 09:10:50 +00:00
Ben Hicks
b13796c35e
Refactoring the feature_topic_users method to improve
...
the code climate score.
2013-08-14 20:42:16 -05:00
Robin Ward
652169daf6
Include a list of more new topics in the digest emails at the bottom
2013-08-09 14:43:02 -04:00
Stephan Kaag
f99acebdaa
Rails 4 updates
2013-07-24 21:09:18 +02:00
Sam
ea7684fb32
Merge pull request #1226 from stephankaag/rails4_updates
...
Some Rails4 updates
2013-07-22 15:03:37 -07:00
Stephan Kaag
0e3b8fbb24
Remove some calls to all
. They are not required, and Rails4 raises warnings about them.
2013-07-22 20:44:11 +02:00
Stephan Kaag
b19f631b3a
Some Rails4 updates
2013-07-22 19:01:22 +02:00
Sam
31bb08bcdd
added an option to bypass auto tracking of topics on post creation
2013-07-22 15:07:20 +10:00
Sam
9e4b0df7ff
69 specs fail in rails 4 now ...not too bad
2013-07-22 15:07:20 +10:00
Sam
ecf17cfebb
work in progress, add fidelity to category group permissions (full, create posts, readonly)
2013-07-16 15:46:11 +10:00
Robin Ward
b7327942af
Add deleted_by
to Trashable
tables
2013-07-09 15:46:36 -04:00
Robin Ward
f9d1fcb169
Merge pull request #1140 from stephankaag/code_refactoring
...
Refactor code that raises deprecating warnings in Rails 4
2013-07-09 06:48:48 -07:00
Neil Lalonde
806bd98f99
Update category's topic_count immediately when trashing or recovering a topic; this ensures that a category can be deleted without waiting for the category_stats job to run.
2013-07-08 15:23:20 -04:00
Stephan Kaag
2abfd38aee
Refactor code that raises deprecating warnings in Rails 4
2013-07-08 18:35:11 +02:00
Sam
ca7c10df9a
Merge pull request #1139 from stephankaag/correct_image_url_rails4
...
No need to include all ActionView::Helpers in Topic
2013-07-03 23:29:43 -07:00
Neil Lalonde
2c8ed8414c
If an auto-closing topic is manually closed, remove the auto-close countdown
2013-07-03 16:54:41 -04:00
Stephan Kaag
7cc7116680
No need to include all ActionView::Helpers in Topic, we only need the sanitize helper.
...
This also fixes a bug in Rails 4 where image_url gets accidentally overridden.
2013-07-03 21:43:29 +02:00
Stephan Kaag
89b621d31a
Refactor update_all statements in order to prevent deprecation warnings in Rails 4
2013-07-02 18:36:47 +02:00
Sam
f6b850e7a4
allow skipping the validations on creation if its an api call AND skip_validations is specified
...
this allows wordpress plugin to post very very short titles or titles that would otherwise be disallowed
2013-07-02 12:23:19 +10:00
Sam
7681ba0c32
don't fail this query cause avg_time is 0
2013-06-30 01:30:47 +10:00
Sam
799b402778
fix horribly broken invite code, could lead to inviting the wrong person to a conversation
2013-06-19 10:31:19 +10:00
Sam
80c42753e1
fix up find as you type for the invite into PM function
...
allow mods to remove users from a PM
2013-06-18 17:17:01 +10:00
Robin Ward
3c7eb3a4e8
FIX: null dates crashed the client app. last_posted_at
was not updating properly on split topic.
2013-06-17 13:02:50 -04:00
Sam
e6e81efe85
correct information leak in page not found
2013-06-13 10:27:17 +10:00
Robin Ward
77b218a142
FIX: Do not suggest similar topics from secure categories you can't see.
2013-06-12 13:45:11 -04:00
Sam
1756f713d6
SECURITY HOLE, upgrade right away if you are using Secure Groups.
2013-06-08 23:52:06 +10:00
Neil Lalonde
169125e96d
Fix a case where a random topic with null slug will be rendered instead of 404
2013-06-07 14:30:26 -04:00
Neil Lalonde
a151bfc7ec
Store when a topic was first set to auto-close and report that amount of time when it closes. And do some refactoring.
2013-06-06 17:04:21 -04:00
Robin Ward
0b97ea6345
Better HTML emails, smarter email digests, new email section in admin with digest preview
2013-06-05 17:47:25 -04:00
Sam
870e59883b
secure the links on the topic pages, eliminated deleted topics as well.
2013-06-05 16:10:26 +10:00
Neil Lalonde
2465c9c724
Add min_private_message_title_length site setting so private messages can have short titles
2013-06-04 17:59:23 -04:00
Robin Ward
d23ef1d090
FIX: You could update a topic to have a title that's too short if the TextCleaner
...
removed extra characters. Additionally, updating the title will not return an error
message to the client app if the operation fails (rather than failing silently.)
2013-05-31 15:24:13 -04:00
DI2uNk
24e32092e7
Refactored two class methods into scopes (to achieve a better 'rails way')
...
Also added some tests to the methods
2013-05-30 21:21:31 +02:00
Chris Hunt
21a54567ff
Extract TopicStatusUpdate from Topic
2013-05-28 09:01:04 -07:00
Chris Hunt
54a798eb12
Add Topic#age_in_days for determining age of topic
2013-05-27 18:02:15 -07:00
Robin Ward
e1781240a6
Merge branch 'refactoring' of git://github.com/mattvanhorn/discourse
...
Conflicts:
lib/text_sentinel.rb
2013-05-27 10:42:20 -04:00
Robin Ward
a15910ad1e
Merge pull request #899 from chrishunt/chrishunt/extract-topic-posters-summary
...
Extract topic posters summary
2013-05-27 06:30:58 -07:00
Chris Hunt
6024529f81
Extract PostMover from Topic into its own class
2013-05-26 18:42:04 -07:00
Chris Hunt
b8fbac582e
Add Topic#url for determining url for a Topic
2013-05-25 17:44:32 -07:00
Chris Hunt
f2b5e20840
Add Topic#max_post_number to find max post number
2013-05-25 17:44:32 -07:00
Chris Hunt
c1841a6c89
Extract Topic#posters_summary
2013-05-24 15:33:45 -07:00
Matt Van Horn
e5e904aa4e
minor refactorings
2013-05-24 13:36:33 -07:00
Matt Van Horn
d7817cf314
extract TopicNotifier class from topic
2013-05-24 13:36:33 -07:00
Sam
ca2dee52db
moved comments to the bottom, they are way less intrusive there
2013-05-24 12:48:32 +10:00
Sam
2cd95bc649
lets try out annotations
2013-05-24 12:35:14 +10:00
Matt Van Horn
c4b5821ef8
Revert annotation and non-English I18n changes
2013-05-23 06:44:47 -07:00
Matt Van Horn
7271b90655
annotate topic model
2013-05-22 22:36:01 -07:00
Matt Van Horn
806255b3c4
refactor Topic validation
...
introduce a couple of custom validators
fix minor discrepancies in tests
copy I18n error message keys to default location
clean up validation invocation
move some responsibilities out of validator into class
2013-05-22 22:31:52 -07:00
Matt Van Horn
872995db57
refactor guardian class for clarity & correctness
...
introduce NullUser to avoid type-checking
DRY up code
reduce number of multiple returns
remove some redundant/impossible logic branches
add pending test for possible bug
add test & fix for ability to flag archived posts
add #secure_category? method to topic class
Fix bug that prevented flagging of archived topics
Rename NullUser to AnonymousUser
DRY up can_<action>? methods
Fix some ownership logic, and a test, for Guardian
2013-05-22 01:09:34 -07:00
Neil Lalonde
f3282e33a3
Add tabs to category create/edit modal. Categories can have a default auto-close setting that applies to all new topics created in the category. Add rspec-given and write some integration tests. Tests for topic auto-close with category default
2013-05-17 11:05:35 -04:00
Robin Ward
be234ce9b9
You can now 'move' the first post of a topic to another topic as a merge. In that
...
case, the first post is cloned instead of being deleted from the original topic.
2013-05-13 14:07:31 -04:00
Neil Lalonde
9828c87525
Topic Auto-Close: admins and mods can set a topic to automatically close after a number of days
2013-05-13 12:53:52 -04:00
Robin Ward
cf01c98d81
Experimental: Interface to Move Posts to an Existing Topic
2013-05-10 14:55:51 -04:00
Sam
5280b3a01b
more group progress, UI getting there, controller mostly done
...
changed it so notify moderators goes to the moderators group
allow admins to grant self moderation and revoke self moderation
2013-05-09 17:37:34 +10:00
Sam
e9fc272db7
remove acts_as_paranoid, use .trash! , .recover! and .with_deleted as needed
...
makes upgrading to rails 4 possible
2013-05-07 14:39:01 +10:00