Sam
80ceb57c76
DEV: add API endpoint to destroy_timings only of last post
...
Previously API only allowed you to nuke all timings from a topic,
new API is less punishing and allows you just to remove 1 post.
2018-11-13 16:07:48 +11:00
Arpit Jalan
42c405a820
FIX: use topic summary for meta description if topic excerpt is blank
2018-10-17 14:13:30 +05:30
Osama Sayegh
2711f173dc
FIX: don't allow inviting more than `max_allowed_message_recipients`
...
* FIX: don't allow inviting more than `max_allowed_message_recipients` setting allows
* add specs for guardian
* user preferences for auto track shouldn't be applicable to PMs (it auto watches on visit)
Execlude PMs from "Automatically track topics I enter..." and "When I post in a topic, set that topic to..." user preferences
* groups take only 1 slot in PM
* just return if topic is a PM
2018-08-23 14:36:49 +10:00
Sam
5a6d1ee257
FIX: defer actions in a static method
...
This avoids capturing a huge closure and passing to defer
2018-08-22 14:36:56 +10:00
Gerhard Schlager
b9072e8292
FEATURE: Add "Reset Bump Date" action to topic admin wrench ( #6246 )
2018-08-10 10:51:03 +10:00
Sam
ed4c0f256e
FIX: check permalinks for deleted topics
...
- allow to specify 410 vs 404 in Discourse::NotFound exception
- remove unused `permalink_redirect_or_not_found` which
- handle JS side links to topics via Discourse-Xhr-Redirect mechanism
2018-08-09 15:05:12 +10:00
Guo Xiang Tan
9647a0a4bc
Remove unnecessary complex method.
2018-07-13 15:34:28 +08:00
Guo Xiang Tan
711371e8c8
FIX: Select+below will ask server for post ids on megatopics.
2018-07-13 15:10:39 +08:00
Kyle Zhao
2901691e87
FEATURE: per-category approval settings ( #5778 )
...
- disallow moving topics to a category that requires topic approval
2018-07-13 12:51:08 +10:00
Guo Xiang Tan
258e9e35ca
PERF: Make mega topics work without a stream.
...
There are tradeoffs that we took here. For the complete
story see
https://meta.discourse.org/t/performance-improvements-on-long-topics/30187/27?u=tgxworld .
2018-07-12 12:46:12 +08:00
Maja Komel
18f5f646b1
FEATURE: allow selecting a tag when moving posts to a new topic ( #6072 )
2018-07-06 18:21:32 +02:00
Sam
53b97b28f0
FIX: in rare conditions post timing would miss the user
2018-05-24 15:38:33 +10:00
Arpit Jalan
9353ae4b5d
Remove obsolete per topic unsubscribe page.
2018-04-16 16:11:20 +05:30
Sam
3632b8d8d6
FEATURE: provide extra signal about content age to crawlers
...
Adds Last-Modified field to help teach crawlers not to crawl old content
2018-04-13 14:58:33 +10:00
Arpit Jalan
3a86a2588c
FIX: bulk append/replace tags was not working
2018-04-10 13:01:03 +05:30
Kevin Elliott
fa0868fc3f
Explicit param permit and assignment cleanup.
2018-03-23 09:59:31 -07:00
Robin Ward
5f19ad9507
FIX: allow destination categories to be set if not at first
2018-03-23 11:33:02 -04:00
Robin Ward
38af67eb73
Update the destination category id when a user changes it
2018-03-23 11:12:56 -04:00
Arpit Jalan
d96c1058a2
FEATURE: add staff action log for 'restore topic'
2018-03-21 18:04:13 +05:30
Robin Ward
b9abd7dc9e
FEATURE: Shared Drafts
...
This feature can be enabled by choosing a destination for the
`shared drafts category` site setting.
* Staff members can create shared drafts, choosing a destination
category for the topic when it is published.
* Shared Drafts can be viewed in their category, or above the
topic list for the destination category where it will end up.
* When the shared draft is ready, it can be published to the
appropriate category by clicking a button on the topic view.
* When published, Drafts change their timestamps to the current
time, and any edits to the original post are removed.
2018-03-20 17:15:26 -04:00
Guo Xiang Tan
1365bab0d7
FEATURE: Live updates for user's messages page.
...
https://meta.discourse.org/t/group-inbox-messages-not-updated-for-new-posts/38189
2018-03-06 18:15:21 +08:00
Sam
75172024ca
SECURITY: ensure users have permission when moving categories
2018-03-02 12:13:27 +11:00
Guo Xiang Tan
947b6fdf46
FIX: Incorrect rate limit applied to topics invitation flow.
2018-03-01 12:50:00 +08:00
Guo Xiang Tan
c64f09b6b7
REFACTOR: Simplify and DRY `Group#invite`.
2018-02-26 11:59:07 +08:00
Sam
41986cdb2f
Refactor requires login logic, reduce duplicate code
...
This also corrects the positioning in the chain of the check
and removes misuse of prepend_before_action
2018-02-01 15:17:59 +11:00
Sam
f2e7b74d88
FIX: don't return 200s when login is required to paths
...
When running `ensure_login_required` it should always happen prior to
`check_xhr` cause check xhr will trigger a 200 response
2018-02-01 12:26:45 +11:00
Régis Hanol
5c1eaeca9e
FIX: prevent users from moving whispers to new topic
2018-01-22 17:23:19 +01:00
Sam
12872d03be
PERF: run post timings in background
...
This means that if a very large amount of registered users hit
a single topic we will handle it gracefully, even if db gets slow.
2018-01-19 08:27:29 +11:00
Guo Xiang Tan
f2565f6c7e
SECURITY: Any group can be invited into a PM.
2017-12-14 14:57:48 +08:00
Arpit Jalan
b014540fde
FIX: view was getting rendered twice for rate limiting error
2017-12-12 14:48:58 +05:30
Joffrey JAFFEUX
f0ef307d2d
FIX: topic timer offset applied two times
...
timezone offset was calculated and sent from browser to server, it would be applied on utc time generated from '2013-11-22 5:00' format for example and then sent back to browser which would display it thinking it's UTC time using `moment(utc time)` when it's in fact an UTC time we have offseted with the initial user timezone.
This is impossible to automatically test in the current app state. Easiest reproduction is in live browser after setting your timezone to `America/New_York`, when setting a topic timer to later_today, after save, the time under the topic should be off to something roughly equal +1/-1 hour to your timezone offset.
2017-12-07 14:42:58 +01:00
Guo Xiang Tan
25c25ae423
FEATURE: Allow user to leave a PM.
2017-10-19 12:32:55 +08:00
Guo Xiang Tan
6f5051861c
Remove unused option.
2017-09-26 14:47:38 +08:00
Guo Xiang Tan
5d37f8673b
PERF: Only send down suggested payload when loading last chunk.
2017-09-26 14:42:27 +08:00
Guo Xiang Tan
77d4c4d8dc
Fix all the errors to get our tests green on Rails 5.1.
2017-09-25 13:48:58 +08:00
Guo Xiang Tan
5c1143cd55
Add missing test case for `PostController#timings`.
2017-09-04 16:36:02 +08:00
Sam
8dfb1be4d1
FEATURE: unlisted *only* means not listed in topic lists
...
Remove security by obscurity feature that tries for exact slug match
If you need to hide a topic from users either move to a secure category
or convert to a PM
2017-08-22 17:53:54 -04:00
Arpit Jalan
e36a20660d
FIX: handle topics without excerpt for meta description tag
2017-08-08 22:17:05 +05:30
Guo Xiang Tan
5012d46cbd
Add rubocop to our build. ( #5004 )
2017-07-28 10:20:09 +09:00
Guo Xiang Tan
2a17f1ccd7
FIX: Group owners should be able to invite users to their groups.
...
https://meta.discourse.org/t/group-owner-cannot-send-an-invite-to-a-group/60617/12
2017-07-21 23:48:25 +09: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
238a156300
FIX: `TopicTimestampChanger` should not allow timestamps in the future.
2017-05-22 16:03:49 +08:00
Guo Xiang Tan
4382a0bb07
Rename `PostTimestampChanger` -> `TopicTimestampChanger`.
2017-05-22 15:01:33 +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
f4758a4c4d
FEATURE: Allow admins to schedule a topic to be published in the future.
2017-04-04 11:16:05 +08:00
Guo Xiang Tan
0bbad5040a
`topic-status-info` component wasn't updated when topic is closed/opened.
2017-03-31 15:58:26 +08:00
Guo Xiang Tan
b6e9871b4b
Update `Topic#closed` client side when closing/opening a topic temporarily.
2017-03-31 15:05:00 +08:00
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
477eb0591e
FIX: Posts in a deleted topic couldn't be moved.
...
https://meta.discourse.org/t/moving-posts-to-new-topic/58436/4
2017-03-06 14:56:20 +08:00
Guo Xiang Tan
5d7f3223f0
SECURITY: Users can only bookmark posts which they can see.
2016-12-21 12:01:26 +08:00
Sam
1135e00c83
FIX: regression unable to dismiss unread
2016-12-06 08:49:40 +11:00
Sam
88a46be051
FEATURE: display text excerpts when scrolling on mobile
2016-11-25 11:35:29 +11:00
Kiffin Gish
3aa22715af
A new guard for changing post timestamps called can_change_post_timestamps?
2016-11-06 20:14:09 +01:00
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
acc70cc3de
SiteSetting, admin passtrough, CSS, hide on mobile
2016-09-26 20:46:55 -03:00
Rafael dos Santos Silva
6faedfa716
Rate limit printing
2016-09-26 20:46:55 -03:00
Rafael dos Santos Silva
c12e533273
Feature: Adds a button to print a topic
2016-09-26 20:44:50 -03:00
Robin Ward
2766b2edc3
FIX: Allow redirection for slugs that start with digits
2016-09-19 13:31:19 -04:00
Guo Xiang Tan
aabb7a8592
FIX: DiscourseEvent should not be triggered from within the controller.
2016-09-05 15:58:04 +08:00
Sam
b4dfb84f37
PERF: stop doing work for HEAD requests on topics
2016-08-17 10:04:23 +10:00
Sam
2d425892c4
FIX: update list of invited users after inviting
2016-06-21 16:01:29 +10:00
Sam
8866169879
FEATURE: can invite/revoke groups on private messages
2016-06-20 16:29:27 +10:00
Sam
e66c51fd85
correct regression where clicking on unlisted topics does not work
2016-06-12 16:36:38 +10:00
Sam
3015030fe2
FIX: unlisted topics do not get "slug auto correct" logic
2016-06-10 10:53:26 +10:00
Arpit Jalan
4253141700
FEATURE: custom email message for topic invites
2016-06-07 23:43:15 +05:30
Régis Hanol
6137bb46d3
FIX: a User is *not* a Topic
2016-05-14 10:06:29 +02:00
Arpit Jalan
acfb540952
FEATURE: move a topic from PM to regular topic or vice versa
2016-05-02 21:34:05 +05:30
Sam
0b6d12f95d
FIX: when no notification state exists on topic, mute on unsubscribe
2016-04-25 11:24:52 +10:00
Régis Hanol
d402a45781
FIX: hitting '/t/:id/posts.json' should return the first page of posts
2016-04-05 19:12:14 +02: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
b0567f9c62
FEATURE: automatically sync "move to inbox" / "archive" state on messages
2016-02-07 23:39:07 +11:00
Sam
65e808b26d
FEATURE: go to inbox after archiving a message
2016-01-12 15:49: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
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
Arpit Jalan
4c86758f74
FIX: show proper message on invite error
2015-12-20 22:13:37 +05:30
Arpit Jalan
6243a7ad07
UX: show login screen when anon tries to unsubscribe topic
2015-11-11 11:53:24 +05:30
Neil Lalonde
dd0a7107a8
FIX: canonical urls for category and topic pages was wrong when deployed to subfolder
2015-10-01 12:24:07 -04:00
Robin Ward
0f7aaf5ab1
Revert "FIX: paginated category and topic pages should not have canonical tag"
...
This reverts commit ecd93f7efb
.
2015-09-29 17:22:28 -04:00
Arpit Jalan
ecd93f7efb
FIX: paginated category and topic pages should not have canonical tag
2015-09-29 17:23:49 +05:30
Sam
a0524ea4d1
FIX: render canonical URLs
2015-09-22 09:37:52 +10:00
Kane York
c9e4745fe8
FIX: Return 410 Gone for deleted topics you could otherwise see
2015-09-18 00:14:43 -07:00
Guo Xiang Tan
c7a21b7c23
FEATURE: Allow admin to change timestamp of topic.
2015-08-17 00:00:05 +08: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
Neil Lalonde
782dd13e78
FEATURE: track user visits on mobile and display on admin dashboard in a new Mobile section
2015-07-07 14:06:42 -04:00
Robin Ward
6422d5efbd
Use the same component for similar topics as search results.
2015-06-24 15:08:22 -04:00
Kane York
2f0bd6294c
Add noindex directive on unlisted topics
2015-06-22 11:00:39 -07:00
Régis Hanol
efb02ae561
FIX: take into account unlisted banners
2015-06-22 14:08:30 +02:00
Robin Ward
4e898c604e
UX: Update suggested topics to include topic status + category
2015-06-18 15:53:10 -04:00
Régis Hanol
189cb3ff12
FEATURE: move migrate_to_new_scheme into a background job
...
- new hidden site setting 'migrate_to_new_scheme' (defaults to false)
- new rake tasks to toggle migration to new scheme
- FIX: migrate_to_new_scheme also works with CDN
- PERF: improve perf of the DbHelper.remap method
- REFACTOR: UrlHelper is now a class
2015-06-12 12:07:57 +02:00
Neil Lalonde
ea8cf1a208
FIX: topic auto-close uses the client's time zone
2015-05-27 18:01:46 -04:00
Robin Ward
7d23826cee
FIX: Keep around the page when redirecting
2015-05-20 10:16:17 -04:00
Antonin Hildebrand
11852056a8
Add missing events for discourse-hipchat-plugin
...
https://github.com/binaryage/discourse-hipchat-plugin
2015-05-15 15:52:12 +08:00
Neil Lalonde
cce8693354
FIX: canonical link tag when using relative_url_root
2015-04-27 13:34:22 -04:00
Robin Ward
53ca51654d
FIX: Avoid cookie overflows by truncating the referer we store in flash
2015-04-22 12:41:49 -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
Régis Hanol
424a3b042a
FEATURE: unified UI for pinning/banner topics
...
REFACTOR: ES6ified all the modals
2015-03-14 01:18:05 +01:00
Neil Lalonde
1bf4f34049
FIX: topic and post counts are not updated when ownership of a post is changed
2015-03-02 12:13:21 -05:00
Sam
b041b3f67f
FIX: bookmark topic was not working intuitively
...
- explicitly call out "clear bookmarks"
- correct keyboard shortcuts
- properly remove bookmarks when toggeling
2015-02-19 10:58:57 +11:00
Loïc Guitaut
395654bf24
Fix regression on editing private messages
...
v1.2.0beta9 has introduced a regression in edit of a private topic
(first post). Previously a check for no change in TopicsController was
made but it has been changed without considering that the topic could
be private.
By simply forcing a conversion of `topic.category_id` to integer, the case
where its value is nil is handled correctly as it was previously.
2015-02-18 00:41:16 +01:00
Régis Hanol
0b45054e2b
FIX: couldn't uncategorize a topic
2015-02-16 10:31:36 +01:00
riking
85a7b925c7
Miscellaneous fixes from PR#3000
...
FIX: Don't require login to view post raw
FIX: Don't submit read-guidelines for anonymous users (causes
unnecessary 403 errors from ensure_logged_in)
FIX: Don't pass nil to an array serializer
2015-01-29 13:56:32 -08:00
Arpit Jalan
4e4bb736a8
build is failing :fired:
2015-01-29 15:18:38 +05:30
Arpit Jalan
e8db47a1fe
FIX: PMs were not allowed to be edited in some cases
2015-01-29 15:00:11 +05:30
Robin Ward
8fc477ab07
More refactoring to support extensibility of history
2015-01-28 13:37:06 -05:00
Robin Ward
d43944b3ed
Extensibility for tracking changes to a topic
2015-01-28 13:37:06 -05:00
Régis Hanol
c681b353f2
FEATURE: bookmark topic button
2015-01-12 12:10:15 +01:00
Robin Ward
0bc0bd7a21
Pass the `current_user` to the topic saved event
2015-01-08 17:29:11 -05:00
Sam
efc717c14a
FEATURE: remove star concept from Discourse
2015-01-07 13:43:27 +11:00
Robin Ward
6f72f265cb
A trigger when a topic is updated, adds a couple of custom field tests
2015-01-02 15:57:08 -05:00
Robin Ward
b1bc4741b1
FEATURE: Load fewer topics in the topic list on slow platforms (Android)
2014-12-15 11:54:26 -05:00
Robin Ward
2d6b15a34d
Load fewer posts when the android platform is detected
2014-12-12 11:47:39 -05:00
Régis Hanol
f226e4efc0
FIX: don't error out when updating a topic with no changes
2014-12-02 02:16:30 +01:00
Régis Hanol
7bb9a839e5
fix the build (again)
2014-11-17 16:06:43 +01:00
Régis Hanol
dd9c475ea0
FIX: changing category within edit grace period as TL3 pops up an error
2014-11-17 15:57:45 +01:00
riking
d7a4e39e1d
FEATURE: ?include_raw parameter for /t/id/posts.json
...
include_raw is not added for the wordpress view because it uses the
BasicPostSerializer, and is not a one-line change.
This is the only use of the TopicViewPostsSerializer class, and the
previous change covered the only use of the TopicViewSerializer class.
No other locations include the PostStreamSerializerMixin. Therefore,
this feature is most likely complete.
2014-11-07 07:28:07 -08:00
riking
6a946712b3
Add ?include_raw parameter to topic views
2014-11-01 14:32:18 -07:00
Sam
bd78fca121
Merge pull request #2908 from cpradio/pr-dismiss-posts-topics-on-category
...
FEATURE: Show dismiss posts/topics buttons on category filtered lists
2014-10-31 11:34:53 +11:00
cpradio
50f7fbc361
Apply comment from @sam to consolidate logic
2014-10-30 10:19:49 -04: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
cpradio
c6e54741bb
Apply comments from eviltrout, using this.get('category.id'), and use snake case for category_id
2014-10-24 17:01:28 -04:00
cpradio
439f393d89
Show dismiss posts/topics buttons on category filtered lists
2014-10-23 17:41:39 -04:00
Jeff Atwood
92b615b503
reorganize site settings a bit
2014-10-19 23:14:50 -07:00
Régis Hanol
5754e8dd0f
FEATURE: auto-close topics based on last post
2014-10-10 18:21:44 +02:00
Robin Ward
2fbfc9dffa
FIX: Editing a topic's title should be rate limited too.
2014-10-07 16:46:01 -04:00
Régis Hanol
98b6b9821a
FEATURE: log topic/post deletions from staff members
2014-10-01 17:40:13 +02:00
Sam
f625500792
lower band check as well
2014-09-22 17:11:04 +10:00
Sam
8c74255cbb
FIX: 404 if we try to navigate to a non-existant page
2014-09-22 17:08:11 +10:00
Robin Ward
c16b8364ab
FIX: Support ember app routing to topics with only slugs
2014-09-17 11:18:59 -04: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
Arpit Jalan
84d0b599a4
FIX: do not redirect topic for JSON request
2014-08-29 23:09:02 +05:30
Ankur Sethi
43b5292303
Fix min_trust_level for wordpress
...
min_trust_level in the wordpress method was being set to 1 always, the order of the ternary operator was reversed.
2014-08-19 20:15:24 -04:00
Sam
b82726b029
FIX: incorrect redirection code
2014-08-18 12:35:31 +10:00
Régis Hanol
6201b82a67
FIX: keep the post_number parameter when redirecting to proper slug
2014-08-13 22:19:41 +02:00
Robin Ward
21185617b0
Show the reason the topic couldn't be split rather than a generic error.
2014-08-11 14:43:19 -04:00
Régis Hanol
3ae1ebdfc3
FIX: use PostDestroyer when deleting/recovering a topic
2014-08-07 19:12:35 +02:00
Sam
cb0ecd9ff1
PERF: store topic views in a topic view table
...
* cut down on storage of the work Topic, 3 times per row (in 2 indexes)
* only store one view per user per topic
* only store one view per ip per topic
2014-08-04 19:07:55 +10:00
Sam
0920c4bea6
PERF: reduce storage requirements for incoming links
...
Only store incoming links for topics.
2014-08-04 11:06:48 +10:00
Sam
6dbd6f7428
FIX: redirect to preserve json
2014-07-30 15:25:49 +10:00
Sam
49d03cf14e
FEATURE: support for /t/1234
2014-07-29 16:04:28 +10:00
Sam
1359a02128
Merge pull request #2532 from riking/sidekiq
...
Pass more context from Sidekiq jobs to Logster
2014-07-18 10:24:51 +10:00
riking
12cb682548
Start passing more context to Discourse.handle_exception
2014-07-17 14:11:56 -07:00
riking
19b757b058
FEATURE: Hide deleted posts by default for staff
2014-07-17 10:40:15 -07: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
39b5539ba8
BUGFIX: downcase slugs
2014-06-25 11:36:17 +10:00
Régis Hanol
30611c343c
ensures only one banner topic at all time
2014-06-18 20:05:18 +02:00
Régis Hanol
5238a95efb
add make/remove banner topic actions
2014-06-18 20:05:18 +02:00