Commit Graph

806 Commits

Author SHA1 Message Date
Sam
7e3543d96f correct plugin specs 2018-01-12 14:42:05 +11:00
Jeff Atwood
dcbaf2f213 copyedit: personal, not private, message throughout 2018-01-11 16:04:14 -08:00
Neil Lalonde
e3965b4492 Update translations 2018-01-03 12:21:03 -05:00
Joffrey JAFFEUX
b295c03001
FIX: select single choice as default when building a poll 2018-01-03 09:23:15 +01:00
Neil Lalonde
0567d523ee Update translations 2017-12-29 14:51:53 -05:00
Régis Hanol
779efd9235 FIX: don't set properties on destroyed components 2017-12-22 20:33:33 +01:00
Joffrey JAFFEUX
315b9d796d
select-kit refactoring
* better test helper
* more reliable tests
* more consistent use of data-value/data-name/title/aria-label everywhere: header and rows
2017-12-22 13:08:12 +01:00
Guo Xiang Tan
d80aca0484 FIX: Don't start discobot poll tutorial if polls are disabled.
https://meta.discourse.org/t/discobot-dont-take-users-through-the-poll-tutorial-if-its-not-enabled/76604/3
2017-12-22 15:46:46 +08:00
Guo Xiang Tan
32171ad286 FIX: Invalid logo in discobot's certificate when SiteSetting.logo_small_url is blank.
https://meta.discourse.org/t/broken-image-in-discobot-certificate-with-no-logo-small-url/76594/2
2017-12-22 09:36:53 +08:00
Guo Xiang Tan
ee1b90503c FIX: Error when an invalid date is passed to certificate generator.
https://meta.discourse.org/t/broken-image-in-discobot-certificate-with-no-logo-small-url/76594/2
2017-12-22 09:36:52 +08:00
Kris
744bb72cf9 UX: Better centering in presence plugin 2017-12-20 16:45:07 -05:00
Neil Lalonde
7e3c4b4b2f Update translations 2017-12-20 15:28:29 -05:00
blokovi
0df1c85fd3 FEATURE: Serbian translation (#5443) 2017-12-19 12:26:06 +01:00
Sam
fb9fadf42c FIX: publish presence to allowed groups as well 2017-12-19 12:17:08 +11:00
Régis Hanol
a7844de7ee UX: only publish presence when typing a message 2017-12-18 22:00:55 +01:00
Sam
de20e36629 cancel timer when removing composer 2017-12-18 22:26:00 +11:00
Sam
fd67508497 FIX: don't count users as replying long after they are done typing
Also, don't leak a large amount of redis usage for presence stuff
2017-12-18 15:41:32 +11:00
Joffrey JAFFEUX
c1c31b99ce
Replaces toolbar popup-menu with select-kit 2017-12-13 10:49:32 +01:00
Gerhard Schlager
19ee2c3fac Add presence plugin to pull translations script to fix the build 2017-12-11 20:37:54 +01:00
Neil Lalonde
929aa98723 Update translations 2017-12-11 12:01:57 -05:00
Kyle Zhao
c52f747031 FEATURE: Catalan Translations (#5404) 2017-12-07 10:36:25 +01:00
Régis Hanol
023fcb04b5 make eslint happy 2017-12-06 22:23:38 +01:00
Régis Hanol
ae0acfb1df FEATURE: live reply indicators at the bottom of topic 2017-12-06 21:58:59 +01:00
Neil Lalonde
978cf9485f Update translations 2017-12-06 10:25:12 -05:00
Neil Lalonde
b970451f30 FIX: Update translations job was aborting at discourse-presence 2017-12-06 10:25:00 -05:00
Joffrey JAFFEUX
067d454937
FIX: makes sur we have polls before validating 2017-12-05 12:07:21 -05:00
Joffrey JAFFEUX
316d814130
FIX: staff should always be allowed to create polls if they are enabled 2017-12-05 00:03:56 +01:00
Joffrey JAFFEUX
76bc173d47
FEATURE: adds poll_allow_staff_to_create
This setting will bypass poll_minimum_trust_level_to_create if set to true
2017-12-04 18:12:17 +01:00
Joffrey JAFFEUX
1e0bfa1d97
FIX: poll new_post_manager spec 2017-12-04 16:12:40 +01:00
Joffrey JAFFEUX
63bab32816 FEATURE: introduces minimum trust level for polls (#5391)
* FEATURE: introduces minimum trust level for polls

This commit makes `poll_enabled` less misleading and introduces `poll_minimum_trust_level_to_create`. If poll are enabled they will always be cooked, and if you have the required trust level you can create polls. As a side effect, it also fixes a bug where rebaking a post created by staff member when `poll_enabled=false` would end up not cooking it.

It also adds more tests to ensure settings are respected.

* admins should be whitelisted

* checks for admin in post validation

* test for >= instead of == trust level
2017-12-04 14:47:11 +01:00
Neil Lalonde
1603dcf0d1 Update translations 2017-11-30 15:32:15 -05:00
Eric Berry
ab22c8cad4 FIX: Infinite loop when poll step is zero (#5380)
* Fix infinite loop when poll step is zero

* Add test for step minimum and for breaking test

* Remove trailing spaces (eslint)

* Remove extra space (eslint)

* Removed test call .twice
2017-11-30 17:04:41 +01:00
Kris
ada1d6b987
Composer restyle
* composer restyle, some input normalization

* style adjustments: spacing, preview background, colors

* small spacing adjustments, removing default iOS input appearance, fixing merge

* small width adjustment

* fixing mobile link modal for small devices

* FIX: more resilient allowInitiatlValueMutation implementation

* Build scrollMap only on scroll.

* FIX: pick date and time was not reseting state

* FIX: removes auto sizing and touchstart support for now

* Revert "FIX: reflects discourse icons naming scheme s/d-icon-*/d-*"

This reverts commit b5ed980235.

* tweak icon-library generation

* FIX: regression preventing to set number of hours before closing

This commit also adds a full test suite for editing topic timer.

* FIX: makes allowInitialValueMutation more restrictive

* FIX: invite-list expects initial value mutation

* fixing tag input spacing

* minor input cleanup

* bump onebox version

* FIX: avoids test failing at some times of the day

* FIX: various issues when editing category permissions

This commit also adds multiple tests
2017-11-27 15:23:18 -05:00
Arpit Jalan
6aeeae287b fix the build (take 2) 2017-11-27 23:49:35 +05:30
Arpit Jalan
bf415f2d40 FIX: youtube playlist videos were not functioning properly in fullscreen 2017-11-27 22:56:44 +05:30
Joffrey JAFFEUX
9208909b26 tweak icon-library generation 2017-11-23 18:24:26 +01:00
Régis Hanol
4bc2ce2f4d didn't mean to remove that seed 2017-11-23 17:00:47 +01:00
Régis Hanol
a38391a6bc FIX: ensure discobot always has a primary email 2017-11-23 16:54:40 +01:00
Joffrey JAFFEUX
39f3dbd945
Introduces select-kit
* renames `select-box-kit` into `select-kit`
* introduces `single-select` and `multi-select` as base components
* introduces {{search-advanced-category-chooser}} as a better component for selecting category in advanced search
* improves events handling in select-kit
* recreates color selection inputs using {{multi-select}} and a custom {{selected-color}} component
* replaces category-selector by a component using select-kit and based on multi-select
* improves positioning of wrapper
* removes the need for offscreen, and instead use `select-kit-header` as a base focus point for all select-kit based components
* introduces a formal plugin api for select-kit based components
* introduces a formal pattern for loading and updating select-kit based components:

```
computeValue()
computeContent()
mutateValue()
```
2017-11-21 11:53:09 +01:00
David Taylor
28073413eb FIX: Presence bug (#5329)
* Add failing test case

* FIX: new activity was not triggering cleanup
2017-11-20 15:24:59 +01:00
Angus McLeod
c8a6e5cbb3 If there is a specific error it should be shown to the user (#5323)
e.g. post_is_deleted, or topic_must_be_open_to_vote
2017-11-17 12:12:13 +01:00
Quim Gil
e4464351a2
Changing misattributed Mahatma Gandhi's quote
As reported at https://meta.discourse.org/t/gandhi-misattributed/74022
2017-11-14 00:37:20 +01:00
Neil Lalonde
13c91fc7ec Update translations 2017-11-13 15:02:53 -05:00
Guo Xiang Tan
442d4bff85 Add onceoff job to remap bot images link.
https://meta.discourse.org/t/discobot-tutorial-broken-elipsis-and-bookmark-png-images-appear-to-be-missing-on-my-site/73294/12
2017-11-07 23:36:59 +08:00
Kyle Zhao
c1926e6dd2 FIX: do not generate multiple detail blocks when the selected input (#5290)
consists of multiple lines
2017-11-06 18:03:52 +11:00
Neil Lalonde
419d7daf4b Update translations 2017-10-30 10:58:17 -04:00
Sam
7ca08216bd FIX: ensure we have no dangling db connections on threads
This correct 10 second timeouts in dev mode, when reloader kicks in
2017-10-30 14:24:15 +11:00
Joffrey JAFFEUX
7bccd47315 remove mistakenly checked file 2017-10-20 07:07:51 -07:00
Joffrey JAFFEUX
ae1743c61f [WIP] select-box-kit refactoring 2017-10-19 12:51:08 -07:00
Robin Ward
838568cbc3 Refactor flag types for more customization 2017-10-19 13:55:23 -04:00
Neil Lalonde
0a31190254 Update translations 2017-10-13 09:58:41 -04:00
Guo Xiang Tan
6cb29e3e20 Remove custom symlinks in discourse-narrative-bot. 2017-10-10 13:46:58 +08:00
Neil Lalonde
3a29ba71a3 Update translations 2017-10-06 10:37:57 -04:00
Guo Xiang Tan
4ba5e678d8 Require dependencies to enable live reload in dev for Sidekiq. 2017-10-06 11:39:00 +08:00
Guo Xiang Tan
5c1d551e9c Fix broken spec. 2017-10-02 12:28:14 +08:00
Guo Xiang Tan
95358304d9 FIX: Don't raise an error when post has been destroyed. 2017-10-02 12:00:43 +08:00
Neil Lalonde
d2d272c5f1 Update translations 2017-09-28 13:37:19 -04:00
Guo Xiang Tan
23b787e0a6 Require dependency otherwise it causes Sidekiq to lock up in development. 2017-09-25 13:48:59 +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
Gerhard Schlager
a1ee61ec25 handle empty locale file in Transifex pull script 2017-09-16 23:33:21 +02:00
Gerhard Schlager
de19c8e70c update translations 2017-09-16 22:42:28 +02:00
Régis Hanol
2a140b3848 update translations 2017-09-16 00:53:23 +02:00
Neil Lalonde
346442134e Update translations 2017-09-14 11:02:39 -04:00
David Taylor
8825581d98 Discourse-presence improvements
- Added guardian checks to endpoint
- Added security to messagebus publishing
- Added specs for security measures
- Moved all logic into component
- Stop sending ‘keepAlive’ messages if the user stops editing for more then 2 minutes

- Enable plugin by default
2017-09-08 14:32:13 -07:00
Robin Ward
7eb79ea31d FIX: Only enable the controller when the plugin is enabled 2017-09-08 10:45:14 -04:00
Robin Ward
ac00f8b984 Disable presence for now 2017-09-08 10:36:10 -04:00
Robin Ward
a9ed0023dc FIX: Presence was broken with a null array 2017-09-08 10:20:35 -04:00
Robin Ward
846e573766 Use a connector class to determine wheteher to render presence 2017-09-08 10:20:35 -04:00
Guo Xiang Tan
84031c5cb9 Make eslint happy. 2017-09-08 14:08:19 +08:00
David Taylor
feef5491a2 Simplify copy & add transifex config 2017-09-08 00:47:35 +01:00
David Taylor
c9912fcc37 Add discourse-presence as a core plugin (#5137)
* Add discourse-presence as a core plugin

* Default enabled
2017-09-07 09:40:18 +02:00
Robin Ward
e41a828774 Update translations 2017-08-31 14:50:40 -04:00
Neil Lalonde
ea969d1ed0 FEATURE: add Thai language 2017-08-25 12:33:09 -04:00
Kyle Zhao
133ab03c01 fix 'details' button acceptance test 2017-08-25 08:36:32 -07:00
Jeff Atwood
e8a2aaafeb add quotes to toolbar details insertion 2017-08-24 17:04:46 -07:00
Guo Xiang Tan
950fa9e3a8 FIX: Skip trigger match should be case insensitive.
https://meta.discourse.org/t/discobot-not-skipping-tutorial/68498
2017-08-22 07:45:46 +09:00
Neil Lalonde
3b7657e4b3 Update translations 2017-08-16 11:38:45 -04:00
Neil Lalonde
130ae2cd4b FEATURE: add Latvian language 2017-08-15 11:40:00 -04:00
Sam
43c0111ca1 FIX: multichoice poll with more than 25 votes
In the past we would double up on avatars due to incorrect logic for
handling offset
2017-08-14 15:33:59 -04:00
Régis Hanol
80daa7006c use new reload-friendly API 2017-08-12 04:22:44 +02:00
Jeff Atwood
c1228dab25 improve discobot onebox link help 2017-08-10 14:15:30 -07: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
Erick Guan
468a8fcd20 FEATURE: Site settings defaults per locale
This change-set allows setting different defaults for different locales. 

It also:

- Adds extensive testing around site setting validation

- raises deprecation error if site setting has the default property based on env

- relocated site settings for dev and tests in the initializer

- deprecated client_setting in the site setting's loading process

- ensure it raises when a enum site setting being set

- default_locale is promoted to `required` category.

- fixes incorrect default setting and validation

- fixes ensure type check for site settings

- creates a benchmark for site setting

- sets reasonable defaults for Chinese
2017-08-02 12:24:19 -04:00
David Taylor
ea032d8372 Improve source code linting for continuous integration (#5017)
* Add rubocop linting to docker:test rake task

* Add eslint JS listing to plugin files, and add SKIP_LINT variable

* Fix failing ‘polls’ plugin eslint

Using eslint-disable-line, as is done in core qunit tests such as `acceptance/group-logs-test.js.es6`

* Add plugin test eslint to travis config

* Merge some eslint lines
2017-08-02 11:33:29 +09:00
Neil Lalonde
2feec43bd7 Update translations 2017-08-01 13:11:52 -04:00
Guo Xiang Tan
0eb7159e51 UX: Discobot advanced tutorial certificate does not work with dark theme.
https://meta.discourse.org/t/discobot-assets-certificate-svg/65523/11?u=tgxworld
2017-07-31 15:27:47 +09:00
Guo Xiang Tan
5012d46cbd Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
Robin Ward
5b590b9637 REFACTOR: Replace some fa-* uses with helpers 2017-07-27 14:55:41 -04:00
Robin Ward
e87125b63c FEATURE: Plugins can overwrite and add support for new icons 2017-07-26 13:21:17 -04:00
Neil Lalonde
24cb950432 FEATURE: Watched Words: when posts contain words, do one of flag, require approval, censor, or block 2017-07-26 11:01:09 -04:00
Sam
8317fb12e0 FIX: don't escape html of poll options 2017-07-25 13:38:19 -04:00
Sam Saffron
045a2abcec FEATURE: remove the timecop gem
We should only have one way of mocking time, misuse of timecop
was causing build stability issues
2017-07-24 12:11:10 -04:00
Sam
bb1ac09ad7 amend to match latest api changes 2017-07-21 16:16:07 -04:00
Sam
9b4f5710e6 api cleanup for before / after rules 2017-07-21 16:12:11 -04:00
Arpit Jalan
d666b73893 Update translations. 2017-07-20 14:57:02 +05:30
Leo McArdle
d0b027d88d FEATURE: phase 1 of supporting multiple email addresses 2017-07-20 11:22:27 +09:00
Sam
14c2439473 correct specs so they run on latest 2017-07-18 15:45:23 -04:00
Sam
b7f58fe880 regression polls could not be closed properly 2017-07-18 14:52:58 -04:00
Sam
660d5e0a35 fix broken spec 2017-07-18 14:44:49 -04:00
Sam
93e5112dfa correct poll specs 2017-07-18 14:31:22 -04:00
Sam
1661a8745b correct issues with poll specs
fixes regression where an error message is missing from a poll
with one option
2017-07-17 17:44:48 -04:00
Sam
8921058c67 FIX: medium URL with @ incorrectly handled as mention
Also:

- remove unused code
- rename bbcode_ruler to bbcode.ruler
- add md.core.textPostProcess.ruler to apply at end of chain (excluding links)
2017-07-17 17:44:48 -04:00
Sam Saffron
d0c5205a52 Feature: Change markdown engine to markdown it
This commit removes the old evilstreak markdownjs engine.

- Adds specs to WhiteLister and changes it to stop using globals
    (Fixes large memory leak)
- Fixes edge cases around bbcode handling
- Removes mdtest which is no longer valid (to be replaced with
    CommonMark)
- Updates MiniRacer to correct minor unmanaged memory leak
- Fixes plugin specs
2017-07-17 11:41:34 -04:00
Guo Xiang Tan
78bb367b0a FIX: Discobot's certificate shouldn't blow up on non 200 response.
https://meta.discourse.org/t/discobot-assets-certificate-svg/65523/6
2017-07-14 15:16:29 +09:00
Guo Xiang Tan
e80a1dfa43 FIX: Post with multiple polls containing votes can not be edited.
https://meta.discourse.org/t/500-internal-server-error-when-editing-specific-poll-in-a-post-with-votes-editing-other-polls-works-fine/59684
2017-07-14 12:33:22 +09:00
Guo Xiang Tan
f1141ee4f6 Revert "Convert emoji keywords in bot narrative to use native characters."
This reverts commit bfc4f15b93.

* Transifex doesn't like those unicode strings.
2017-07-14 11:27:15 +09:00
Guo Xiang Tan
bfc4f15b93 Convert emoji keywords in bot narrative to use native characters.
* Makes the narrative work even when emoji is disabled.
2017-07-13 16:04:35 +09:00
Guo Xiang Tan
c049e18203 FEATURE: Allow tutorials to declare prerequisite before it starts. 2017-07-13 15:12:45 +09:00
Sam
d609f8a53c Revert "correct more specs"
This reverts commit 40bcc6bbdc.
2017-07-12 18:10:05 -04:00
Sam
40bcc6bbdc correct more specs 2017-07-12 17:44:40 -04:00
Neil Lalonde
d1d43ff5d9 FIX: report discobot messages as system messages instead of user-to-user 2017-07-12 16:00:18 -04:00
Guo Xiang Tan
b512ffa9eb Merge pull request #4972 from davidtaylorhq/details-integration-test
Fix for the last broken discourse-details qunit test
2017-07-12 09:12:09 +09:00
David Taylor
2808e3f63e Fix for the last broken discourse-details qunit test 2017-07-11 22:43:33 +01:00
Sam
5d139e461c FIX: multi option poll not working (new engine) 2017-07-11 14:43:34 -04:00
David Taylor
c8e9f4bd3a Fix failing discourse-details plugin qunit tests 2017-07-11 17:25:53 +01:00
Robin Ward
f1a6449e4b SECURITY: Remove disposable invite feature 2017-07-07 20:24:39 -04:00
Robin Ward
754c1e5438 Upgrade to Babel 6 2017-07-05 15:25:23 -04:00
Arpit Jalan
25d70ec900 Update Translations 2017-07-05 11:35:35 +05:30
Matt Palmer
c3ca281ea7 Merge pull request #4943 from mpalmer/log-http-host
Include HTTP Host header in nginx logs
2017-06-30 15:16:53 +10:00
Sam
6200d7d6ab correct bug where only a single poll per topic worked 2017-06-28 15:36:19 -04:00
Sam
c1560d8195 FIX: generate multiline details instead of inline 2017-06-28 11:45:48 -04:00
Matt Palmer
90d654c46c Include HTTP Host header in nginx logs
This is crucial in multisite installations, because otherwise the nginx logs
are fairly useless, however it can also be quite handy to know what
hostnames are being sent to your site.  The variable is quoted, because it
is untrusted input (it is taken directly from the HTTP request), but nginx
helpfully escapes the quoting character automagically, so we don't have to
worry about that.

For now, the log analysis plugin *recognises* the new log format
(and continues to recognise the previous format, for backwards
compatibility), but doesn't do anything with the new log entry field.  This
means your multisite performance plugin data is still broken, but it's no
worse than it was before.
2017-06-28 14:41:02 +10:00
Guo Xiang Tan
a10689de94 Fix broken specs due to new default emoji set. 2017-06-27 10:13:21 +09:00
Neil Lalonde
febfe27669 Update translations 2017-06-26 14:56:22 -04:00
Sam
234694b50f Feature: CommonMark support
This adds the markdown.it engine to Discourse.
https://github.com/markdown-it/markdown-it

As the migration is going to take a while the new engine is default
disabled. To enable it you must change the hidden site setting:
enable_experimental_markdown_it.

This commit is a squash of many other commits, it also includes some
improvements to autospec (ability to run plugins), and a dev dependency
on the og gem for html normalization.
2017-06-23 12:01:33 -04:00
Guo Xiang Tan
a23ce56682 Update translations. 2017-06-19 12:39:30 +09:00
Guo Xiang Tan
e7571d1c5d Merge pull request #4933 from tgxworld/use_username_in_cert
FIX: Use username in bot's certificate.
2017-06-19 07:24:55 +09:00
Guo Xiang Tan
f8a46c510f FIX: Recover post tutorial does not work when SiteSetting.delete_removed_posts_after is 0. 2017-06-16 13:03:34 +09:00
Guo Xiang Tan
716b0235f9 FIX: Use username in bot's certificate.
* The default name generated can be weird sometimes.
2017-06-16 10:32:43 +09:00
Robin Ward
cc525b1a8d Upgrade QUnit to latest version 2017-06-15 10:12:07 -04:00
Robin Ward
8ae445766f Upgrade Ember to 2.13 2017-06-15 10:12:07 -04:00
Arpit Jalan
4112c2b883 Update translations 2017-06-12 21:24:40 +05:30
Guo Xiang Tan
e888369f51 UX: Don't send emails for discobot notifications. 2017-06-12 17:00:27 +09:00
Guo Xiang Tan
a7ed6bd9e1 Use User#username_lower instead. 2017-06-12 10:58:31 +09:00
Robin Ward
d8ba1c66d5 FIX: Don't fail seed if avatar can't be downloaded 2017-06-09 11:01:48 -04:00
Régis Hanol
6997925a52 Merge pull request #4910 from jomaxro/patch-2
Add missing URL
2017-06-08 14:00:37 +02:00
Guo Xiang Tan
977bbb1f45 FIX: Bot mentioned check should be case insensitive. 2017-06-08 19:00:07 +09:00
jomaxro
dbaf7ad052 Add missing URL 2017-06-08 00:14:20 -04:00
Guo Xiang Tan
677fbc783d Fix randomly failing spec. 2017-06-08 05:47:44 +09:00
Arpit Jalan
d326784ecf Update translations 2017-06-07 20:13:54 +05:30
Guo Xiang Tan
17c29c972b Move the constant as well. 2017-06-06 15:38:26 +09:00
Guo Xiang Tan
c1dc6f6cd7 FIX: Track should only continue if user is alone with bot in a PM. 2017-06-06 09:47:00 +09:00
Guo Xiang Tan
30f2758404 FIX: Ensure that we cancel any timeout jobs when terminating a track. 2017-06-05 16:23:25 +09:00
Guo Xiang Tan
3621647fb5 FIX: Bot should only respond to regular posts. 2017-06-05 15:21:19 +09:00
Guo Xiang Tan
cd2869c767 Revert "Skip validations when Discobot creates new posts."
This reverts commit ca7e906774.

Post validations are already skipped for admin users. Skipping
validations cause polls to not work.
2017-06-03 07:18:23 +09:00
Guo Xiang Tan
418cb09713 Ensure that we skip validations when creating a post on behalf of a user. 2017-06-03 07:15:08 +09:00
Neil Lalonde
ceedec894d fix narrative bot for subfolder in translation files 2017-06-02 10:07:16 -04:00
Neil Lalonde
23dfddbfb4 FIX: narrative bot on subfolder installs 2017-06-01 15:15:34 -04:00
Guo Xiang Tan
edbb876d1b FIX: Discobot welcome post delay should start counting when a user logs in. 2017-06-01 21:02:29 +09:00