Commit Graph

86 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
Régis Hanol a2c04be718 FIX: eradicate I18n fallback issues 💣
FIX: client's translation overrides were not working when the current locale was missing a key
FIX: ExtraLocalesController.show was not properly handling multiple translations
FIX: JsLocaleHelper#output_locale was not properly handling multiple translations

FIX: ExtraLocalesController.show's spec which was randomly failing
FIX: JsLocaleHelper#output_locale was muting cached translations hashes

REFACTOR: move 'enableVerboseLocalization' to the 'localization' initializer
REFACTOR: remove unused I18n.js methods (getFallbacks, localize, parseDate, toTime, strftime, toCurrency, toPercentage)
REFACTOR: remove all I18n.pluralizationRules and instead use MessageFormat's pluralization rules

TEST: add tests for localization initializer
TEST: add tests for I18n.js
2017-02-24 11:31:21 +01:00
Sam d28d8a1f85 FIX: order by op_likes leads to broken browsing 2016-12-27 19:08:54 +11:00
Robin Ward b601120b39 Support for Raw Handlebars and helpers in Ember 1.13 2016-10-26 10:27:57 -04:00
Robin Ward be1d74d207 Split out common functions into `discourse-common` module 2016-09-22 09:52:19 -04:00
Régis Hanol 038eb6f645 FIX: translations with a symbol as key should also be overridable 2016-08-24 11:53:03 +02:00
Robin Ward bba0fd0654 REFACTOR: PreloadStore to ES6 2016-07-11 12:57:05 -04:00
Robin Ward 7ff5b228cd REFACTOR: Raw Handlebars ported to ES6 2016-07-11 12:57:05 -04:00
Sam d9bcf85edc PERF: make development tolerable under sprockets 3 2016-05-13 18:30:03 +10:00
Guo Xiang Tan 21df320f71
FIX: Duplicated file. 2016-04-18 11:18:37 +08:00
Guo Xiang Tan 256d7a00e9 Update sprockets. (#4167)
* Update sass-rails.

* FIX: Tilt dependency has been removed from Ember::Handlebars::Template.

* Update `DiscourseIIFE` to new Sprockets API.

* `Rails.application.assets` returns `nil` in production.

* Move sprockets-rails out of the assets group.

* Pin ember-rails to 0.18.5 which works with Sprockets 3.x.

* Update sprockets to 3.6.0.

* Make `DiscourseSassCompiler` work with Sprockets 3.

* Use `Sass::Rails::SassImporterGlobbing` instead of haxxing our own.

* Moneky patch so that we don't add dependencies for our custom css.

* FIX: Missing class.

* Upgrade ember-handlebars-template.

* FIX: require path needs to share the same root as the folder's path.

* Bump discourse-qunit-rails.

* Update ember-template-compiler.js to 1.12.2.

* `prepend` is private in Ruby 2.0.0.
2016-04-18 10:47:52 +08:00
Robin Ward cc25716e47 FIX: Allow message format translations to be overridden 2016-04-08 14:49:50 -04:00
Guo Xiang Tan 90fde5053d FIX: Load Redis patch much earlier. 2016-03-11 17:29:00 +08:00
Guo Xiang Tan ced86aa890 FIX: N+1 query on topics view page. 2016-02-23 16:22:40 +08:00
Gerhard Schlager 8481548def FIX: Load fallback locales after reloading translations 2016-02-22 22:48:56 +01:00
Gerhard Schlager 80c9fa4dca FIX: Load translation overrides for more than one locale 2016-02-22 22:48:56 +01:00
Sam bbbb09a6fb FEATURE: start tracking information about migrations that run
This commit adds a new tracking table that lets us know

- When a migration ran
- What version Discourse was at
- How long it took
- What version Rails was at

The built in tracking in Rails is very limited, does not track this info
2016-02-17 18:08:25 +11:00
Guo Xiang Tan b8193e8e67 Remove Arel patch that has been merged upstream. 2016-01-22 12:24:36 +08:00
Robin Ward d1ebb9d0b5 FIX: I18n Fallbacks were not applying correctly 2015-12-23 12:09:18 -05:00
Sam b8a47a1129 FIX: if a string was missing catch the throw
if overrides were in play and we tried to translate a
missing string we would throw an exception
2015-12-09 17:10:51 +11:00
Robin Ward de88be2fbc Support for "Only show overridden" in site text customization 2015-11-30 15:25:08 -05:00
Robin Ward 5e93140f85 FEATURE: Can override any translation via an admin interface 2015-11-27 11:35:19 -05:00
Robin Ward 434deb1bd3 SECURITY: Backported XSS fixes from Handlebars 2015-11-24 16:08:08 -05:00
Robin Ward 1506eba28d Support for overriding client side translation keys 2015-11-20 17:14:01 -05:00
Robin Ward e168c5fde3 PERF: Much more performant, multisite aware I18n overrides 2015-11-19 16:36:59 -05:00
Robin Ward 7f4ca91e06 FIX: I18n overrides should be multisite aware 2015-11-18 16:05:53 -05:00
Robin Ward 3720783c1b Refactor to our own Discourse I18n backend
This removes some monkey patches and makes testing easier.
It will also support database backed I18n changes.
2015-11-13 16:35:02 -05:00
Sam 805120fc95 FEATURE: add connnection reaping based on maximum age
This feature ensures connections to the db are always attempted to be closed
after 600 seconds of idle time.
2015-10-17 11:29:16 +11:00
Gerhard Schlager 454a628d58 Add tests for I18n.exists? freedom patch 2015-09-23 20:41:51 +02:00
Gerhard Schlager 825be30844 FIX: I18n.exists? should use locale fallbacks 2015-09-19 23:33:11 +02:00
Régis Hanol 1b44924cb0 replace 'open_uri_redirections' gem with a single freedom_patches file 2015-08-18 14:56:36 +02:00
Sam 1f044350f6 stop running exec_sql through active record
this avoids double logging
2015-08-14 10:01:38 +10:00
Kane York ecfa17b5a7 FEATURE: Localization fallbacks (server-side)
The FallbackLocaleList object tells I18n::Backend::Fallbacks what order the
languages should be attempted in. Because of the translate_accelerator patch,
the SiteSetting.default_locale is *not* guaranteed to be fully loaded after the
server starts, so a call to ensure_loaded! is added after the locale is set for
the current user.

The declarations of config.i18n.fallbacks = true in the environment files were
actually garbage, because the I18n.default_locale was
SiteSetting.default_locale, so there was nothing to fall back to. *derp*
2015-07-15 10:17:36 -07:00
riking 428ff097f1 Add some documentation to fast_pluck.rb 2015-05-14 21:15:33 -07:00
Sam 51d82fc25d PERF: Active Record #pluck is twice faster
PERF: SqlBuilder bypasses AR converters and uses PG directly
2015-05-13 16:46:17 +10:00
Robin Ward d9e5302a16 FIX: HTMLBars compilation was broken in production mode 2015-05-11 11:20:46 -04:00
Arthur Neves 439d0d2e37
Check Rails.version instead of ENV
Like that we can have code that works on multiple Rails versions, and we
dont need to mix a new method on Kernel.
Also, this makes easier to have multiple versions.
For instance, before master was 4.2, which is not the case anymore, so
on the code we should check versions and not Environment variables
2015-04-28 22:27:47 -04:00
Robin Ward 5b3f99aa50 Don't blow up if Redis switches to READONLY 2015-04-24 14:37:16 -04:00
Sam 9191fbe9fb Upgrade ruby racer so we can remove our freedom patch 2015-04-15 09:21:52 +10:00
Sam d390603274 PERF: Fix memory leak
We used to leak some memory every time you cook a post

see: https://github.com/cowboyd/therubyracer/pull/336
2015-04-01 13:30:55 +11:00
Sam 830ce05fe6 PERF: simplify and shrink the translation cache
FIX: leaking objects into the translation cache causing sidekiq to grow
2015-03-30 16:31:36 +11:00
Sam 3c6aede1aa using wrong var here 2015-02-12 14:40:07 +11:00
Sam a5f46c98c1 PERF: only load locale files we are using
We used to load up all translations in all languages
2015-02-12 12:08:14 +11:00
Sam 8be2cb061e barber upgrade, get assets precompile working on 1.9 2014-12-17 09:31:41 -05:00
Robin Ward 5659b93c71 Many fixes for Ember 1.9.0 2014-12-17 09:31:40 -05:00
Godfrey Chan 4d188ca5b0 Added back the `last_use` timestamp to the `AbstractAdapter`
This was removed in 9e457a8654
2014-11-10 01:05:47 -08:00
Sam 222f9fee38 need to figure out encoding before forcing. 2014-10-30 17:49:44 +11:00
Sam 5729e7df6f PERF: use raw rendering for topic list
rename my handlebars helper to "raw",
create ember compat handlebars to handle rendering
patch ember rails to use the correct precompiler
2014-10-29 15:24:51 +11:00
Sam f2957b126e add more diagnostics to encoding issues 2014-10-03 19:45:42 +10:00
Sam 090dc80f8a FIX: work around random encoding errors
(symptom is that site is blank see: https://meta.discourse.org/t/actionview-template-error-incompatible-character-encodings-utf-8-and-ascii-8bit/19970)
2014-10-03 10:41:52 +10:00