diff --git a/app/coffee/app.coffee b/app/coffee/app.coffee index 5ac84611..5489568b 100644 --- a/app/coffee/app.coffee +++ b/app/coffee/app.coffee @@ -196,7 +196,8 @@ configure = ($routeProvider, $locationProvider, $httpProvider, $provide, $tgEven responseError: httpResponseError } - $provide.factory("authHttpIntercept", ["$q", "$location", "$tgNavUrls", "lightboxService", authHttpIntercept]) + $provide.factory("authHttpIntercept", ["$q", "$location", "$tgNavUrls", "lightboxService", + authHttpIntercept]) $httpProvider.interceptors.push("authHttpIntercept") @@ -292,9 +293,7 @@ init = ($log, $config, $rootscope, $auth, $events, $analytics, $translate) -> $rootscope.contribPlugins = @.taigaContribPlugins $rootscope.adminPlugins = _.where(@.taigaContribPlugins, {"type": "admin"}) - # i18n - #$rootscope.$on "$translateChangeEnd", (ctx) -> - $rootscope.$on "$translateLoadingEnd'", (ctx) -> + $rootscope.$on "$translateLoadingEnd", (e, ctx) -> lang = ctx.language i18nInit(lang, $translate) diff --git a/app/coffee/modules/backlog/lightboxes.coffee b/app/coffee/modules/backlog/lightboxes.coffee index ed267727..99f19a81 100644 --- a/app/coffee/modules/backlog/lightboxes.coffee +++ b/app/coffee/modules/backlog/lightboxes.coffee @@ -33,7 +33,6 @@ CreateEditSprint = ($repo, $confirm, $rs, $rootscope, lightboxService, $loading, link = ($scope, $el, attrs) -> hasErrors = false createSprint = true - prettyDate = $translate.instant("BACKLOG.SPRINTS.DATE") $scope.sprint = { project: null @@ -107,6 +106,7 @@ CreateEditSprint = ($repo, $confirm, $rs, $rootscope, lightboxService, $loading, form.reset() createSprint = true + prettyDate = $translate.instant("COMMON.PICKERDATE.FORMAT") $scope.sprint.project = projectId $scope.sprint.name = null $scope.sprint.slug = null @@ -147,6 +147,8 @@ CreateEditSprint = ($repo, $confirm, $rs, $rootscope, lightboxService, $loading, $scope.$on "sprintform:edit", (ctx, sprint) -> createSprint = false + prettyDate = $translate.instant("COMMON.PICKERDATE.FORMAT") + $scope.$apply -> $scope.sprint = sprint $scope.sprint.estimated_start = moment($scope.sprint.estimated_start).format(prettyDate) diff --git a/app/coffee/modules/common/components.coffee b/app/coffee/modules/common/components.coffee index fdd2055a..14130067 100644 --- a/app/coffee/modules/common/components.coffee +++ b/app/coffee/modules/common/components.coffee @@ -52,59 +52,68 @@ module.directive("tgDateRange", ["$translate", DateRangeDirective]) ## Date Selector Directive (using pikaday) ############################################################################# -DateSelectorDirective = ($translate) -> +DateSelectorDirective = ($rootscope, $translate) -> link = ($scope, $el, $attrs, $model) -> selectedDate = null - $el.picker = new Pikaday({ - field: $el[0] - onSelect: (date) => - selectedDate = date - onOpen: => - $el.picker.setDate(selectedDate) if selectedDate? - i18n: { - previousMonth: $translate.instant("COMMON.PICKERDATE.PREV_MONTH"), - nextMonth: $translate.instant("COMMON.PICKERDATE.NEXT_MONTH"), - months: [$translate.instant("COMMON.PICKERDATE.MONTHS.JAN"), - $translate.instant("COMMON.PICKERDATE.MONTHS.FEB"), - $translate.instant("COMMON.PICKERDATE.MONTHS.MAR"), - $translate.instant("COMMON.PICKERDATE.MONTHS.APR"), - $translate.instant("COMMON.PICKERDATE.MONTHS.MAY"), - $translate.instant("COMMON.PICKERDATE.MONTHS.JUN"), - $translate.instant("COMMON.PICKERDATE.MONTHS.JUL"), - $translate.instant("COMMON.PICKERDATE.MONTHS.AUG"), - $translate.instant("COMMON.PICKERDATE.MONTHS.SEP"), - $translate.instant("COMMON.PICKERDATE.MONTHS.OCT"), - $translate.instant("COMMON.PICKERDATE.MONTHS.NOV"), - $translate.instant("COMMON.PICKERDATE.MONTHS.DEC")], - weekdays: [$translate.instant("COMMON.PICKERDATE.WEEK_DAYS.SUN"), - $translate.instant("COMMON.PICKERDATE.WEEK_DAYS.MON"), - $translate.instant("COMMON.PICKERDATE.WEEK_DAYS.TUE"), - $translate.instant("COMMON.PICKERDATE.WEEK_DAYS.WED"), - $translate.instant("COMMON.PICKERDATE.WEEK_DAYS.THU"), - $translate.instant("COMMON.PICKERDATE.WEEK_DAYS.FRI"), - $translate.instant("COMMON.PICKERDATE.WEEK_DAYS.SAT")], - weekdaysShort: [$translate.instant("COMMON.PICKERDATE.WEEK_DAYS_SHORT.SUN"), - $translate.instant("COMMON.PICKERDATE.WEEK_DAYS_SHORT.MON"), - $translate.instant("COMMON.PICKERDATE.WEEK_DAYS_SHORT.TUE"), - $translate.instant("COMMON.PICKERDATE.WEEK_DAYS_SHORT.WED"), - $translate.instant("COMMON.PICKERDATE.WEEK_DAYS_SHORT.THU"), - $translate.instant("COMMON.PICKERDATE.WEEK_DAYS_SHORT.FRI"), - $translate.instant("COMMON.PICKERDATE.WEEK_DAYS_SHORT.SAT")] - }, - isRTL: $translate.instant("COMMON.PICKERDATE.IS_RTL") == "true", - firstDay: parseInt($translate.instant("COMMON.PICKERDATE.FIRST_DAY_OF_WEEK"), 10), - format: $translate.instant("COMMON.PICKERDATE.FORMAT") - }) + + initialize = () -> + $el.picker = new Pikaday({ + field: $el[0] + onSelect: (date) => + selectedDate = date + onOpen: => + $el.picker.setDate(selectedDate) if selectedDate? + i18n: { + previousMonth: $translate.instant("COMMON.PICKERDATE.PREV_MONTH"), + nextMonth: $translate.instant("COMMON.PICKERDATE.NEXT_MONTH"), + months: [$translate.instant("COMMON.PICKERDATE.MONTHS.JAN"), + $translate.instant("COMMON.PICKERDATE.MONTHS.FEB"), + $translate.instant("COMMON.PICKERDATE.MONTHS.MAR"), + $translate.instant("COMMON.PICKERDATE.MONTHS.APR"), + $translate.instant("COMMON.PICKERDATE.MONTHS.MAY"), + $translate.instant("COMMON.PICKERDATE.MONTHS.JUN"), + $translate.instant("COMMON.PICKERDATE.MONTHS.JUL"), + $translate.instant("COMMON.PICKERDATE.MONTHS.AUG"), + $translate.instant("COMMON.PICKERDATE.MONTHS.SEP"), + $translate.instant("COMMON.PICKERDATE.MONTHS.OCT"), + $translate.instant("COMMON.PICKERDATE.MONTHS.NOV"), + $translate.instant("COMMON.PICKERDATE.MONTHS.DEC")], + weekdays: [$translate.instant("COMMON.PICKERDATE.WEEK_DAYS.SUN"), + $translate.instant("COMMON.PICKERDATE.WEEK_DAYS.MON"), + $translate.instant("COMMON.PICKERDATE.WEEK_DAYS.TUE"), + $translate.instant("COMMON.PICKERDATE.WEEK_DAYS.WED"), + $translate.instant("COMMON.PICKERDATE.WEEK_DAYS.THU"), + $translate.instant("COMMON.PICKERDATE.WEEK_DAYS.FRI"), + $translate.instant("COMMON.PICKERDATE.WEEK_DAYS.SAT")], + weekdaysShort: [$translate.instant("COMMON.PICKERDATE.WEEK_DAYS_SHORT.SUN"), + $translate.instant("COMMON.PICKERDATE.WEEK_DAYS_SHORT.MON"), + $translate.instant("COMMON.PICKERDATE.WEEK_DAYS_SHORT.TUE"), + $translate.instant("COMMON.PICKERDATE.WEEK_DAYS_SHORT.WED"), + $translate.instant("COMMON.PICKERDATE.WEEK_DAYS_SHORT.THU"), + $translate.instant("COMMON.PICKERDATE.WEEK_DAYS_SHORT.FRI"), + $translate.instant("COMMON.PICKERDATE.WEEK_DAYS_SHORT.SAT")] + }, + isRTL: $translate.instant("COMMON.PICKERDATE.IS_RTL") == "true", + firstDay: parseInt($translate.instant("COMMON.PICKERDATE.FIRST_DAY_OF_WEEK"), 10), + format: $translate.instant("COMMON.PICKERDATE.FORMAT") + }) + + unbind = $rootscope.$on "$translateChangeEnd", (ctx) => initialize() $scope.$watch $attrs.ngModel, (val) -> + initialize() if val? and not $el.picker $el.picker.setDate(val) if val? + $scope.$on "$destroy", -> + $el.off() + unbind() + return { link: link require: "ngModel" } -module.directive("tgDateSelector", ["$translate", DateSelectorDirective]) +module.directive("tgDateSelector", ["$rootScope", "$translate", DateSelectorDirective]) ############################################################################# @@ -131,6 +140,9 @@ SprintProgressBarDirective = -> renderProgress($el, percentage, visual_percentage) + $scope.$on "$destroy", -> + $el.off() + return {link: link} module.directive("tgSprintProgressbar", SprintProgressBarDirective) diff --git a/app/locales/locale-ca.json b/app/locales/locale-ca.json index 54c99bc5..f55807ca 100644 --- a/app/locales/locale-ca.json +++ b/app/locales/locale-ca.json @@ -62,7 +62,7 @@ "EQUAL_TO": "This value should be the same." }, "PICKERDATE": { - "FORMAT": "DD/MM/YYYY", + "FORMAT": "DD MMM YYYY", "IS_RTL": "false", "FIRST_DAY_OF_WEEK": "1", "PREV_MONTH": "Previous Month", @@ -239,7 +239,7 @@ "ATTACHMENT": { "SECTION_NAME": "Adjunts", "TITLE": "{{ fileName }} pujat el {{ date }}", - "DESCIPTION": "Escriu una descripció curta", + "DESCRIPTION": "Type a short description", "DEPRECATED_FILE": "Obsolet?", "ADD": "Afegir nou adjunt. <%- maxFileSizeMsg %>", "MAX_FILE_SIZE": "[Max. grandària: {{maxFileSize}}]", diff --git a/app/locales/locale-en.json b/app/locales/locale-en.json index 310244b2..04998d9c 100644 --- a/app/locales/locale-en.json +++ b/app/locales/locale-en.json @@ -62,7 +62,7 @@ "EQUAL_TO": "This value should be the same." }, "PICKERDATE": { - "FORMAT": "DD/MM/YYYY", + "FORMAT": "DD MMM YYYY", "IS_RTL": "false", "FIRST_DAY_OF_WEEK": "1", "PREV_MONTH": "Previous Month", diff --git a/app/locales/locale-es.json b/app/locales/locale-es.json index b707036a..e21240ba 100644 --- a/app/locales/locale-es.json +++ b/app/locales/locale-es.json @@ -62,7 +62,7 @@ "EQUAL_TO": "Este valor debe ser el mismo." }, "PICKERDATE": { - "FORMAT": "DD/MM/YYYY", + "FORMAT": "DD MMM YYYY", "IS_RTL": "false", "FIRST_DAY_OF_WEEK": "1", "PREV_MONTH": "Mes Anterior", @@ -239,7 +239,7 @@ "ATTACHMENT": { "SECTION_NAME": "adjuntos", "TITLE": "{{ fileName }} subido el {{ date }}", - "DESCIPTION": "Escribe una descripción corta", + "DESCRIPTION": "Escribe una pequeña descripción", "DEPRECATED_FILE": "¿Desactualizado?", "ADD": "Agrega nuevos adjunto", "MAX_FILE_SIZE": "[Tamaño Max. : {{maxFileSize}}]", diff --git a/app/locales/locale-fi.json b/app/locales/locale-fi.json index 155e9047..a33a23b7 100644 --- a/app/locales/locale-fi.json +++ b/app/locales/locale-fi.json @@ -62,7 +62,7 @@ "EQUAL_TO": "This value should be the same." }, "PICKERDATE": { - "FORMAT": "DD/MM/YYYY", + "FORMAT": "DD MMM YYYY", "IS_RTL": "false", "FIRST_DAY_OF_WEEK": "1", "PREV_MONTH": "Previous Month", @@ -239,7 +239,7 @@ "ATTACHMENT": { "SECTION_NAME": "liitteet", "TITLE": "{{ fileName }} ladattu {{ date }}\n", - "DESCIPTION": "Kirjoita lyhyt kuvaus", + "DESCRIPTION": "Type a short description", "DEPRECATED_FILE": "Vanhentunut?", "ADD": "Lisää liite. <%- maxFileSizeMsg %>", "MAX_FILE_SIZE": "[Maks. koko: {{maxFileSize}}]", diff --git a/app/locales/locale-fr.json b/app/locales/locale-fr.json index 6ad4cd16..ba318f95 100644 --- a/app/locales/locale-fr.json +++ b/app/locales/locale-fr.json @@ -62,7 +62,7 @@ "EQUAL_TO": "This value should be the same." }, "PICKERDATE": { - "FORMAT": "DD/MM/YYYY", + "FORMAT": "DD MMM YYYY", "IS_RTL": "false", "FIRST_DAY_OF_WEEK": "1", "PREV_MONTH": "Previous Month", @@ -239,7 +239,7 @@ "ATTACHMENT": { "SECTION_NAME": "pièces jointes", "TITLE": "{{ fileName }} transmis le {{ date }}\n", - "DESCIPTION": "Entrez une courte description", + "DESCRIPTION": "Type a short description", "DEPRECATED_FILE": "Obsolète?", "ADD": "Ajouter une pièce jointe. <%- maxFileSizeMsg %>", "MAX_FILE_SIZE": "[Taille max.: {{maxFileSize}}]", diff --git a/app/locales/locale-zh-hant.json b/app/locales/locale-zh-hant.json index 5fd14f85..ff130a39 100644 --- a/app/locales/locale-zh-hant.json +++ b/app/locales/locale-zh-hant.json @@ -62,7 +62,7 @@ "EQUAL_TO": "該數值應為一致" }, "PICKERDATE": { - "FORMAT": "DD/MM/YYYY", + "FORMAT": "DD MMM YYYY", "IS_RTL": "false", "FIRST_DAY_OF_WEEK": "1", "PREV_MONTH": "Previous Month", @@ -239,7 +239,7 @@ "ATTACHMENT": { "SECTION_NAME": "附件", "TITLE": "{{ fileName }} 上傳於 {{ date }}", - "DESCIPTION": "輸入一段簡短敘述", + "DESCRIPTION": "Type a short description", "DEPRECATED_FILE": "棄用?", "ADD": "加入新附件 <%- maxFileSizeMsg %>", "MAX_FILE_SIZE": "[Max. size: {{maxFileSize}}]",