Sam
b4844d4477
FIX: correct old username index
...
(in some cases search was not finding accounts)
2014-11-18 14:32:23 +11:00
Robin Ward
0b0cee4e07
Merge pull request #2969 from cpradio/pr-add-category-to-group-posts
...
FEATURE: Add category to Group Post Listing
2014-11-17 16:02:15 -05:00
cpradio
cca78f1031
Remove n+1 query on Categories
2014-11-17 15:43:22 -05:00
Sam
6f7a89dcaa
PERF: use preloader trick to load topic categories
2014-11-17 18:03:11 +11:00
cpradio
bf7be0c130
FIX: Change is_staff to is_admin to match other places where guardian.allowed_category_ids is used
...
https://meta.discourse.org/t/security-permissions-and-messages-displayed-on-group-url/22169/17
2014-11-16 20:31:16 -05:00
Sam
c7bc692f40
PERF: stop querying banner topic on every page hit
2014-11-14 15:39:17 +11:00
Régis Hanol
bf666f8553
FEATURE: allow animated thumbnails
2014-11-13 23:30:34 +01:00
Régis Hanol
a8a0be0b34
FIX: change the unlisted/invisible topic state only when unhiding the first post
2014-11-12 16:34:30 +01:00
Sam
c98d0a8eb6
Revert "Revert "PERF: use distributed cache for site text and category slugs""
...
This reverts commit 65e7cd1d1d
.
2014-11-12 10:01:41 +11:00
Sam
65e7cd1d1d
Revert "PERF: use distributed cache for site text and category slugs"
...
This reverts commit a97f2eee05
.
2014-11-12 10:01:07 +11:00
Sam
a97f2eee05
PERF: use distributed cache for site text and category slugs
2014-11-12 09:44:44 +11:00
Sam
4e85fc9dae
PERF: cache all site_text in memory
2014-11-11 16:28:59 +11:00
Sam
b2af49251d
PERF: remove superflous queries from initial page loads
...
stop doing expensive work to figure out discourse style sheet
2014-11-11 15:32:44 +11:00
Sam
1a775aa784
Merge pull request #2784 from chancancode/upgrade-to-rails-master-4-2
...
[WIP] Upgrade to rails master/4.2
2014-11-11 09:46:02 +11:00
Régis Hanol
ec76be964e
UX: better footer handling
2014-11-10 21:51:55 +01:00
Sam
d77f218122
Don't try to publish messages on broken posts
2014-11-10 21:24:54 +11:00
Godfrey Chan
7351917ee4
Boolean -> String quoting has changed on Rails master
...
CustomField.create(name: 'zomg', value: true).reload.value # => 't' on Rails 4.1, '1' on 4.2
rails/rails@42be84ba
2014-11-10 01:05:46 -08:00
Régis Hanol
bb2d538194
FEATURE: log impersonations
2014-11-06 10:58:47 +01:00
Robin Ward
068d22e9b3
Add API support for querying admin reports by date range
2014-11-05 13:11:37 -05:00
Robin Ward
fde5e739c9
Work in progress (up till about?)
2014-11-05 12:39:25 -05:00
Régis Hanol
862c8a19a3
FEATURE: use img's title attribute in overlay information when provided
2014-11-03 22:03:06 +01:00
Régis Hanol
2c7b47fc40
fix the build
2014-11-03 20:42:13 +01:00
Régis Hanol
bdb78ce76a
FEATURE: consider SVG as an image when authorized
2014-11-03 19:54:10 +01:00
Régis Hanol
fd5677808c
SPEC: make sure digest doesn't pick any topics in categories that are muted
2014-11-03 16:57:50 +01: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
Robin Ward
f47ab30b04
Use a site setting for maximum summary results
2014-10-28 16:03:43 -04:00
Robin Ward
3eb020c466
Max out summary filter at 100 posts.
2014-10-28 15:58:04 -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
Sam
1cc37e32b9
FEATURE: add max_reply_history to limit number of replies
...
that can be expanded, when clicking "in-reply-to"
2014-10-27 09:44:42 +11:00
Sam
e20e6b4524
PERF: stop using jQuery to sanitize strings
2014-10-22 15:48:18 +11:00
Robin Ward
71f211f0b3
FEATURE: Allow users to select a badge with an image to appear on their
...
user card
2014-10-20 16:35:38 -04:00
Robin Ward
1cf4a0d604
Rename "User Expansion" to the much clearer "User Card"
2014-10-20 12:11:59 -04:00
Arpit Jalan
2131a37811
FEATURE: show raw email for replies/topics created via email
2014-10-17 22:22:19 +05:30
Sam
cb044bb219
Merge pull request #2851 from VickMellon/title_encoding_cast
...
FIX: force encoding for title field
2014-10-17 15:01:40 +11:00
Robin Ward
f3a67a48a3
Merge pull request #2874 from cpradio/clear-notifications
...
FEATURE: Mark All as Read button for Notifications page
2014-10-16 15:57:19 -04:00
Michael Verdi
1f95cfedc3
[patch] When a post is split out to be a new topic
...
the topic's last_post_user_id is set to the user who split out
the post. But, this should really be the user_id of the last post
of the split out posts.
2014-10-16 12:38:26 -07:00
Robin Ward
4d465362b5
FEATURE: Allow a user to upload an image for their expansion background.
2014-10-16 15:05:36 -04:00
Robin Ward
2c989f3eb3
FIX: ActiveRecord error when calling find
for the topic list key.
2014-10-15 15:29:45 -04:00
Régis Hanol
bb59798066
FEATURE: ensure consistency of post revisions
2014-10-15 21:09:08 +02:00
cpradio
8f390c979b
FEATURE: Mark All as Read button for Notifications page
...
Added a Mark All as Read button to the top/bottom of the notifications user page
https://meta.discourse.org/t/possibility-to-selectively-or-completely-mark-notifications-as-read/20227
Remove notifications property (no longer used)
2014-10-13 06:31:27 -04:00
Robin Ward
366d7e892c
Merge pull request #2867 from techAPJ/patch-1
...
FEATURE: send `set password` instructions after invite redemption
2014-10-14 11:01:07 -04:00
Régis Hanol
1f42e85e0d
Merge pull request #2873 from mcwumbly/hide-post-revisions
...
FEATURE: ability to hide/show specific post revisions
2014-10-14 16:45:17 +02:00
David McClure
19d5362c6b
FEATURE: ability to hide or show specific post revisions
2014-10-14 07:19:45 -07:00
Godfrey Chan
7ddf1df3e0
FIX: honor email_token_grace_period_hours
setting correctly
...
The documentation said that the unit for this setting is in *hours*, but the
code is treating it as *seconds*. Also, `Numeric#ago` has been deprecated since
Rails 4.1 (precisely to help prevent these kind of bugs) and will go away in
Rails 4.2.
2014-10-11 15:02:15 -07:00
Arpit Jalan
861f321263
FEATURE: send set password instructions after invite redemption
2014-10-11 14:13:05 +05:30
Régis Hanol
5754e8dd0f
FEATURE: auto-close topics based on last post
2014-10-10 18:21:44 +02:00
Arpit Jalan
430967c354
FIX: invite email should be verified against email_domains_blacklist
2014-10-09 20:21:01 +05:30
Robin Ward
f9a8f6d6ce
FEATURE: Support for a required
setting on user fields.
2014-10-08 15:10:19 -04:00
Régis Hanol
9f2be41710
this method isn't private
...
cc @akshaymohite
2014-10-08 20:11:28 +02:00
Robin Ward
1f26a79899
FIX: Category latest pages were not preloading properly, causing weird
...
refreshes when clicking the home logo.
2014-10-08 12:45:18 -04:00
Neil Lalonde
8a88e71b3c
FEATURE: permalinks lookup table can redirect to any arbitrary url
2014-10-08 11:51:24 -04:00
Sam
0e7be81e60
FIX: badge granted titles were not being revoked when badge was revoked
2014-10-08 10:26:18 +11:00
Neil Lalonde
a30e70e8f1
FEATURE: trust level 3: likes received must be on min_likes_received/3 different days, and be from min_likes_received/4 different users
2014-10-07 15:52:54 -04:00
Sam
836bc0f935
FIX: incorrect edit notification in user stream
...
FIX: missing edit notifications when post edited by multiple users
2014-10-07 15:57:48 +11:00
Sam
4e2f1811ca
a bit hackish, override fa-certificate for default icon (it is set by pg in the column default)
2014-10-07 12:01:06 +11:00
Robin Ward
e383a8ab01
Merge pull request #2854 from techAPJ/patch-1
...
Feature: resend invites
2014-10-06 17:25:36 -04:00
Neil Lalonde
96e4d2b662
remove the notification_email_top customization
2014-10-06 17:00:20 -04:00
Arpit Jalan
78fd99fc40
Feature: resend invites
2014-10-07 01:43:17 +05:30
Victor Kavunenko
1a52dba3af
due to travis error message: can't modify frozen string
2014-10-06 12:45:11 +03:00
Victor Kavunenko
9cf68c99b7
FIX: force encoding for title field
...
Job exception: incompatible character encodings: UTF-8 and ASCII-8BIT
--
This exception rise up for correct(!) UTF-8 cyrillic (in my case, but non-latin overall, I suppose) in title field during RSS polling (feed polling url) and breaks topics creation.
So, just force_encoding() makes it work.
2014-10-06 10:40:14 +03:00
Akshay
378bc6e5dc
private methods need to be called as method_name instead of ClassName#method_name
2014-10-04 09:53:46 +05:30
Akshay
9524b514c6
Fix access specifiers with private_class_methods instead of removing directly
2014-10-04 09:20:41 +05:30
Sam
81e91f3fd7
FIX: unlisted topics listed in activity stream
2014-10-03 15:37:51 +10:00
Robin Ward
381814fd5d
Adds support for a description to user fields.
2014-10-02 15:56:52 -04:00
Sam
37af13f6ea
FIX: badge notifications are marked read by the system after opening
2014-10-02 16:08:31 +10:00
Sam
72a28aeb7c
FEATURE: always show highest trust level badge in card
...
FEATURE: fa-user icon for trust level badges
2014-10-02 16:08:31 +10:00
Régis Hanol
70884d2436
FEATURE: automatically hide posts made by TL0 users when flagged by a TL3 user
2014-10-01 18:53:17 +02:00
Régis Hanol
98b6b9821a
FEATURE: log topic/post deletions from staff members
2014-10-01 17:40:13 +02:00
Robin Ward
8b5a1cd20f
Migrate tosAccepted
to new user fields
2014-09-30 10:45:18 -04:00
Robin Ward
edb34c178a
FEATURE: Show user fields when the user is signing up
2014-09-30 10:45:18 -04:00
riking
bff95a6a97
Rename 'leader' -> 'tl3'
2014-09-30 13:16:34 +10:00
riking
c8111ada6e
FEATURE: Allow admins to lock users from TL3 promotion/demotion
...
Also, update the display logic for the leader promotion screen to
account for the demotion grace period.
2014-09-30 13:15:13 +10:00
Régis Hanol
7e309a21cf
FEATURE: hide emails behind a button for staff members
2014-09-29 22:31:05 +02:00
Neil Lalonde
6e11ae4f5c
remove deprecated TOS text content
2014-09-29 14:04:53 -04:00
Sam
8371837b21
Merge pull request #2808 from gschlager/i18n_fix07
...
FIX: Category creation failed when translation was missing
2014-09-29 16:20:02 +10:00
Robin Ward
0fc0533134
FEATURE: Admin interface for adding custom fields for users
2014-09-25 16:17:51 -04:00
Régis Hanol
69400a802f
FEATURE: auto-delete any hidden posts that stay hidden for more than 30 days
2014-09-25 19:51:00 +02:00
Régis Hanol
b16e6f8289
FIX: stream backups upload to S3
2014-09-25 18:28:51 +02:00
Régis Hanol
de76b512c1
fix most deprecations in the specs (still some left)
2014-09-25 17:44:48 +02:00
Sam
c248d28c38
FEATURE: display associated accounts in admin user
2014-09-25 16:15:01 +10:00
Régis Hanol
bfdbb70b3b
FIX: automatic backup uploads to S3 when using a region
2014-09-24 22:52:09 +02:00
Robin Ward
bc53d48bd7
Renaming site contents to site text
2014-09-24 16:08:14 -04:00
Neil Lalonde
d96acdeafa
FEATURE: screened IP address range can be entered like 192.* instead of 192.*.*.*
2014-09-24 12:05:29 -04:00
Régis Hanol
7bc223ef7c
FEATURE: improve flags reminder email
2014-09-23 18:37:31 +02:00
Régis Hanol
0b13f6572f
FEATURE: staff option to unhide a post
2014-09-22 18:55:13 +02:00
Gerhard Schlager
a6714e252e
FIX: Category creation failed when translation was missing
2014-09-20 22:06:00 +02:00
Sam Saffron
4e91059f89
FIX: missing avatar when sizing down window
2014-09-19 12:35:35 +10:00
Sam
96660b58fa
Merge pull request #2801 from jrhe/s3_govcloud_support
...
Adds govcloud region to s3 region list
2014-09-17 00:23:26 +10:00
Sam Saffron
8ba8846589
FIX: Allow Reader badge if you over read a topic
2014-09-16 07:07:47 +10:00
Jonathan Richard Henry Evans (JRHE)
38202d5037
Adds govcloud region to s3 region list
2014-09-15 19:34:12 +01:00
riking
2c6d03f87f
SECURITY: Limit passwords to 200 characters
...
Prevents layer 8 attack.
2014-09-12 12:07:11 -04:00
Sam
6d5e6b3e33
FIX: max 1 day of view time per topic
...
we were overflowing ints in some conditions and flooding error logs
2014-09-12 16:59:43 +10: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
Sam
42104685f7
FIX: badge flood
2014-09-11 13:34:19 +10:00
Sam
43e132d5a6
FEATURE: sharing badges (nice share, good share, great share)
...
FIX: bad translation
2014-09-11 13:10:37 +10:00
Sam
7f3797b635
FEATURE: Nice Topic, Good Topic and Great Topic badges
...
Note we will revoke all old badges post badges that went to post #1
and instead get topic badges
2014-09-11 12:36:37 +10:00
Régis Hanol
18f8038015
FEATURE: add new 'convert to staff message' in post wrench menu
2014-09-10 23:08:33 +02:00
Régis Hanol
8f45091ba5
FIX: don't try to feature a topic more than once per category
2014-09-10 16:18:28 +02:00
Sam
ca2100d012
PERF: work around LIMIT breaking query plan
...
(CTE is a optimisation boundary, so limit no longer has any effect on plan)
2014-09-10 22:19:49 +10:00
Sam
91dcc56fb3
Revert "PERF: avoid OR in complex query"
...
This reverts commit a8dc6daa38
.
2014-09-10 17:10:57 +10:00
Sam
a8dc6daa38
PERF: avoid OR in complex query
...
10x perf improvement on front page for sitepoint
2014-09-10 16:33:39 +10:00
Régis Hanol
598a3f3e10
FIX: 'disable_edit_notifications' will only disable revisions made by the system user
2014-09-09 18:56:04 +02:00
Régis Hanol
7f498a8795
FIX: N+1 query on /categories page
2014-09-09 15:32:58 +02:00
Robin Ward
56eda5abf9
FIX: Don't allow profile bios longer than 3k chars
2014-09-08 15:23:21 -04:00
Robin Ward
4f6b9815ae
FEATURE: List moderator warnings on admin dashboard
2014-09-08 13:25:02 -04: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
Gerhard Schlager
970aafecb4
FIX: Some default group names could not be translated
2014-09-07 14:48:03 +02:00
Neil Lalonde
ca5f361d0a
FEATURE: restrict admin access based on IP address
2014-09-05 12:06:01 -04:00
Sam
59d04c0695
Internal renaming of elder,leader,regular,basic to numbers
...
Changed internals so trust levels are referred to with
TrustLevel[1], TrustLevel[2] etc.
This gives us much better flexibility naming trust levels, these names
are meant to be controlled by various communities.
2014-09-05 15:20:52 +10:00
Jeff Atwood
fcca64c0cf
rename site settings for trust levels as numbers
2014-09-04 13:16:51 -07:00
riking
54484ca18a
"FIX": Add error reporting to NotifyMailingListSubscribers
...
Also skip unactivated users, which may actually fix this
2014-09-03 14:53:05 -07:00
Robin Ward
b04a52676e
FIX: Don't show wrong flag choices after undo
2014-09-02 17:37:54 -04:00
Sam
22fbae8556
Merge pull request #2674 from akshaymohite/optimization-fixes
...
renamed unused variables properly
2014-09-02 08:22:43 +10:00
Sam
e0c8abc911
Merge pull request #2717 from riking/badge-solid
...
Admin badge interface improvements
2014-09-02 08:21:06 +10:00
riking
808460a28f
Fix magic numbers, extra param references
2014-08-31 19:36:31 -07:00
Kamil Bielawski
bf679f1626
FIX: destroy CategoryGroup when Category or Group is destroyed
2014-08-31 22:10:38 +02:00
riking
1833b43ae2
FEATURE: Badge query validation, preview results, and EXPLAIN
...
Upon saving a badge or requesting a badge result preview,
BadgeGranter.contract_checks! will examine the provided badge SQL for
some contractual obligations - namely, the returned columns and use of
trigger parameters.
Saving the badge is wrapped in a transaction to make this easier, by
raising ActiveRecord::Rollback on a detected violation.
On the client, a modal view is added for the badge query sample run
results, named admin-badge-preview.
The preview action is moved up to the route.
The save action, on failure, triggers a 'saveError' action (also in the
route).
The preview action gains a new parameter, 'explain', which will give the
output of an EXPLAIN query for the badge sql, which can be used by forum
admins to estimate the cost of their badge queries.
The preview link is replaced by two links, one which omits (false) and
includes (true) the EXPLAIN query.
The Badge.save() method is amended to propogate errors.
Badge::Trigger gets some utility methods for use in the
BadgeGranter.contract_checks! method.
Additionally, extra checks outside of BadgeGranter.contract_checks! are
added in the preview() method, to cover cases of null granted_at
columns.
An uninitialized variable path is removed in the backfill() method.
TODO - it would be nice to be able to get the actual names of all
columns the provided query returns, so we could give more errors
2014-08-31 11:25:44 -07:00
Neil Lalonde
ec42b61a4d
FIX: suspended users cannot be trust level 3
2014-08-29 12:33:34 -04:00
riking
3396e6fea3
Centralize MessageBus post updates
...
After this change, only two files directly publish to MessageBus with a
topic interpolated in the channel: Post and TopicUser.
2014-08-28 20:40:36 -07:00
Sam
8ab9c57ca5
Merge pull request #2707 from eyalev/rtl-email
...
Enable RTL direction in emails.
2014-08-29 09:54:57 +10:00
Sam
5b696ca25a
Merge pull request #2708 from Wilhansen/sso_override_avatar
...
Fix SSO avatar downloading issues.
2014-08-29 09:53:48 +10:00
Neil Lalonde
14890a6002
FEATURE: add a way to map arbitrary urls to a topic, post, or category. Useful for sites that have migrated to Discourse and want to redirect from their old site to Discourse with 301 redirects.
2014-08-28 15:58:24 -04:00
Robin Ward
69cb5bc425
FIX: Centralize Top rendering, remove old code paths. Fix some bugs.
2014-08-28 14:34:31 -04:00
Robin Ward
0ae3c327de
Add a message to the staff logs indicating why a user was purged
2014-08-27 16:05:07 -04:00
Neil Lalonde
99d26cef1a
FIX: uncategorized counts were always 0. topics_year, topics_month, topics_week, topics_day
2014-08-27 15:58:32 -04:00
Wilhansen Li
bba3f7c0ac
Fix SSO avatar downloading issues.
...
* Follow redirects when downloading SSO avatars.
* Add proper image ext. to downloaded SSO avatars.
2014-08-27 21:35:54 +08:00
Eyal Levin
e0c2f3df3a
Enable RTL direction in emails.
2014-08-27 14:38:03 +03:00
Sam
87d2be3ecf
FIX: ensure triggered badges are never triggered if filter is missing
2014-08-27 18:02:13 +10:00
Sam
898d86fd9b
correct annotations
2014-08-27 15:30:17 +10:00
Sam
414c6d191f
FIX: remove nullable dates post upgrade to Rails 4
2014-08-27 15:19:25 +10:00
Sam
1ccfb4fa20
FIX: crashing job
2014-08-26 16:22:13 +10:00
Robin Ward
ed125975a1
SECURITY: Prefix session key and validate token format.
2014-08-25 15:31:49 -04:00
Neil Lalonde
bbb358b356
Add likes given and likes received requirement for being TL3. Configure with site settings leader_requires_likes_given and leader_requires_likes_received.
2014-08-22 17:33:39 -04:00
Neil Lalonde
00c28f2391
Show total likes given. Put likes given/received and flags given/received together.
2014-08-22 15:23:19 -04:00
Neil Lalonde
dafc63e3a0
Show how many likes users received in the last 100 days on their admin profile page
2014-08-22 14:37:07 -04:00
Neil Lalonde
5454c1ed24
Updated model anotations
2014-08-22 13:01:44 -04:00
Sam
c865bf0d71
Merge pull request #2670 from Wilhansen/sso_override_avatar
...
Implement SSO overriding avatars.
2014-08-22 10:22:06 +10:00
Robin Ward
506dca6d4e
FIX: Moving posts was not updating reply_count
and
...
`reply_to_post_number` so reply linkage was broken.
2014-08-20 14:15:23 -04:00
Akshay
0862a65d4a
renamed unused variables properly
2014-08-20 23:44:19 +05:30
Régis Hanol
054ae8bc13
TRIVIAL: do not remove backups in development
2014-08-20 18:58:58 +02:00
Robin Ward
c316894167
TWEAK: Don't include moderators on "About" if they are admins.
2014-08-20 12:43:02 -04: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
Robin Ward
6ef85ea014
UX: Don't highlight the latest poster in the topic list if there is only
...
one avatar shown.
2014-08-20 12:09:39 -04:00
Robin Ward
3235f2c477
FIX: Don't try and delete inactive admins, rare as they may be.
2014-08-19 13:47:01 -04:00
Régis Hanol
f2b0228164
FIX: unhide post when a moderator undos the flag on which s/he took action
2014-08-19 16:14:17 +02:00
Akshay
3fd784b513
removed useless assignments at some places
2014-08-19 18:10:23 +05:30
Wilhansen Li
e0f970326f
Implement SSO overriding avatars.
...
Implemented by having Discourse download the image from the provided URL
and treating it as a custom upload.
Adds two more parameters to the SSO site’s response:
* `avatar_url` specifies the URL of the overriding avatar.
* `avatar_force_update` Discourse does not re-download avatars that
has already been download from the same URL. Setting this to true forces
Discourse to re-download the avatar in `avatar_url`
Note that both parameters are ignored if `sso_overrides_avatar` is set
to false.
2014-08-19 15:53:34 +08:00