Commit Graph

1312 Commits

Author SHA1 Message Date
Joffrey JAFFEUX 96cdc4e66e
FIX: makes allowInitialValueMutation more restrictive 2017-11-24 13:15:02 +01:00
Joffrey JAFFEUX 63307c303a
FIX: regression preventing to set number of hours before closing
This commit also adds a full test suite for editing topic timer.
2017-11-24 02:48:45 +01:00
Joffrey JAFFEUX 9208909b26 tweak icon-library generation 2017-11-23 18:24:26 +01:00
Neil Lalonde ac4b4e30dc remove the test that only works in a browser 2017-11-22 15:23:06 -05:00
Neil Lalonde 6c86e0c94a FEATURE: remove the featured link by editing the topic 2017-11-22 14:53:35 -05:00
Joffrey JAFFEUX b14d9529b8
FIX: adds support for name changes tracking 2017-11-22 13:49:45 +01:00
Joffrey JAFFEUX b2b565c2fb
select-kit initial plugin api implementation (0.8.13)
```
api.modifySelectKit("identifier-of-the-select-targeted")
  .modifyContent((context, existingContent) => {})
  .appendContent(() => {})
  .prependContent(() => {})
  .onSelect((context, val) => {});
```
2017-11-22 10:34:12 +01:00
Neil Lalonde 33feb62673 FIX: times showing as < 1m instead of blank 2017-11-21 14:33:49 -05:00
Robin Ward 7533e5b541 UX: Use date picker on full page search 2017-11-21 12:52:23 -05: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
Guo Xiang Tan edc4b30f82 Remove tests that are no longer being used. 2017-11-21 18:07:23 +08:00
Robin Ward b9595966d4 FIX: Error applying quotes with blank lines in front 2017-11-20 13:46:19 -05:00
Neil Lalonde b37e40eea9 FEATURE: show read time in last 60 days 2017-11-16 15:46:51 -05:00
Arpit Jalan 3831663fea FEATURE: search logs page (#5313) 2017-11-15 11:13:50 +11:00
Joffrey JAFFEUX 680696fc04
Replaces delete flag modal by a dropdown 2017-11-14 07:55:08 -08:00
Sam 38c103c75e correct spec 2017-11-13 18:09:24 +11:00
Robin Ward 1f14350220 Rename "Blocked" to "Silenced" 2017-11-10 14:10:27 -05:00
Joffrey JAFFEUX 6d3ed966cd
FEATURE: replace admin flags modal by a select-box 2017-11-09 12:33:36 -08:00
Michael Howell 38b8d68c68 FEATURE: Allow the user to select a custom home page (#5268)
* Add user_home configuration option

* Use the new user_home preference to actually show the right home page

* Fix trailing whitespace

* Update user_option_serializer.rb

* Fix JavaScript default homepage tests

* Use an object instead of a giant switch

* Remove trailing whitespace

* Make the default `user_home` set to `null` instead of `0`

* Rename user_home to homepage_id
2017-11-10 06:45:19 +11:00
Joffrey JAFFEUX 0da529010a
FEATURE: support for multi-combo-box 2017-11-09 10:57:53 -08:00
Robin Ward 3093074398 UX: Include the flagged person's username on the flagged post 2017-11-09 13:18:33 -05:00
Neil Lalonde 814502f7bb FEATURE: add a Dismiss link to user menu that dismisses all notifications 2017-11-07 10:41:21 -05:00
Guo Xiang Tan abdfac9cb5 FIX: Allow group members to freely exit group option incorrectly disabled.
https://meta.discourse.org/t/cannot-check-allow-members-to-leave-group-freely-when-group-is-configured-to-allow-users-to-send-membership-requests-to-group-owners/73400
2017-11-06 10:30:58 +08:00
ckeboss 93633865d9 Adds primary user group as a class to quote (#5285)
* Adds primary user group as a class to quote

This feature addition will add the class `group-PRIMARY_USER_GROUP` to
the quote `aside`. `PRIMARY_USER_GROUP` will be the primary user group
of the user being quoted. This is similar to the class that is added to
a `topic-post`.

* Remove trailing whitespace

* Fix avatar in test

* Address PR comments

* Fix trailing whitespace
2017-11-03 09:51:40 -04:00
Gerhard Schlager c107e99138 clear localStorage after each test 2017-11-02 23:39:24 +01:00
Robin Ward 05a61fa8e1 FIX: CSS class names changed on group posts 2017-11-02 15:05:41 -04:00
Robin Ward 0a69f2bc77 REFACTOR: Remove many `Discourse.Category.list()` calls 2017-11-01 15:25:35 -04:00
Neil Lalonde 7dc3671490 FEATURE: remove obsolete settings ga_tracking_code and ga_domain_name. Use ga_universal_tracking_code and ga_universal_domain_name instead. 2017-11-01 11:41:51 -04:00
OsamaSayegh 55095bc44e FEATURE: Use ACE for badge queries (#5269)
* FEATURE: Use ACE for badge queries

* Forgot disabled

* When disabled, cursor should be `not-allowed`

* Tests + prefix custom attribute with `data-`
2017-10-30 18:07:49 +11:00
Robin Ward fbd5f1e411 REFACTOR: Rename `store:main` to `service:store` so we can inject it 2017-10-27 13:59:45 -04:00
Joffrey JAFFEUX ae1e4de286 [FIX] better control on value mutation 2017-10-20 13:40:56 -07:00
Régis Hanol 62156885ec UX: remove 🔥heading and ruler button from composer toolbar 2017-10-20 10:59:31 +02:00
Joffrey JAFFEUX 4d041d5b87 [FIX] Fix wizard spec
This commit introduces a mutation on input value given to select-box-kit when value is empty. The refactoring required to avoid this would be too heavy atm, but ultimately we would want to avoid this.
2017-10-19 17:34:56 -07:00
Joffrey JAFFEUX d77ef05ee1 Fix broken tests 2017-10-19 14:32:37 -07:00
Joffrey JAFFEUX ae1743c61f [WIP] select-box-kit refactoring 2017-10-19 12:51:08 -07:00
Robin Ward fb2e581b26 FIX: Headings must begin with `heading--` to avoid some griefing 2017-10-16 11:53:47 -04:00
Robin Ward 5572d1d5f7 Refactor user summary page to use more components 2017-10-13 16:05:40 -04:00
Robin Ward f4decf9193 The `quote-other-topic` class has been removed 2017-10-06 15:16:06 -04:00
Guo Xiang Tan 91c5f928c2 FIX: `Group#mentionable` and `Group#messageable` not fully working. 2017-10-02 16:50:58 +08:00
Guo Xiang Tan a370d7c7fd FIX: Compatibility between Client and Server routing.
mend
2017-09-29 10:34:50 -04:00
Robin Ward df81d109e5 The ability to attach `attrs` when embedding widgets 2017-09-28 16:08:43 -04:00
Guo Xiang Tan 793ccd144e Fix broken JS tests. 2017-09-26 16:15:25 +08:00
Robin Ward b3ffa19f95 FIX: Make sure `Post` records have access to `Site` 2017-09-25 13:18:26 -04:00
Robin Ward 09ed2ed749 Add Suspend User to flags page 2017-09-25 12:28:00 -04:00
Robin Ward 079f108ceb UX: Improve interface for flagging with many flaggers 2017-09-25 12:28:00 -04:00
Robin Ward 6bce3004d9 UX: Nicer selection of suspend duration 2017-09-25 12:28:00 -04:00
Robin Ward 2a56cf8bb6 Tests + Refactoring for Suspension Modal 2017-09-25 12:26:06 -04:00
Robin Ward 6e48884274 Extract out common "cancel" link functionality from modals 2017-09-25 12:25:15 -04:00
Robin Ward 4020409bbf Add support for suspension message 2017-09-25 12:25:14 -04:00
Robin Ward daceeb9700 Refactor user suspension modal 2017-09-25 12:25:14 -04:00
Robin Ward d7c37d9369 Add front end service for staff controls 2017-09-25 12:25:14 -04:00
Robin Ward 5cf50f0034 Adjust flagged posts to use the store 2017-09-25 12:25:14 -04:00
Robin Ward cc1a461254 Convert flags admin to flexbox 2017-09-25 12:25:14 -04:00
Robin Ward 1af4acbb3d Add tests to flagged topics 2017-09-25 12:25:14 -04:00
Robin Ward 40eba8cd93 FEATURE: View flags grouped by topic 2017-09-25 12:25:14 -04:00
Régis Hanol 8ed318c4fe display 'similar to' earlier when composing a post 2017-09-16 01:03:29 +02:00
Joffrey JAFFEUX e6385e4527 attempts to fix broken spec only on CI 2017-09-14 20:34:37 +02:00
Joffrey JAFFEUX 562e48dfb7 adds a dsl to simplify testing of the select-box 2017-09-14 19:50:32 +02:00
Robin Ward 8c2d6118ff Remove some of the last few `fa-icon` helpers 2017-09-14 11:20:36 -04:00
Robin Ward 4f9ba874a9 API so that you don't have to use a global variable for pretender 2017-09-13 11:55:58 -04:00
Joffrey JAFFEUX c06c88b479 cleaner title attribute for select-box 2017-09-12 01:36:58 +02:00
Joffrey JAFFEUX e924920bec uses select-box for pinned-button
This commit also moves more logic in dropdown-select-box instead of
duplicating it for notifications-options and pinned-options
2017-09-11 19:14:22 +02:00
Joffrey JAFFEUX 7f9220a2cd minor select-box fixes
- select row when using tab
- makes sure tab order is correct
- highlight first row when filtering
2017-09-11 00:38:32 +02:00
Joffrey JAFFEUX a0f36a0401 fix broken spec 2017-09-10 21:07:13 +02:00
Joffrey JAFFEUX 4b558638c8 FEATURE: improves keyboard handling of select-box
- arrow keys
- escape key
2017-09-10 19:12:03 +02:00
Joffrey JAFFEUX 950b9e9eaf FIX: keeps as much as possible the same api for select-box components 2017-09-09 20:29:07 +02:00
Joffrey JAFFEUX cf6fb7622e Replaces all notification-options like dropdowns with select-box 2017-09-08 20:47:39 +02:00
Joffrey JAFFEUX dd27c0c80e FIX: supports emojis in pinned topic excerpt 2017-09-07 11:06:04 +02:00
Joffrey JAFFEUX ccf5005feb FEATURE: uses select-box for topic-notifications-button component
- Introduces ComponentConnector to use a component inside a widget
- Use css to set size of components instead of properties
- Smarted positionning
- Style tweaks
2017-09-06 16:58:00 +02:00
Sam Saffron 46ebd0ee40 correct spec and allow for zero allowed iframes 2017-09-01 12:08:55 -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
Robin Ward 70706897f4 FIX: Test was failing on high DPI monitor 2017-08-30 15:32:58 -04:00
Robin Ward 3d95bac3fb Migrate away from `#discourse-modal` to `.d-modal` 2017-08-30 15:29:51 -04:00
Robin Ward b100ea1baa FIX: Broken acceptance test 2017-08-30 12:35:02 -04:00
Robin Ward b210c801a4 FIX: Linting error 2017-08-30 11:30:57 -04:00
Joffrey JAFFEUX 746c5927e1 Replaces remaining {{category-chooser}} by {{category-select-box}}
To achieve replacement, this commit also adds support for:
- clearSelectionLabel which will allows to unselect any chosen category
- select-box inside a modal
- fixes minor css positioning issues

Note: {{category-chooser}} will be removed in the next weeks.
2017-08-30 17:04:17 +02:00
Guo Xiang Tan 0a53c589c4 Fix linting. 2017-08-30 15:36:45 +08:00
Joffrey JAFFEUX 1ea5205022 FIX: tests helper do not use es6 2017-08-29 16:16:51 +02:00
Joffrey JAFFEUX 1bcfa87d18 FIX: select-box broken spec
Introduces a test helper for selectBox to simplify these cases.
2017-08-29 15:51:25 +02:00
Joffrey JAFFEUX f101fec19c FIX: improves uncategorized support for category-select-box 2017-08-29 12:48:26 +02:00
Joffrey JAFFEUX 861dbe3b51 select-box refactoring
- more flexibility (allows custom title)
- less re-render
- more robustness
2017-08-29 12:25:54 +02:00
Joffrey JAFFEUX b83c0747d9 FIX: select-box improvments
- more tests for category-select-box
- allows to clear selection
- fix positioning on safari
- focus on click
- do not display uncategorized if not allowed in settings
- fix component state impacting other specs
- better texts
- higher category-select-box on mobile
2017-08-28 14:34:04 +02:00
Joffrey JAFFEUX 14f06c2740 select-box minor fixes 2017-08-25 19:56:57 +02:00
Neil Lalonde 2c56f8df7c FEATURE: show tags in search results 2017-08-25 11:52:59 -04:00
Joffrey JAFFEUX d05df4a337 FIX: better headerText handling on select-box 2017-08-24 18:31:33 +02:00
Joffrey JAFFEUX d52048ad34 Revert "Revert "FEATURE: improves select-box to support category selection on new topic""
This reverts commit 1d90f6016a.
2017-08-24 16:04:47 +02:00
Robin Ward 16b67745d8 FIX: `store:main` error when running QUnit tests checking disabled plugins 2017-08-23 19:34:31 -04:00
Joffrey JAFFEUX 1d90f6016a Revert "FEATURE: improves select-box to support category selection on new topic"
This reverts commit 7b4e302677.
2017-08-23 16:33:03 +02:00
Joffrey JAFFEUX 7b4e302677 FEATURE: improves select-box to support category selection on new topic 2017-08-23 15:08:19 +02:00
Guo Xiang Tan 93fe76fc02 Make eslint happy. 2017-08-21 21:56:22 +09:00
Guo Xiang Tan 9f11223250 Fix `select-box` Qunit tests to use the proper Ember test helpers. 2017-08-16 09:35:56 +09:00
Joffrey JAFFEUX cad6107624 refactors select-box
Note: this commit also now uses select-box for mobile topics controls
2017-08-16 00:41:56 +02:00
Neil Lalonde d506e577a5 FEATURE: if full search returns no results, show google search form 2017-08-15 16:46:41 -04:00
Kyle Zhao c3249f6e93 FEATURE: add full editing access to queued posts (#5047)
For pending new topics: the body of the post, title, categories
and the tags are editable.

For pending new replies: only the body is applicable and thus
editable

DISCUSSION: https://meta.discourse.org/t/66754
2017-08-15 12:44:05 -04:00
Joffrey JAFFEUX 482924b161 FEATURE: initial implementation of an ember native select 2017-08-13 14:34:50 +02:00
Régis Hanol 05a74d2534 FIX: navigation item counters weren't updating properly 2017-08-10 12:22:15 +02:00
Guo Xiang Tan 705f75dd8c Merge pull request #5032 from xrav3nz/ux-hide-options-in-adv-search
UX: exclude irrelevant search filters for anonymous users
2017-08-09 18:21:44 +09:00
Kyle Zhao 9c6c4a7705 restructure search-test to test all filters w/ variable visibiltiy 2017-08-09 04:42:50 -04:00
Guo Xiang Tan a9613163b5 FEATURE: Force user to enter reason when requesting for group membership. 2017-08-09 15:45:28 +09:00
Kyle Zhao cea2a9fe53 UX: exclude irrelevant search filters for anonymous users
On the advanced search page, filters like "I've read", "I'm watch
-ing", etc, are irrelevant to anonymous users and should be hidden
2017-08-08 15:25:40 -04:00
Robin Ward 8dd7c0c984 UX: Convert buttons to `d-button` 2017-08-01 17:24:06 -04:00
Robin Ward 75d10a4098 UX: Add consistent classes to buttons 2017-08-01 17:24:06 -04:00
Neil Lalonde ec85b41078 UX: Move watched words to the Logs section of admin 2017-07-31 17:06:50 -04:00
Sam a13d146251 Correct post deletion spec so it is async 2017-07-28 10:50:18 -04:00
Guo Xiang Tan 4620dfe92d FEATURE: Add group settngs to allow users to leave a group freely.
https://meta.discourse.org/t/split-join-leave-freely-setting-on-groups/65565
2017-07-28 15:00:25 +09:00
Robin Ward 5b590b9637 REFACTOR: Replace some `fa-*` uses with helpers 2017-07-27 14:55:41 -04:00
Guo Xiang Tan 75374c76b3 UX: Display button to message group on group page.
https://meta.discourse.org/t/make-it-easier-to-send-a-message-to-groups/65065
2017-07-27 17:51:25 +09:00
Guo Xiang Tan 9c93a20cf1 Fix incorrect assertion in JS tests. 2017-07-27 17:05:08 +09: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
David Taylor febd7621ea Qunit plugin rake tasks (#4985)
* Allow running specific plugin tests using ENV variables

* Add a `rake plugin:qunit` task to match the existing `rake plugin:spec` task

* Improve docker.rake to allow running specific plugin qunit tests

* Purge cache before and after qunit tests

* Stop module auto-loader trying to auto-load tests

* Use URL query parameters to pass config into Qunit, avoiding caching issues

* Oops, searchParams doesn’t work in phantomJS. Parse the URL manually.

* Escape ampersands before passing URL to phantomJS, otherwise multiple parameters go wrong
2017-07-26 09:07:46 -04:00
Sam 17d56a4cb7 FEATURE: use Markdown for image pasted in as opposed to IMG tags 2017-07-25 15:11:38 -04:00
Joffrey JAFFEUX 22c5fb20b4 FIX: emoji-picker broken and skipped specs 2017-07-25 12:23:38 +02:00
Robin Ward bc3a32385c FIX: Empty lines should be selected for block quotes 2017-07-21 16:32:29 -04:00
Arpit Jalan 6d09fbde44 UX: use down chevron icon to expand "show more links.." 2017-07-22 00:10:37 +05:30
Joffrey JAFFEUX c2db2c5c78 FIX: do not store scroll position in local storage 2017-07-21 20:18:32 +02:00
Joffrey JAFFEUX e36d9f55c3 replaces links/imgs by buttons in the emoji-picker 2017-07-21 19:42:50 +02:00
Joffrey JAFFEUX 36b6ed7d8c fix broken specs 2017-07-21 15:57:32 +02:00
Joffrey JAFFEUX 6754205c51 es-lints errors 2017-07-21 14:27:18 +02:00
Joffrey JAFFEUX c906bd3f22 emoji-picker refactoring 2017-07-21 13:35:29 +02:00
Joffrey JAFFEUX bb7241ccc2 simplify emoji-picker recent usage logic 2017-07-19 22:54:56 +02:00
Joffrey JAFFEUX a7090c15ad Skip emoji-picker tests
They are currently failing when using the rake task and not when
loading qunit directly from web ui
2017-07-19 17:07:53 +02:00
Joffrey JAFFEUX be379596e6 skip random failures on travis ci 2017-07-19 16:48:23 +02:00
Joffrey JAFFEUX 7718141ee0 not applicable anymore 2017-07-19 16:48:23 +02:00
Joffrey JAFFEUX c99a5bce8f faster tests 2017-07-19 16:48:23 +02:00
Joffrey JAFFEUX e5d81597b6 removes tests causing timeouts on travais 2017-07-19 16:48:23 +02:00
Joffrey JAFFEUX 6de258d4cf FEATURE: Introduces new emoji-picker 2017-07-19 16:48:23 +02:00
Sam d7d22554ca correct js test 2017-07-17 18:06:11 -04:00
Robin Ward cdb3706025 Track clicks on topics in search results 2017-07-17 15:42:32 -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
Sam 79a084dd58 Revert "remove old markdown engine work-in-progress"
This reverts commit ee470b5317.
2017-07-12 18:10:51 -04:00
Sam bcbb9f208d Revert "Integrate new engine, correct old specs"
This reverts commit f1b38ba4fb.
2017-07-12 18:10:07 -04:00
Sam 8caaa6a56e Revert "Remove mdtest, the plan is to use commonmark spec instead"
This reverts commit c64aabc964.
2017-07-12 18:10:03 -04:00
Sam c64aabc964 Remove mdtest, the plan is to use commonmark spec instead 2017-07-12 17:44:40 -04:00
Sam f1b38ba4fb Integrate new engine, correct old specs
corrects edge cases with

- full quotes
- [url] with nested tags
- engine overrides
- onebox applying to non http srcs
2017-07-12 17:44:40 -04:00
Sam Saffron ee470b5317 remove old markdown engine work-in-progress 2017-07-12 17:44:40 -04:00
Robin Ward 754c1e5438 Upgrade to Babel 6 2017-07-05 15:25:23 -04:00
Sam Saffron b8b4970481 correct some tests 2017-07-04 10:01:36 -04:00
Sam e2f57a154b FIX: blockquote button implementation
Previously clicking on blockquote in the middle of sentence
would result in incorrect formatting
2017-06-27 13:32:20 -04:00
Sam 8967d50dc2 Clean up sanitization code
- remove html table test, this is soon to be deprecated
- move sanitization tests into pretty text.rb
- fix up whitelister so it makes a copy of options
2017-06-26 15:21:47 -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
Robin Ward cc525b1a8d Upgrade QUnit to latest version 2017-06-15 10:12:07 -04:00
Régis Hanol f943efe1a9 remove use of soon-to-be-deprecated 'Discourse.SiteSettings' (cc @eviltrout) 2017-06-14 10:02:13 +02:00
Robin Ward 867cefc492 Ember.K was deprecated, so let's remove it. 2017-06-13 15:59:48 -04:00
Sam 826f332766 Merge pull request #4901 from jjaffeux/emoji-5.0
Emoji next
2017-06-13 11:12:41 -04:00
Régis Hanol 54e8fb0d89 FEATURE: new 'allow_staff_to_upload_any_file_in_pm' site setting 2017-06-12 22:41:29 +02:00
Arpit Jalan b9c94aa234 FEATURE: add required user fields to invite accept form
UX: make "accept invitation" page consistent with sign up modal
2017-06-12 20:43:07 +05:30
Guo Xiang Tan 684b05f510 FIX: Strip zero-width characters from search terms. 2017-06-07 18:19:47 +09:00
Joffrey JAFFEUX 64336a8c75 Emoji 5.0 support 2017-06-05 14:06:23 +02:00
Robin Ward e66fa82f3a FIX: Don't load JS via SCRIPT tag in QUnit mode 2017-05-31 15:31:24 -04:00
Sam febc2c571f add a test for customize theme controller 2017-05-31 11:18:17 -04:00