Commit Graph

1281 Commits

Author SHA1 Message Date
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
Neil Lalonde 0c2a54dbb5 fix failing js test 2017-05-30 15:13:56 -04:00
Arpit Jalan d2c2139da8 FEATURE: require name when accepting invite if 'full name required' setting is enabled 2017-05-29 21:46:43 +05:30
Robin Ward 2820cf2b50 FIX: Broken Acceptance test 2017-05-25 15:56:11 -04:00
Neil Lalonde 0a8e16d049 UX: show short flag descriptions in the flag modal on mobile 2017-05-19 15:35:10 -04:00
Neil Lalonde 019f954c44 fix js test failure 2017-05-18 13:36:45 -04:00
Neil Lalonde dbb814ec6a FIX: allow pasting links into title field that are longer than the max title length 2017-05-18 12:32:47 -04:00
Guo Xiang Tan accd78cd8c Make eslint happy. 2017-05-12 09:31:23 +08:00
Guo Xiang Tan e63614024d FIX: Users can't request to join group due to alias level restriction.
https://meta.discourse.org/t/request-to-join-group-not-working/62371
2017-05-12 09:26:26 +08:00
Sam bc0b9af576 FEATURE: support uploads for themes
This allows themes to bundle various assets
2017-05-10 15:47:11 -04:00
Neil Lalonde b7322b05a0 FIX: some changes in composer affect all visible text editors 2017-05-05 12:59:45 -04:00
Guo Xiang Tan 2b21e5ea7e UX: Display translated group name for automatic groups. 2017-05-05 14:34:47 +08:00
Neil Lalonde c98601129b Move name, avatar, and title fields from profile tab to account tab 2017-05-04 12:04:07 -04:00
Guo Xiang Tan 489c3bc1cd Disable failing JS tests first. 2017-05-04 16:49:12 +08:00
Guo Xiang Tan 94c8410521 FIX: Show share popup only for valid buttons. 2017-05-04 10:31:09 +08:00
Neil Lalonde 7f09bc9a09 Merge pull request #4849 from discourse/prefs
User preferences in tabs
2017-05-03 16:53:26 -04:00
Neil Lalonde 47b816c168 comment test failing on theme widget 2017-05-03 15:33:25 -04:00
Neil Lalonde 96aee443fa wip js test 2017-05-03 13:49:16 -04:00
Robin Ward 12fb20fe1b FEATURE: Allow users to resend/update email from confirmation page 2017-05-03 11:18:01 -04:00
Robin Ward b381372184 Use Ember.js for the `/u/account-created` path so we can add controls 2017-05-03 11:18:01 -04:00
Neil Lalonde 2503241ce5 FEATURE: rebuild user preferences page to use tabs 2017-05-02 16:52:18 -04:00
Sam f5f4c36795 Increase autospec qunit timeout to 600 seconds
Correct it so it refocuses on correct runner after running a test
JS tests can not focus on line so skip in vim mode
2017-05-02 16:02:14 -04:00
Sam 556ef4cfbd FIX: case sensitive unconditional add of exact match in user search 2017-05-01 14:37:16 -04:00
Sam a5fc51a967 improve QUNIT support for autospec 2017-05-01 13:50:28 -04:00
Guo Xiang Tan 59b906ab0d FEATURE: Disable minimum post length check when in PM with non human users.
https://meta.discourse.org/t/discourse-narrative-bot-beta-feedback/58621/65?u=tgxworld
2017-04-27 16:00:22 +08:00
James Kiesel 48c0f3faf3 Use image gallery feature of magnific
commit cc7061e9458d04dd02aad9c02ba3a89306e0fae7
Author: James Kiesel <james.kiesel@gmail.com>
Date:   Tue Apr 25 11:21:08 2017 +0900

    ;

commit 9233be7e432daff605812e6b49042f69d348b6e7
Author: James Kiesel <james.kiesel@gmail.com>
Date:   Tue Apr 25 10:01:26 2017 +0900

    Don't break if $elem is undefined

commit 598a694c070c86df8d9f5ffa1ed84e2f8756e65f
Author: James Kiesel <james.kiesel@gmail.com>
Date:   Tue Apr 25 04:51:14 2017 +0900

    .

commit 1711685a33ccd236011f54d3e652991728530b3a
Author: James Kiesel <james.kiesel@gmail.com>
Date:   Tue Apr 25 04:34:11 2017 +0900

    ;

commit 81703f36c0593250aeac3418fde86660fd307092
Author: James Kiesel <james.kiesel@gmail.com>
Date:   Tue Apr 25 04:12:37 2017 +0900

    Use image gallery functionality in magnific
2017-04-25 11:23:15 +09:00
Guo Xiang Tan 5c39c8f24b UX: Improve the way users set timers for `TopicStatusUpdate`. 2017-04-20 14:25:45 +08:00
Sam a3e8c3cd7b FEATURE: Native theme support
This feature introduces the concept of themes. Themes are an evolution
of site customizations.

Themes introduce two very big conceptual changes:

- A theme may include other "child themes", children can include grand
children and so on.

- A theme may specify a color scheme

The change does away with the idea of "enabled" color schemes.

It also adds a bunch of big niceties like

- You can source a theme from a git repo

- History for themes is much improved

- You can only have a single enabled theme. Themes can be selected by
    users, if you opt for it.

On a technical level this change comes with a whole bunch of goodies

- All CSS is now compiled using a custom pipeline that uses libsass
    see /lib/stylesheet

- There is a single pipeline for css compilation (in the past we used
    one for customizations and another one for the rest of the app

- The stylesheet pipeline is now divorced of sprockets, there is no
   reliance on sprockets for CSS bundling

- CSS is generated with source maps everywhere (including themes) this
    makes debugging much easier

- Our "live reloader" is smarter and avoid a flash of unstyled content
   we run a file watcher in "puma" in dev so you no longer need to run
   rake autospec to watch for CSS changes
2017-04-12 10:53:49 -04:00
Guo Xiang Tan 24d3c77d19 Fix the build. 2017-04-12 10:38:17 -04:00
Guo Xiang Tan 5cb64810cd FIX: Changing notification level in topic footer buttons was not updating timeline. 2017-04-12 14:54:03 +08:00
Robin Ward 40ab2e5667 FEATURE: Let users update their emails before confirming
This allows users who entered a typo or invalid email address when
signing up an opportunity to fix it and resending the confirmation
email to that address.
2017-04-05 16:44:49 -04:00
Robin Ward 0829671963 FIX: Nested quotes weren't rendered properly with BBCode 2017-04-03 14:38:30 -04:00
Robin Ward 7b6242bfbb Minor cleanup of `/users/` rename 2017-03-30 10:23:24 -04:00
Robin Ward 14410b71fb Convert server side paths to use `/u/` 2017-03-30 10:23:24 -04:00
Robin Ward 45a257815a Convert front end paths from `/users/` to `/u/` 2017-03-30 10:23:24 -04:00
Robin Ward 6b976433c9 Support for both `/users/` and `/u/` paths 2017-03-30 10:23:24 -04:00