renatomefidf/sammui

View on GitHub
src/Renatomefi/TranslateBundle/Resources/public/angular/translate/services/translateServices.js

Summary

Maintainability
A
0 mins
Test Coverage
'use strict';

angular.module('sammui.translateServices', ['ngResource', 'ngRoute'])
    // Resource factories for Langs API
    .factory('translateLangsInfo', function ($resource) {
        return $resource('/l10n/manage/langs/info', {lang: '@lang'}, {
            'query': {
                method: 'GET',
                isArray: false
            }
        });
    })
    .factory('translateLangs', function ($resource) {
        return $resource('/l10n/manage/langs/:lang', {lang: '@lang'});
    })
    .factory('translateLangsKeys', ['$resource', '$rootScope', function ($resource) {
        return $resource('/l10n/manage/langs/:lang/keys/:keys', {lang: '@lang', keys: '@keys'}, {
            'update': {
                method: 'PUT'
            }
        });
    }])
    // Translation Loader to use inside Translation Provider
    .factory('translateLoader', ['$q', 'translateLangs', function ($q, translateLangs) {
        return function (options) {
            var deferred = $q.defer(),
                translations = {};

            var lang = translateLangs.get({lang: options.key}, function () {
                lang.translations.forEach(function (t) {
                    if (t) {
                        translations[t.key] = t.value;
                    }
                });
                deferred.resolve(translations);
            });

            return deferred.promise;
        };
    }]);