Commit Graph

32 Commits

Author SHA1 Message Date
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
Erick Guan
9ce61b4586 FEATURE: Webhooks. 2016-09-05 18:44:00 +08:00
Robin Ward
bba0fd0654 REFACTOR: PreloadStore to ES6 2016-07-11 12:57:05 -04:00
Robin Ward
b8125b3512 REFACTOR: Remove Discourse.Ajax 2016-07-11 12:57:05 -04:00
Neil Lalonde
e5918c7d00 FEATURE: Merge tagging plugin into core 2016-04-27 11:58:53 -04:00
Sam
1dc168a7e6 Merge branch 'master' into vdom 2016-02-15 19:29:59 +11:00
Sam
dd6ebde824 FIX: Always ensure notifications are treated as read once clicked
UX: improve messaging so notifications list is far more stable
PERF: improve performance of notifcation lookup queries

- Add feature "SetTransientHeader" that allows shipping info to server
   in the next Ajax request
- remove local storage hack used for notifications
- amend lookupStale to return hydrated objects, move logic into store
- stop magically clearing various notifications (likes, invitee accepted, group_summary, granted badge)
2016-02-15 19:29:47 +11:00
Robin Ward
d1e85bdd8b FEATURE: Use virtual dom framework for faster post rendering 2016-02-11 11:00:40 -05:00
Robin Ward
f5b34d5f53 FEATURE: Admin interface for editing email templates 2015-11-19 16:39:34 -05:00
Robin Ward
33e58c0587 FIX: You can click to see your own PMs from flags
Also refactors post action users to be a new object type since they can
have `post_url` which is not a field of a `User`
2015-09-30 12:28:55 -04:00
Robin Ward
ddf0db0338 Refactor notifications localStorage cache into adapter pattern.
Sometimes you want stale data right away, then refresh it async.
This adds `findStale` to the store for that case. If it returns
an object with `hasResults` you can get the `results` and display
them.

It also returns a `refresh()` method to freshen up the stale data.

To enable `localStorage` support for stale data, just include the
mixin `StaleLocalStorage` into an adapter for that model. This
commit includes a sample of doing that for `Notifications`.
2015-08-31 14:12:27 -04:00
Robin Ward
d1c69189f3 FEATURE: Can edit category/host relationships for embedding 2015-08-20 15:56:04 -04:00
Robin Ward
378087727f Admin adapters should be within the admin JS app 2015-08-10 10:21:05 -04:00
Robin Ward
7fffd483f8 Fix deprecations with site text, upgrade to ES6 / store 2015-08-10 10:21:04 -04:00
Robin Ward
0932e82508 Refactor Customizations to have deeper URLs 2015-08-10 10:21:04 -04:00
Robin Ward
aa6f792ce1 FEATURE: Custom orders for user fields 2015-07-30 14:53:13 -04:00
Guo Xiang Tan
3c25ca2f9f FIX: Encode percent character in search terms. 2015-07-21 10:54:39 +08:00
Kane York
3a8808ee3f FIX: buildPluginAdapter not passing args 2015-06-30 09:14:22 -07:00
Robin Ward
4e898c604e UX: Update suggested topics to include topic status + category 2015-06-18 15:53:10 -04:00
Robin Ward
19a89bb501 Small hooks for Queued Post version of discourse-akismet 2015-04-27 11:56:07 -04:00
Robin Ward
0c233e4e25 Interface is wired up for Approving/Rejecting posts 2015-04-15 14:54:37 -04:00
Robin Ward
76f7786d0d Support saving posts via Store 2015-04-15 14:54:36 -04:00
Robin Ward
d4a05825da Convert Composer to use Store
- Uses store for `PostStream`, `TopicList` too
2015-04-15 14:54:36 -04:00
Robin Ward
22ffcba8e6 Convert Discourse.Post to ES6 and use Store model
- Includes acceptance tests for composer (post, edit)
- Supports acceptance testing of bootbox
2015-04-15 14:54:36 -04:00
Robin Ward
88c4250df7 FIX: Double slash with finder for admin routes 2015-03-27 12:02:23 -04:00
Robin Ward
3d2d224312 FEATURE: User Directory, with sorting and time period filter 2015-03-18 15:20:34 -04:00
Robin Ward
7c25efc095 Move identity map into the store, shouldn't have been in the adapter 2015-03-06 13:23:38 -05:00
Robin Ward
ecb553af3f Add tests for our store 2015-03-06 12:37:24 -05:00
Robin Ward
34294ca748 Add deleteRecord API to store to support deleting a tag 2015-03-05 17:13:32 -05:00
Robin Ward
aeb0fc7559 Support for models to update themselves. Needed for discourse-tagging 2015-03-05 12:45:13 -05:00
Robin Ward
1ca43d3bb9 Store and Adapter support for finding by id, updating a simple record 2015-02-27 10:33:39 -05:00
Robin Ward
d8c616a68a Add a store so we can start using ES6 modules for models, finally. 2015-02-10 12:35:53 -05:00