Joffrey JAFFEUX
64336a8c75
Emoji 5.0 support
2017-06-05 14:06:23 +02:00
Guo Xiang Tan
ac6c1acbed
FIX: Groups that do not have any owners should not allow membership requests.
2017-06-05 10:02:37 +09:00
Guo Xiang Tan
af3dc4e537
FIX: Publish group's categories to user when adding user to group.
...
https://meta.discourse.org/t/joining-a-group-doesnt-take-effect-unless-the-browser-is-hard-refreshed/57357/11?u=tgxworld
2017-06-02 17:38:14 +09:00
Sam
a7fc93acac
FIX: post mover not clearing reply_to_user_id
2017-06-01 18:00:14 -04:00
Guo Xiang Tan
2ee144c27f
FEATURE: Add DiscourseEvent trigger when a user logs in.
...
* Also adds a event trigger when user logs in for the first time.
2017-06-01 17:44: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
aa24bcbcc9
correct annotation
2017-05-26 09:04:54 -04:00
Sam
0aed2533ac
Revert unread optimisation, has too many edge cases
2017-05-26 09:04:13 -04:00
Guo Xiang Tan
e57d2f5cb8
FIX: Don't do anything if avatar url returns an invalid status code.
2017-05-26 13:02:40 +08:00
Sam Saffron
7d59ff67b8
adjust qurey to include messages, once everything is read
...
then mark first_topic_unread_at to be current time
2017-05-25 18:40:32 -04:00
Robin Ward
39e1948174
FIX: If the error is 401 unauthorized or such, just do nothing
2017-05-25 15:42:05 -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
Robin Ward
0a08c18a14
FIX: Don't rate limit gravatar downloads
2017-05-24 13:54:26 -04:00
Robin Ward
cdbe027c1c
Refactor `FileHelper` to use keyword arguments.
2017-05-24 13:54:26 -04:00
Robin Ward
87ac758f05
FIX: Don't raise an error when the upload can't be retrieved
2017-05-24 13:54:26 -04:00
Guo Xiang Tan
08c36fa968
REFACTOR: Clean up some code associated with topic timers.
2017-05-22 18:10:29 +08:00
Guo Xiang Tan
604aaf8686
FIX: N+1 query in suggested topics list.
2017-05-22 18:05:38 +08:00
Robin Ward
ed4b2b6d8d
FIX: Don't incluide a trailing `<br>` in the bio excerpt
2017-05-18 16:40:07 -04:00
Régis Hanol
13e489b4ca
replace the upload type whitelist with a sanitizer
2017-05-18 12:13:13 +02:00
Arpit Jalan
8e5b0c79ae
FIX: allow images to be uploaded in wizard
2017-05-18 13:53:23 +05:30
Robin Ward
f8c503186e
FIX: If there's an error downloading, don't raise it
2017-05-17 12:38:18 -04:00
Sam
763f156d91
FIX: require re-activation if SSO changes email and updates it
2017-05-16 16:18:18 -04: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
e1dd543a93
FEATURE: allow users to select theme on single device
2017-05-15 12:48:16 -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
Sam
baf011cbf6
annotate models
2017-05-12 14:47:08 -04:00
Sam
e232f87cde
PERF: avoid query as admin
...
As admin no need to query categories over and over
2017-05-12 11:09:41 -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
Sam
52ae63d5d7
FIX: when searching PMs also search group PMs
...
Users belonging to a group could not search for PMs unless explicitly added
to the PM unless admin
2017-05-11 15:59:03 -04:00
Pat David
4bf8548dc5
Add embed class name setup for embeddable hosts
2017-05-11 15:16:16 -04:00
Neil Lalonde
1019bbda46
FEATURE: set a timer to delete a topic
2017-05-11 12:52:29 -04:00
Arpit Jalan
8c337ecf82
FIX: allow uploading of category logo and background
2017-05-11 12:48:54 +05:30
Régis Hanol
214939bb87
freeze array constants
2017-05-11 09:08:59 +02:00
Régis Hanol
9641d2413d
REFACTOR: upload workflow creation into UploadCreator
...
- Automatically convert large-ish PNG/BMP to JPEG
- Updated fast_image to latest version
2017-05-11 00:16:57 +02:00
Sam
bc0b9af576
FEATURE: support uploads for themes
...
This allows themes to bundle various assets
2017-05-10 15:47:11 -04:00
Sam
f709899a1d
Allow theme field object model to support uploads
2017-05-10 15:46:42 -04:00
Robin Ward
4db76796b9
FEATURE: Setting to poll feeds more frequently
2017-05-10 14:30:12 -04:00
Guo Xiang Tan
41fb76cc66
Don't rescue all errors.
2017-05-10 09:12:44 +08:00
Robin Ward
24e1892d28
Silence logs for OptimizedImage failures
2017-05-09 14:59:46 -04:00
Robin Ward
da92f35e08
Don't log a gravatar failure that is a socket error
2017-05-09 14:44:53 -04:00
Robin Ward
bcf1a9d43f
We don't need to log when we can't download a Gravatar
2017-05-09 14:43:39 -04:00
Robin Ward
96c59c5b82
FIX: Don't notify or return flags on system users
2017-05-08 13:13:35 -04:00
Sam
257c0dea70
Merge pull request #4852 from tgxworld/pull_the_plug_on_daily_mailing_list
...
Remove daily mailing mode option as it doesn't scale.
2017-05-08 09:10:46 -04:00
Régis Hanol
8bc47d0bae
fix build (cc @tgxworld)
2017-05-05 13:13:49 +02:00
Guo Xiang Tan
e61959e6a8
FIX: `CustomEmoji` may contain an invalid upload_id.
...
https://meta.discourse.org/t/white-screen-after-deleting-custom-emoji/61608
2017-05-05 14:53:38 +08:00
Guo Xiang Tan
2b21e5ea7e
UX: Display translated group name for automatic groups.
2017-05-05 14:34:47 +08:00
Guo Xiang Tan
71a266b673
Remove daily mailing mode option as it doesn't scale.
...
https://meta.discourse.org/t/daily-updates-option-for-mailing-list-mode/45029/14?u=tgxworld
2017-05-05 12:21:50 +08:00
Sam
4ebbad991e
FIX: properly clean up related color schemes on delete
2017-05-04 14:03:17 -04:00
Robin Ward
55ca5df96b
FIX: If the host can't be extracted don't raise an error
2017-05-04 13:26:37 -04:00
Neil Lalonde
389a0e1a1c
FIX: emails should use default theme colors
2017-05-03 14:35:13 -04:00
Sam
342ef5f81a
FEATURE: out-of-the-box dark/light user selectable themes
2017-05-03 11:31:33 -04:00
Arpit Jalan
86f1cc8c92
FIX: don't apply max_emails_per_day_per_user on critical emails
2017-05-03 17:07:39 +05:30
Guo Xiang Tan
982e3d04f6
PERF: Allow memory to be freed instead of fetching all the objects into memory at once.
...
```
MemoryProfiler.report do
Jobs::UserEmail.new.execute(type: :mailing_list, user_id: user.id)
end.pretty_print
```
Before:
```
Total allocated: 180096119 bytes (1962025 objects)
Total retained: 2194 bytes (16 objects)
allocated memory by gem
-----------------------------------
66979096 activerecord-4.2.8
43507184 nokogiri-1.7.1
43365188 mail-2.6.4
5960201 activesupport-4.2.8
5056267 discourse/lib
4835284 rack-mini-profiler-0.10.1
3825817 arel-6.0.4
2186088 i18n-0.8.1
1719330 discourse/app
```
After:
```
Total allocated: 161935975 bytes (1473940 objects)
Total retained: 2234 bytes (17 objects)
allocated memory by gem
-----------------------------------
45430264 activerecord-4.2.8
43568627 nokogiri-1.7.1
43430754 mail-2.6.4
11233878 rack-mini-profiler-0.10.1
5260825 activesupport-4.2.8
5054491 discourse/lib
2186088 i18n-0.8.1
1822494 arel-6.0.4
```
2017-05-03 17:01:57 +08:00
Arpit Jalan
cdce060a38
FIX: don't apply max emails per day per user to forgot password
2017-05-03 14:02:37 +05:30
Sam
946f25098f
Refactor theme fields so they support custom theme defined vars
...
This paves the way to allowing themes to specify uploads and so on.
2017-05-02 16:02:14 -04:00
Arpit Jalan
77a8cae094
FIX: rescue specific errors on invite failure
2017-05-02 15:13:33 +05:30
Jeff Atwood
a4815047c0
purge `scheduler_stats` every 1 month instead of 3
2017-04-28 15:05:15 -07:00
Robin Ward
f05f1a24d3
Change Anniversary badge to be multiple grant, once per year
2017-04-28 14:22:54 -04:00
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
Guo Xiang Tan
1f6418f907
Track error message in `SchedulerStats`.
2017-04-26 01:34:25 +08:00
Arpit Jalan
aeead60036
FIX: make TopicEmbed trashable
2017-04-25 18:40:39 +05:30
Régis Hanol
0d66529d2b
PostReply doesn't have a primary key, so no luck here
2017-04-24 23:14:01 +02:00
Régis Hanol
1787c45b38
PERF: don't load all replies in memory when moving posts
2017-04-24 23:00:32 +02:00
Régis Hanol
8fe0bbb238
REFACTOR: improve Notification.ensure_consistency SQL query readability
2017-04-24 23:00:27 +02:00
Régis Hanol
301dd139ae
PERF: faster Group.refresh_automatic_group & Group.ensure_consistency
2017-04-24 23:00:21 +02:00
Régis Hanol
3d406b047c
PERF: much faster Badge.ensure_consistency
2017-04-24 22:59:49 +02:00
cpradio
20c2c66dd4
FEATURE: Add normal as a preference for topic subscription state when replying to a topic
2017-04-20 22:33:10 -04:00
Sam
aec73d4003
correct the spec again
2017-04-20 17:41:35 -04:00
Sam
dcf9459b7c
staff should track
2017-04-20 17:32:05 -04:00
Sam
5365973c0a
FIX: detection of error changed, so you can clear errors
2017-04-20 16:55:18 -04:00
Sam
7a9eee1b71
FEATURE: default notification level for group messages
...
also fixes it so staff can amend other user's group notification level
2017-04-20 15:47:35 -04:00
Guo Xiang Tan
2af1b9e93c
Add time out when optimizing images.
2017-04-20 15:21:43 +08:00
Sam
7eabb90b71
FEATURE: added error messages for bad theme CSS / JS
2017-04-19 16:46:46 -04:00
Arpit Jalan
5fa5c18a48
use notification_levels methods for specifying normal notification level
2017-04-19 16:17:24 +05:30
cpradio
2dccaff25d
FIX: Correct behavior of auto-notification state updating to exclude when the topic already has a state of normal/muted
2017-04-19 06:29:35 -04:00
Sam
0a67d859d5
correct watcher so it handles color scheme changes correctly
2017-04-18 16:48:15 -04:00
Arpit Jalan
1c23aedccf
FIX: always send password reset email when accepting invite if password is not set
2017-04-18 14:37:06 +05:30
Guo Xiang Tan
60f1169077
REFACTOR: Reduce repetition in code.
2017-04-18 17:03:49 +08:00
Arpit Jalan
8dea70d354
Revert "FIX: User website allows new TLDs"
2017-04-18 13:18:51 +05:30
Rafael dos Santos Silva
4289dbe3e5
FIX: User website allows new TLDs
2017-04-18 00:30:37 -03:00
Sam
3ccd5eacb4
prefer multiline \A \z
2017-04-17 16:57:37 -04:00
Sam
86904e9cd6
FIX: better error handling for theme import
2017-04-17 16:55:53 -04:00
Sam
5e3a0846f7
FEATURE: allow themes to share color schemes
2017-04-17 15:56:24 -04:00
jloh
5f47603b07
FIX: increase host_must_be_valid regex for .technology TLD
...
.technology is 11 chars long and wasn't being matched previously
2017-04-15 21:06:51 +10:00
Arpit Jalan
0954367bf4
FIX: send activation email when accepting invite if password is set
2017-04-15 14:59:50 +05:30
Guo Xiang Tan
04016f0dec
Support Ruby 2.4.
2017-04-15 12:29:00 +08:00
cpradio
4dc4c5bebc
FIX: Update auto_notification to also update the subscription state when replying if the current state is less than the state being requested
2017-04-14 15:44:42 -04:00
Sam
def7348777
FIX: display custom sections with default theme
...
also cleans up mechanism for previewing themes, cleans up naming,
gets rid of old janky "preview_style", secures local theme key
2017-04-14 13:35:12 -04:00
Sam
809fbb25ce
FIX: blanking theme field was not properly removing it
2017-04-13 17:24:15 -04:00
Guo Xiang Tan
3d76fb9c2c
FIX: Don't show category options for reports that can't be scoped to a category.
2017-04-13 17:10:55 +08:00
Guo Xiang Tan
bda20cc44a
FIX: Don't enqueue topic status update job if topic is deleted.
2017-04-13 12:02:35 +08:00
Guo Xiang Tan
72c16967e6
FIX: Check for reserved usernames before hitting DB.
2017-04-13 11:32:20 +08:00
Guo Xiang Tan
57788200ec
REFACTOR: Add `User.reserved_username?`.
2017-04-13 10:44:26 +08:00
Neil Lalonde
8395569b05
FIX: Topic.similar_to error when Search is not loaded
2017-04-12 14:48:30 -04:00
Sam
a7ed8a0310
correct theme importer to support embedded.scss
2017-04-12 11:30:16 -04:00
Sam
a3e8c3cd7b
FEATURE: Native theme support
...
This feature introduces the concept of themes. Themes are an evolution
of site customizations.
Themes introduce two very big conceptual changes:
- A theme may include other "child themes", children can include grand
children and so on.
- A theme may specify a color scheme
The change does away with the idea of "enabled" color schemes.
It also adds a bunch of big niceties like
- You can source a theme from a git repo
- History for themes is much improved
- You can only have a single enabled theme. Themes can be selected by
users, if you opt for it.
On a technical level this change comes with a whole bunch of goodies
- All CSS is now compiled using a custom pipeline that uses libsass
see /lib/stylesheet
- There is a single pipeline for css compilation (in the past we used
one for customizations and another one for the rest of the app
- The stylesheet pipeline is now divorced of sprockets, there is no
reliance on sprockets for CSS bundling
- CSS is generated with source maps everywhere (including themes) this
makes debugging much easier
- Our "live reloader" is smarter and avoid a flash of unstyled content
we run a file watcher in "puma" in dev so you no longer need to run
rake autospec to watch for CSS changes
2017-04-12 10:53:49 -04:00