Guo Xiang Tan
f3fadf41b7
PERF: Avoid unnecessary expensive joins if possible.
...
```
EXPLAIN ANALYZE SELECT "topics".* FROM "topics"
LEFT JOIN topic_users tu ON topics.id = tu.topic_id AND tu.user_id =
13455
WHERE ("topics"."deleted_at" IS NULL)
AND (topics.archetype = 'private_message')
AND (
topics.id IN (
SELECT topic_id
FROM topic_allowed_groups tg
JOIN group_users gu ON gu.user_id = 13455 AND gu.group_id =
tg.group_id
WHERE gu.group_id IN (47)
)
)
AND (
topics.id IN (
SELECT ta.topic_id
FROM topic_allowed_users ta
WHERE ta.user_id IN (32852,-10)
)
OR
topics.id IN (
SELECT tg.topic_id
FROM topic_allowed_groups tg
WHERE tg.group_id IN (-10)
)
)
AND (topics.id NOT IN (69933,69995,69988,69984,69968,69973,69971,69952))
AND "topics"."visible" = 't'
ORDER BY topics.bumped_at DESC
LIMIT 3;
```
Planning time: 1.277 ms
Execution time: 71.577 ms
```
EXPLAIN ANALYZE SELECT "topics".* FROM "topics"
LEFT JOIN topic_users tu ON topics.id = tu.topic_id AND tu.user_id =
13455
LEFT JOIN (
SELECT * FROM topic_allowed_groups _tg
LEFT JOIN group_users gu
ON gu.user_id = 13455
AND gu.group_id = _tg.group_id
AND gu.group_id IN (47)
) tg ON topics.id = tg.topic_id
LEFT JOIN topic_allowed_users ta2 ON topics.id = ta2.topic_id AND
ta2.user_id IN (32852)
WHERE ("topics"."deleted_at" IS NULL)
AND (topics.archetype = 'private_message')
AND (tg.topic_id IS NOT NULL)
AND (ta2.topic_id IS NOT NULL)
AND (topics.id NOT IN (69933,69995,69988,69984,69968,69973,69971,69952))
AND "topics"."visible" = 't'
ORDER BY topics.bumped_at DESC
LIMIT 3;
```
Planning time: 1.191 ms
Execution time: 0.129 ms
2017-09-14 11:18:58 +08:00
Régis Hanol
0096ee40da
FIX: only show participants the user can see
2017-09-13 17:14:03 +02:00
Guo Xiang Tan
28148197d6
PERF: Avoid `NOT IN (<subquery>>` which can get really slow.
...
```
EXPLAIN ANALYZE SELECT "topics".*
FROM "topics" LEFT JOIN topic_users tu ON topics.id = tu.topic_id AND
tu.user_id = 13455
WHERE ("topics"."deleted_at" IS NULL)
AND (topics.archetype = 'private_message')
AND (
topics.id IN (
SELECT topic_id
FROM topic_allowed_users
WHERE user_id = 13455
)
)
AND (
topics.id IN (
SELECT ta.topic_id
FROM topic_allowed_users ta
WHERE ta.user_id IN (2,1995,8307,17621,22980,-10)
)
OR
topics.id IN (
SELECT tg.topic_id
FROM topic_allowed_groups tg
WHERE tg.group_id IN (-10)
)
)
AND (topics.id NOT IN (68559,60069,42145))
AND "topics"."visible" = 't'
ORDER BY topics.bumped_at
DESC LIMIT 5;
```
Planning time: 1.196 ms
Execution time: 21.176 ms
```
EXPLAIN ANALYZE SELECT "topics".*
FROM "topics"
LEFT JOIN topic_users tu ON topics.id = tu.topic_id AND tu.user_id =
13455
LEFT JOIN topic_allowed_users ta ON topics.id = ta.topic_id AND
ta.user_id = 13455
LEFT JOIN topic_allowed_users ta2 ON topics.id = ta2.topic_id AND
ta2.user_id IN (2,1995,8307,17621,22980,-10)
LEFT JOIN topic_allowed_groups tg ON topics.id = tg.topic_id AND
tg.group_id IN (-10)
WHERE ("topics"."deleted_at" IS NULL)
AND (topics.archetype = 'private_message')
AND (ta.topic_id IS NOT NULL)
AND (ta2.topic_id IS NOT NULL OR tg.topic_id IS NOT NULL)
AND (topics.id NOT IN (68559,60069,42145))
AND "topics"."visible" = 't'
ORDER BY topics.bumped_at DESC
LIMIT 5;
```
Planning time: 1.792 ms
Execution time: 2.546 ms
2017-09-13 22:28:33 +08:00
Gerhard Schlager
31ecb4fecf
FIX: Handle incoming emails without email address in From header ( #5177 )
2017-09-12 22:35:24 +02:00
Guo Xiang Tan
07bfe3d053
FIX: Use a distrbuted cache for site locale.
2017-09-12 19:36:17 +08:00
Arpit Jalan
18142d8abf
new rake task to bake uncooked posts
2017-09-12 12:40:18 +05:30
Neil Lalonde
c12a53449c
FIX: output css for category backgrounds only if uploads have a url
2017-09-11 17:10:30 -04:00
Robin Ward
717ed75fc4
Add warning when plugins changed by `tmp` was not removed
2017-09-08 13:38:46 -04:00
Guo Xiang Tan
2db47f98cd
Avoid allocating an extra array.
2017-09-08 14:07:24 +08:00
Guo Xiang Tan
0f2a303f00
Remove irrelevant comment.
2017-09-08 14:07:24 +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
Régis Hanol
657440b8be
FIX: consecutive_visits query wasn't properly setting 'granted_at' (3rd time's a charm)
2017-09-07 18:41:56 +02:00
Guo Xiang Tan
58321d0783
PERF: Remove `Object#present?` check introduced in e0d5d9670a
.
2017-09-07 21:36:27 +08:00
David Taylor
7d350d0d75
Revert plugin js changes ( #5139 )
...
* Revert "Add disabled_plugins to preloadstore for login_required anonymous users (#5134 )"
This reverts commit b840170f8d
.
* Revert "Do not load javascripts for disabled plugins (#5103 )"
This reverts commit a14ab48829
.
2017-09-07 15:15:29 +02: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
Guo Xiang Tan
4d840d10db
PERF: Reduce number of Redis hits per requests.
2017-09-07 13:34:27 +08:00
Régis Hanol
db920673dc
FIX: consecutive_visits query wasn't return only the first result per user
2017-09-07 01:08:28 +02:00
Régis Hanol
8a935a4b5f
FEATURE: new badges when visiting the forum for 10, 100 and 365 consecutive days
2017-09-06 22:35:08 +02:00
David Taylor
a14ab48829
Do not load javascripts for disabled plugins ( #5103 )
...
* Do not load javascript for disabled plugins
* Appease rubocop
2017-09-06 10:06:47 +02:00
Robin Ward
db929e58fc
FIX: Don't allow staff to approve users with unverified emails
2017-09-04 12:55:39 -04:00
Robin Ward
cb56dcdf2e
FIX: Use proper `iconNode` when compiling virtual dom templates
2017-09-01 11:20:33 -04:00
Robin Ward
dffb1fc4ee
FEATURE: Use Glimmer compiler for widget templates
...
Widgets can now specify a template which is precompiled using Glimmer's
AST and then converted into our virtual dom code.
Example:
```javascript
createWidget('post-link-arrow', {
template: hbs`
{{#if attrs.above}}
<a class="post-info arrow" title={{i18n "topic.jump_reply_up"}}>
{{fa-icon "arrow-up"}}
</a>
{{else}}
<a class="post-info arrow" title={{i18n "topic.jump_reply_down"}}>
{{fa-icon "arrow-down"}}
</a>
{{/if}}
`,
click() {
DiscourseURL.routeTo(this.attrs.shareUrl);
}
});
```
2017-09-01 09:28:16 -04:00
Sam Saffron
7f8a90ef63
remove non english comment
2017-08-31 17:00:37 -04:00
Robin Ward
48e95f01fc
Version bump to v1.9.0.beta8
2017-08-31 14:54:44 -04:00
Robin Ward
e7885c20cb
Add reloadable support for patching in an avatar lookup
2017-08-30 14:24:03 -04:00
Guo Xiang Tan
df9d662dab
FIX: Use `CASCADE` when dropping function.
2017-08-30 15:54:27 +08:00
Guo Xiang Tan
54ad436258
Revert "FIX: Drop function first before removing trigger."
...
This reverts commit d229969afa
.
2017-08-30 15:38:09 +08:00
Guo Xiang Tan
d229969afa
FIX: Drop function first before removing trigger.
2017-08-30 15:33:25 +08:00
Sam
c705159d22
Remove email column from user table
2017-08-29 11:50:56 -04:00
Bianca Nenciu
6bc74ceb50
Split alias levels in mentionable and messageable levels. ( #5065 )
...
* Split alias levels in mentionable and messageable levels.
* Fixed some tests.
* Set messageable level to everyone by default.
* By defaults, groups are not mentionable or messageable.
* Made staff groups messageable by the system.
2017-08-28 12:32:08 -04:00
Sam
552fbd3c8d
lint
2017-08-28 12:25:34 -04:00
darix
4b5724ec02
Extend config/version.rb with more informations ( #5061 )
...
This gives installations not using git checkouts
to provide all the informations needed for the
internal version checks and version display in
the dashboard.
The build:stamp rake task was extended to also
add the new informations.
2017-08-28 12:24:56 -04:00
Bianca Nenciu
bb3a5910d7
Support for sending PMs to email addresses ( #4988 )
...
* Added support for sending PMs to email addresses.
* Made changes after review.
* Added settings validator.
* Fixed tests.
2017-08-28 12:07:30 -04:00
Arpit Jalan
4623b46b0b
rescue error when remapping permalinks
2017-08-28 20:43:40 +05:30
Sam
6e1809ce32
add a debugging task for running all schedules
2017-08-25 12:19:34 -04:00
Neil Lalonde
2c56f8df7c
FEATURE: show tags in search results
2017-08-25 11:52:59 -04:00
Sam
fef08c6fee
FEATURE: rake db:stats
...
Basic rake task to provide db stats like largest tables, row count and size
2017-08-25 10:29:04 -04:00
Arpit Jalan
70f7a0ca1a
new rake task to remap old phpbb links
2017-08-25 15:09:11 +05:30
Robin Ward
0b58848895
FIX: Category badge style of none was causing errors when rendering
2017-08-24 13:45:32 -04:00
Sam
fdc5c080ea
FIX: bump default max for int site settings to a much higher number
...
(close to long int)
2017-08-24 10:16:41 -04:00
Guo Xiang Tan
7c15b27a90
Merge pull request #5073 from xrav3nz/extract-github-avatar
...
FEATURE: import Github profile picture
2017-08-23 16:18:46 +09:00
Kyle Zhao
5868508e98
GH#retrieve_avatar: simplify conditional and restructured testing
2017-08-22 23:46:50 -04:00
Guo Xiang Tan
49ddc98b38
Merge pull request #5066 from davidtaylorhq/docker-lint-changes
...
Docker lint SINGLE_PLUGIN
2017-08-23 09:56:15 +09:00
Kyle Zhao
49f0119c12
FEATURE: import Github profile picture
2017-08-22 20:23:47 -04:00
Sam
bcf7dc38c2
FEATURE: server side support for upload:// markdown
...
This allows uploads to be specified using short sha1 hash instead of full
URL
Client side change is pending
2017-08-22 11:46:23 -04:00
David Taylor
ed6e1c3825
Combine docker:lint and docker:test into one command
2017-08-22 13:47:29 +01:00
Guo Xiang Tan
2d4d76472d
FIX: Broken suspect user lists.
...
https://meta.discourse.org/t/server-error-code-500/68404
2017-08-22 11:16:55 +09:00
David Taylor
a3f5878ec9
Use `if`, not `unless`
2017-08-18 22:12:20 +01:00
David Taylor
7704e8246b
Allow SINGLE_PLUGIN environment variable to be used
2017-08-18 22:04:35 +01:00
David Taylor
ea43f50f6d
Add documentation for new ENV variables
2017-08-18 22:03:09 +01:00
Sam
aeedecd27c
correct erratically failing spec
2017-08-18 15:10:37 -04:00
David Taylor
d65570a8a1
Preparation for using chrome for qunit in docker images ( #5062 )
...
Move use_chrome option to ENV variable
Rewrite script to work with node 6 (current LTS version used in discourse_docker)
Add node stuff to gitignore
2017-08-18 14:08:58 -04:00
Guo Xiang Tan
8ecf383c55
Extract linter in `docker:test` Rake task into `docker:lint`.
2017-08-18 12:22:01 +09:00
Sam
a83bd537f4
FIX: exception in excerpt parser for null nodes
2017-08-17 16:13:30 -04:00
Neil Lalonde
df5142493c
Version bump to v1.9.0.beta7
2017-08-17 15:59:29 -04:00
Guo Xiang Tan
0e656ff213
FIX: Can't reset AR schema cache due to versions table.
2017-08-17 19:27:35 +09:00
Guo Xiang Tan
2157079d09
Add Plugin API to register a category custom field.
2017-08-17 15:59:57 +09:00
Régis Hanol
55f449edc5
FIX: reloading issues with classes
2017-08-16 23:00:52 +02:00
Robin Ward
f9ff06b9d4
Allow ENV variable to force polling
2017-08-16 12:59:38 -04:00
Neil Lalonde
0daeefc977
Version bump to v1.9.0.beta6
2017-08-16 12:49:25 -04:00
Robin Ward
c8220e11f9
Better formatting for CSS errors
2017-08-16 11:48:07 -04:00
David Taylor
c981edfa20
Add option to run qunit tests in headless chrome ( #5054 )
2017-08-16 07:42:42 -04:00
Erick Guan
6e59149a77
FIX: rebuild index when engine replaced ( #5021 )
2017-08-16 07:38:34 -04:00
Guo Xiang Tan
b77aa29e71
Merge pull request #5013 from LeoMcA/alternate-emails-phase-1.5
...
FIX: add additional email to tests and clean up resulting mess
2017-08-16 16:19:28 +09:00
Guo Xiang Tan
86adc8d717
Fix typo.
2017-08-16 13:06:47 +09:00
Guo Xiang Tan
0b2d65f77a
Include the site setting file path for which a default value is missing.
2017-08-16 11:42:08 +09:00
Guo Xiang Tan
ed851dbfff
FIX: Avoid publishing a gigantic payload.
...
* Certain sites have way too many categories.
2017-08-16 11:38:30 +09:00
Erick Guan
1646bc0031
FIX: fails loud if default setting is not set
...
Noted:
- `push_api_secret_key` is set in initializer. Shimed with ''
- `default_theme_key` is set in seeding. Shimed with ''
2017-08-15 12:07:25 +02:00
Joffrey JAFFEUX
506572bf04
FIX: display emojis (set, custom and native) in bio excerpt
2017-08-15 10:05:09 +02:00
Arpit Jalan
7e9b2289bd
UX: make 404 page look better on dark theme
2017-08-15 12:15:56 +05:30
Neil Lalonde
dd665c62f2
FIX: staff count on invites step of wizard should only include real users
2017-08-14 22:17:41 -04:00
Leo McArdle
0ef7a969f2
Some more HTML to Markdown fixes ( #5046 )
...
* FIX: handle spaces better within emphasis tags in html_to_markdown
* FIX: handle line breaks at beginning of emphasis tags in html_to_markdown
2017-08-14 22:13:24 +02:00
Neil Lalonde
6fcb530b56
UX: setup wizard won't offer pre-existing users with reserved usernames
2017-08-14 15:31:57 -04:00
Régis Hanol
89e919ec42
UX: keep emojis in excerpts in flag queue
2017-08-14 15:16:47 +02:00
Arpit Jalan
2f3f5477b0
UX: fix category badge style on 404 page
2017-08-14 16:26:25 +05:30
Robin Ward
5ed809a15b
FIX: Reloading issues with classes
2017-08-13 13:19:50 -04:00
Régis Hanol
51ef36abb4
Add a bunch of reload-friendly class variables accessors plugin APIs
2017-08-12 04:21:02 +02: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
Neil Lalonde
c924975086
FIX: wizard should only include human admins and system user as the site contact username options
2017-08-11 15:29:07 -04:00
Guo Xiang Tan
59423b693b
Merge pull request #5035 from nbianca/remove_spork
...
Remove Spork dependency.
2017-08-11 09:52:16 +09:00
Bianca Nenciu
1c079bec33
Remove Spork dependency.
2017-08-10 22:54:52 +01:00
Guo Xiang Tan
f7d3702454
FIX: Return 404 if API access is invalid.
2017-08-10 18:27:01 +09:00
Robin Ward
dc15e48334
FIX: You can't cache the files here, plugin translations won't work
2017-08-09 17:28:11 -04:00
Régis Hanol
04460ecac5
'add_to_serializer' should define the 'include_' method by default
2017-08-09 22:22:18 +02:00
Robin Ward
53e6ccf17b
Allow reloading of translation keys for plugins in development mode
2017-08-09 13:58:20 -04:00
Robin Ward
f11253dcb6
Allow plugin patches to reload in development mode
2017-08-09 12:30:27 -04:00
Guo Xiang Tan
a1f60cfcb8
Fix incorrect test migration.
2017-08-10 00:20:07 +09:00
Robin Ward
7b3631454d
FIX: In development mode on OSX, plugin stylesheets were not reloading
...
It seems to be due to symlinks in the plugins folder. Watching
the individual plugins seems to fix the issue rather than the entire
plugin folder.
2017-08-09 11:06:27 -04:00
Rafael dos Santos Silva
5324c9817f
FIX: Title prettify shoundn't downcase all non-ascii titles
2017-08-08 14:03:24 -03:00
Joffrey JAFFEUX
6cd8203686
FIX: allows onebox to force GET hosts returning wrong headers on HEAD
2017-08-08 11:44:27 +02:00
Guo Xiang Tan
2c39743d5d
Introduce multisite tests for better coverage.
2017-08-08 12:58:22 +09:00
Guo Xiang Tan
764957dfc4
Merge pull request #5030 from tgxworld/fix_defaults_cache_cross_talk
...
FIX: SiteSettings defaults cache leaking across multisite.
2017-08-07 17:07:31 +09:00
Guo Xiang Tan
22a1db7b8a
FIX: Make `DbProvider#table_exits?` work with multisite.
2017-08-07 16:37:42 +09:00
Guo Xiang Tan
c5850422f0
FIX: SiteSettings defaults cache leaking across multisite.
2017-08-07 15:16:57 +09:00
Guo Xiang Tan
412fa78b1f
FIX: `default_locale` cross talk in multisite setup.
2017-08-07 11:14:28 +09:00
Guo Xiang Tan
3f24ed2b3e
Can't revert due to incompatibility of new site setting types.
...
Revert "Revert "FEATURE: Site settings defaults per locale""
This reverts commit 439fe8ba24
.
2017-08-07 10:43:09 +09:00
Guo Xiang Tan
439fe8ba24
Revert "FEATURE: Site settings defaults per locale"
...
This reverts commit 468a8fcd20
.
2017-08-07 10:31:50 +09: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