diff --git a/app/coffee/app.coffee b/app/coffee/app.coffee index 652f1cf7..8443c039 100644 --- a/app/coffee/app.coffee +++ b/app/coffee/app.coffee @@ -753,7 +753,7 @@ i18nInit = (lang, $translate) -> init = ($log, $rootscope, $auth, $events, $analytics, $translate, $location, $navUrls, appMetaService, - loaderService, navigationBarService, errorHandlingService, lightboxService) -> + loaderService, navigationBarService, errorHandlingService, lightboxService, $tgConfig) -> $log.debug("Initialize application") $rootscope.$on '$translatePartialLoaderStructureChanged', () -> @@ -782,6 +782,9 @@ init = ($log, $rootscope, $auth, $events, $analytics, $translate, $location, $na $rootscope.$on "$translateChangeEnd", (e, ctx) -> lang = ctx.language i18nInit(lang, $translate) + # RTL + rtlLanguages = $tgConfig.get("rtlLanguages", []) + $rootscope.isRTL = rtlLanguages.indexOf(lang) > -1 # bluebird Promise.setScheduler (cb) -> @@ -930,5 +933,6 @@ module.run([ "tgNavigationBarService", "tgErrorHandlingService", "lightboxService", + "$tgConfig", init ]) diff --git a/app/coffee/modules/common.coffee b/app/coffee/modules/common.coffee index d9e42386..4ca84b92 100644 --- a/app/coffee/modules/common.coffee +++ b/app/coffee/modules/common.coffee @@ -29,9 +29,13 @@ module = angular.module("taigaCommon", []) ############################################################################# ## Default datepicker config ############################################################################# -DataPickerConfig = ($translate) -> +DataPickerConfig = ($translate, $config, $auth) -> return { get: () -> + user = $auth.getUser() + lang = user.lang || $translate.preferredLanguage() + rtlLanguages = $config.get("rtlLanguages", []) + isRTL = rtlLanguages.indexOf(lang) > -1 return { i18n: { previousMonth: $translate.instant("COMMON.PICKERDATE.PREV_MONTH"), @@ -69,13 +73,13 @@ DataPickerConfig = ($translate) -> $translate.instant("COMMON.PICKERDATE.WEEK_DAYS_SHORT.SAT") ] }, - isRTL: $translate.instant("COMMON.PICKERDATE.IS_RTL") == "true", + isRTL: isRTL, firstDay: parseInt($translate.instant("COMMON.PICKERDATE.FIRST_DAY_OF_WEEK"), 10), format: $translate.instant("COMMON.PICKERDATE.FORMAT") } } -module.factory("tgDatePickerConfigService", ["$translate", DataPickerConfig]) +module.factory("tgDatePickerConfigService", ["$translate", "$tgConfig", "$tgAuth", DataPickerConfig]) ############################################################################# ## Get the selected text diff --git a/app/index.jade b/app/index.jade index 438ba307..e0b37e63 100644 --- a/app/index.jade +++ b/app/index.jade @@ -1,5 +1,5 @@ doctype html -html(lang="en") +html(lang="en", ng-attr-dir="{{ isRTL ? 'rtl' : 'ltr' }}") head meta(charset="utf-8") meta(http-equiv="content-type", content="text/html; charset=utf-8") @@ -18,7 +18,7 @@ html(lang="en") script(type='text/javascript'). window.prerenderReady = false; - body(tg-main) + body(tg-main, ng-class="{'rtl': isRTL}") div(tg-navigation-bar, ng-if="!errorHandling.showingError") div(ng-if="!errorHandling.showingError") div.master(ng-view) diff --git a/app/locales/taiga/locale-en.json b/app/locales/taiga/locale-en.json index 4aa9250d..6af3550e 100644 --- a/app/locales/taiga/locale-en.json +++ b/app/locales/taiga/locale-en.json @@ -79,7 +79,6 @@ }, "PICKERDATE": { "FORMAT": "DD MMM YYYY", - "IS_RTL": "false", "FIRST_DAY_OF_WEEK": "1", "PREV_MONTH": "Previous Month", "NEXT_MONTH": "Next Month", diff --git a/app/styles/core/elements.scss b/app/styles/core/elements.scss index a46902e2..0d606072 100644 --- a/app/styles/core/elements.scss +++ b/app/styles/core/elements.scss @@ -51,6 +51,8 @@ svg { //Datepicker .pika-single { // scss-lint:disable ImportantRule + min-width: 240px; + width: auto; z-index: 999999; .pika-title { color: $grayer; diff --git a/conf/conf.example.json b/conf/conf.example.json index b2a8b8a9..ee0cc0c1 100644 --- a/conf/conf.example.json +++ b/conf/conf.example.json @@ -19,5 +19,6 @@ "contribPlugins": [], "tribeHost": null, "importers": [], - "gravatar": true + "gravatar": true, + "rtlLanguages": ["fa"] }