Commit Graph

168 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
Sam
30e0154e5d SECURITY: fix reflected XSS with safe_mode param
(only applies to beta and master)
2016-12-19 10:11:51 +11:00
Sam
e2c87da42a FEATURE: Add basic support for Safe Mode
In Safe Mode all JS extensions and site customizations are disabled.

To access Safe Mode visit `sitename.org/safe-mode`
2016-11-21 16:46:14 +11:00
Neil Lalonde
d38727efb7 FIX: Google Universal Analytics was tracking two page views on first page view 2016-08-02 12:55:02 -04:00
Neil Lalonde
ba637e40b6 FEATURE: Google Tag Manager Universal Analytics support 2016-07-14 16:35:20 -04:00
Robin Ward
bba0fd0654 REFACTOR: PreloadStore to ES6 2016-07-11 12:57:05 -04:00
Robin Ward
25d6915cac Migrate discourse.js to ES6 2016-07-11 12:57:05 -04:00
Robin Ward
a546395397 REFACTOR: Migrate markdown functionality in ES6 2016-07-11 12:57:05 -04:00
Jeff Atwood
36e3e53798 is it really necessary to specify 'normal' font? 2016-04-11 02:30:11 -07:00
Jeff Atwood
e45243924e oops 2016-04-11 02:00:16 -07:00
Jeff Atwood
fff03fb7c3 woff and woff2 are all we need for webfonts
on any browser that is remotely modern
2016-04-11 01:37:17 -07:00
Sam Saffron
38983bc977 oops 2016-02-08 09:53:47 +11:00
Sam Saffron
b032c63773 FIX: properly defer authentication complete 2016-02-08 08:44:12 +11:00
Robin Ward
6c2dee29a8 UX: Upgrade Font Awesome to 4.5.0 2015-12-10 17:19:23 -05:00
Robin Ward
8ba7c06b7d Merge pull request #3735 from riking/patch-4
FIX: Discourse.BaseUri should not default to /
2015-11-06 14:52:19 -05:00
Sam
b6c2aa13e6 clean up implementation of non frame login / registration 2015-10-13 14:49:09 +11:00
Sam
45ab42dea9 UX: upgrade font awesome to 4.4 2015-09-21 12:46:58 +10:00
Kane York
aca70805f1 FIX: Discourse.BaseUri should not default to / 2015-09-10 17:34:08 -07:00
Robin Ward
707c493e3c FIX: When changing colors, refresh the admin stylesheet 2015-08-18 14:13:40 -04:00
Robin Ward
22844b9e46 Ember 1.12 support 2015-08-13 11:14:16 -04:00
Robin Ward
59cdde330f Raise errors in development mode on deprecation
We've had quite some time to find the deprecation errors in Ember and
most should be fixed. It is time to turn up the difficulty, which will
raise exceptions in development/test mode if a deprecation is present.
This will force developers to fix them as they encounter them.
2015-08-04 13:23:42 -04:00
Robin Ward
9911e92e24 Merge pull request #3609 from riking/patch-7
FEATURE: Localization fallbacks
2015-07-30 10:44:29 -04:00
Sam
6d9674278e UX: remove zocial and use font awesome instead
UX: use github logo for github login
2015-07-21 15:47:58 +10:00
Kane York
728845d008 FEATURE: Localization fallbacks (client)
This patch sets I18n.defaultLocale in the Discourse.start() script block (it
was formerly always 'en') to SiteSetting.default_locale, and patches
translate() to perform fallback to defaultLocale followed by english.
Additionally, when enable_verbose_localization() is called, no fallbacks will
be performed.

It also memoizes the file loading operations in JsLocaleHelper and strips out
translations from the fallbacks that are also present in a prefered language,
to minimize file size.
2015-07-15 10:17:28 -07:00
Sam
24102f2636 FIX: apply s3 cdn to client side assets 2015-05-27 12:59:51 +10:00
Sam
45bdd23689 FEATURE: support user local switching to RTL correctly
FEATURE: support RTL in multisite
2015-05-20 15:56:54 +10:00
Robin Ward
8294205f7c Ember 1.11 broken WIP 2015-05-11 11:18:37 -04:00
Robin Ward
65bfa574ce Add userId to GA tracking 2015-04-07 13:10:33 -04:00
Sam
5d31290dbc FIX: cleanup old letter avatars if needed
FEATURE: use image magick version as a key for letter avatars
2015-04-07 13:03:43 +10:00
Régis Hanol
9633cfeae1 bump font cache 2015-03-27 16:33:15 +01:00
Régis Hanol
4d58db2b09 also remove zocial svg font 2015-03-27 15:33:03 +01:00
Régis Hanol
8bbc742247 remove svg version of font-awesome 2015-03-27 13:42:30 +01:00
Régis Hanol
d9606bef9d update font-awesome to 4.3.0 2015-03-27 13:08:58 +01:00
Sam
a82530012a FEATURE: Allow selection of highlight js languages
PERF: stop loading highlight js on load

To get latest highlight js run bin/rake highlightjs:update
2015-03-13 16:18:59 +11:00
Robin Ward
de4e4f2b98 Replace $LAB with path aware loadScript that uses jQuery 2015-03-09 14:39:39 -04:00
Régis Hanol
1b2381d5a0 FIX: only remove custom CSS in admin on first load 2015-03-02 23:31:04 +01:00
Régis Hanol
521d3de10d revert: ⬆️ update font-awesome 2015-02-05 17:26:18 +01:00
Régis Hanol
4ac82f45bf FIX: force font-awesome update 2015-02-05 14:25:27 +01:00
Sam
f23eb475a4 FEATURE: remove override stylesheet option, too confusing 2014-12-23 13:03:48 +11:00
Régis Hanol
45dbdb6896 FEATURE: custom emojis 2014-12-23 01:12:26 +01:00
lidlanca
33e1790408 stripping port information from Discourse.BaseUrl
Port information if presented in Discourse.BaseUrl may break user avatar URL in the template generation.

https://github.com/discourse/discourse/edit/master/app/assets/javascripts/discourse/models/user.js
avatarTemplate()

In the future there should be a way to reference baseUrl with or without port information
2014-09-12 16:29:17 -04:00
Robin Ward
39c7101c4b TWEAK: Remove TransitionAborted exceptions from logging. They are
apparently normal when you abort a router transition and can be ignored.
2014-08-07 16:52:31 -04:00
M Smart
0d9e2b5df5 Move the scripts helper into a better place. 2014-07-22 20:14:57 -04:00
M Smart
ec280913b2 Enumerate deferred scripts with a sprockets helper 2014-07-22 19:46:43 -04:00
Sam
5477325376 FIX: should use "script" to allow cdn 2014-07-14 08:47:06 +10:00
Sam
9157f51618 FEATURE: upgrade font awesome to head 2014-07-03 17:58:12 +10:00
Sam
fa6f22dd39 Move letter avatars out of upload system
FIX: S3 issues around system avatars
FIX: reduced backup file size
2014-05-30 14:45:55 +10:00
Sam
7fbf162666 Logster update
cleans up a bunch of messed up context stuff with multisite
improves backtraces
adds request params
2014-05-25 13:54:52 +10:00
Robin Ward
5e07d18069 FIX: Don't track pageView on initial load. Let the router signal that. 2014-05-21 14:04:08 -04:00
Neil Lalonde
c4d3aa3d47 Theming: a UI to choose some base colors that are applied to all the site css. CSS compiled outside of asset pipeline. 2014-05-14 10:18:12 -04:00
Régis Hanol
978fb7ff96 Merge pull request #2328 from ligthyear/better-debugging-of-promises-in-dev
Log the actual promise object instead of a useless name
2014-05-09 11:25:44 +02:00
Benjamin Kampmann
41f1c70fe4 Log the actual promise object instead of a useless name
- console.log has support for objects including introspection, use this
 - instead of logging useless names
2014-05-09 11:16:56 +02:00
Robin Ward
f50039b48b Support 404 routes in the Ember App 2014-04-29 15:29:13 -04:00
Robin Ward
fc65bc28be FIX: Use the container to register Discourse's custom location handler 2014-04-17 10:45:06 -04:00
Vikhyat Korrapati
33307a50b3 Get rid of plugins.css, inject it using DiscourseSassImporter. 2014-04-09 19:42:43 +05:30
Benjamin Kampmann
d22df7731d Allow plugins to ship custom styles only for mobile
- adds another :mobile-flag to register_assets
- adds test for plugin registering of assets
- load plugins when on desktop and plugins_mobile when on mobile
2014-04-07 16:33:35 +02:00
Vikhyat Korrapati
ef99ab59a5 Allow importing Discourse styles in custom stylesheets to modify vars. 2014-04-01 23:04:50 +05:30
Régis Hanol
77a8a4083a Revert "Merge pull request #2125 from vikhyat/css-variables"
This reverts commit b537de3ca5, reversing
changes made to b925827e5b.
2014-04-01 16:24:29 +02:00
Vikhyat Korrapati
ddd1dfe896 Allow importing Discourse styles in custom stylesheets to modify vars. 2014-04-01 15:25:43 +05:30
Robin Ward
14f075e812 Missing semicolon; 2014-02-11 14:57:14 -05:00
Robin Ward
fc36a87e72 FIX: Invalid ruby code for universal google analytics 2014-01-30 15:45:24 -05:00
Eric Carlson
bc033283c6 Google Universal Analytics 2014-01-25 17:42:25 -07:00
Sam
a247389d4e FEATURE: automatically update site to latest version of assets
if a user neglects to move around the site it will prompt to do so 2 hours in
2014-01-15 12:08:35 +11:00
Sam
fd95dbe75a FEATURE: Automatically force a full refresh between pages if assets change 2014-01-15 12:08:35 +11:00
Neil Lalonde
1f0a59584b Revert "Re-apply with fixes: Stop using user agent to detect mobile devices. Use a media query and yepnope to load the appropriate css and customizations." 2013-12-18 14:47:22 -05:00
Neil Lalonde
58e5d532c5 Revert "Got rid of buggy yepnope spaghetti, however mobile detection really should be driven from the server." 2013-12-18 14:47:12 -05:00
Sam
8ccab6d140 Got rid of buggy yepnope spaghetti, however mobile detection really should be driven from the server. 2013-12-13 15:17:05 +11:00
Neil Lalonde
5171a23a9c Re-apply with fixes: Stop using user agent to detect mobile devices. Use a media query and yepnope to load the appropriate css and customizations. 2013-12-11 11:19:22 -05:00
Neil Lalonde
ed3d3ae1e1 Upgrade font-awesome to version 4 2013-12-11 10:31:09 -05:00
Neil Lalonde
2596f7dec2 Revert "Stop using user agent to detect mobile devices. Use a media query and yepnope to load the appropriate css and customizations." 2013-12-09 16:28:11 -05:00
Neil Lalonde
ca5d4d5e54 Stop using user agent to detect mobile devices. Use a media query and yepnope to load the appropriate css and customizations. 2013-12-09 13:28:42 -05:00
Neil Lalonde
e3660e59b4 Strip http(s) from SiteSetting.ga_domain_name 2013-12-06 11:46:52 -05:00
Neil Lalonde
7bbb32bac2 Fix javascript_include_tag for browser-update so it includes MD5. Needed to add .js extension for some reason. 2013-12-02 15:57:23 -05:00
Robin Ward
48bfcfadd9 Upgrade Ember.js, fix swallowing of template errors, report unresolved promises in development mode. 2013-12-02 13:15:58 -05:00
Sam
8d859a9f68 break cache of fonts 2013-12-02 08:19:34 +11:00
Neil Lalonde
746e115f99 Fix path of browser-update 2013-11-27 13:56:22 -05:00
Neil Lalonde
8a9bef944f Fix browser-update.js so it doesn't depend on jQuery 2013-11-27 12:26:27 -05:00
Régis Hanol
07cbf8f4e3 do not customize the admin section 2013-11-14 16:41:16 +01:00
Régis Hanol
e9f9d22482 add query parameter to temporarily disable customization 2013-11-12 18:14:22 +01:00
Régis Hanol
934ede7d91 shorter message for untranslated strings 2013-11-04 11:52:12 +01:00
Sam
8f0e3de675 work in progress, wide categories page 2013-10-18 11:10:10 +11:00
Sam
b567bd3d37 shift site settings in front of routes 2013-10-18 11:10:10 +11:00
Wojciech Zawistowski
cd3a2143d2 remove unnecessary return statement inside Discourse.Router.map
Ember's Router.map(callback) method doesn't expect any value to be
returned by callback function. Therefore, return statements present
inside Discourse.Router.map are unnecessary (and are silently ignored by
Ember).
2013-09-19 17:26:43 +02:00
Neil Lalonde
13f17b2a5c Add ability to customize css and header for mobile 2013-09-16 12:28:02 -04:00
Neil Lalonde
f86aead49e Disable custom stylesheets on mobile for now. 2013-09-13 14:54:57 -04:00
Neil Lalonde
45d7765936 Merge branch 'master' into mobile 2013-09-05 15:54:22 -04:00
Sam
c9321cae7f Our JS includes belong at the top of the file, that way we can start
downloading and parsing them earlier and not wait for the rest of the page

Our noscript stuff belongs at the bottom, we should not hold off any js work
while noscript is downloading
2013-09-05 10:41:11 +10:00
Neil Lalonde
4827634df9 rename application.css.erb to desktop.css.erb 2013-08-28 16:41:05 -04:00
Neil Lalonde
3cfc9a7bba Create a mobile css manifest 2013-08-27 16:40:30 -04:00
Sam
ac905d4a08 defer persona init till after people launch the login dialog 2013-08-26 17:51:41 +10:00
Sam
e993d6b29b upgrade font awesome to version 3.2.1, use scss instead of css for the include. 2013-07-09 10:06:57 +10:00
Robin Ward
fea3f326a9 FIX: Persona login was not using promises 2013-05-31 13:16:14 -04:00
Robin Ward
bd99d5a40c Calls to Discourse.ajax no longer need getURL -- will be done automatically. 2013-05-07 15:16:27 -04:00
slainer68
ac66f25043 Google Analytics Domain name site setting 2013-05-03 21:58:10 +02:00
Sam
5ec52bd2e9 :s/moderator?/staff/g ... our naming was kind of crazy, renamed moderator? to staff 2013-05-02 17:22:27 +10:00
Sam
65cd00cf25 moderators now have teeth, more at http://meta.discourse.org/t/moderator-permission-set/6307/5
allow pms to be targetted at groups
2013-05-02 15:15:53 +10:00
Régis Hanol
ede9d2a0a8 show diff in post history view 2013-04-29 03:20:51 +02:00
Sam
6ae212235c move persona a bit, still should be yanked out further 2013-04-19 10:34:39 +10:00
Sam
3bc4aefe87 fix double include 2013-04-16 18:43:07 +10:00
Sam
850b042cab introduce rack:cache as a default, so users don't need to configure apache or nginx
under rack cache we are able to serve 620reqs a second per thin (on my machine) before it 12 (on my machine)

reorganised so mini profilers can be cleanly disabled from config file

added caching for categories index

move production.rb to production.sample.rb
2013-04-11 16:24:21 +10:00