mirror of
https://github.com/syncthing/syncthing.git
synced 2024-11-17 10:58:49 -07:00
6e07742fe9
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3108
127 lines
3.9 KiB
JavaScript
127 lines
3.9 KiB
JavaScript
/*!
|
|
* angular-translate - v2.11.0 - 2016-03-20
|
|
*
|
|
* Copyright (c) 2016 The angular-translate team, Pascal Precht; Licensed MIT
|
|
*
|
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
* of this software and associated documentation files (the "Software"), to deal
|
|
* in the Software without restriction, including without limitation the rights
|
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
* copies of the Software, and to permit persons to whom the Software is
|
|
* furnished to do so, subject to the following conditions:
|
|
*
|
|
* The above copyright notice and this permission notice shall be included in
|
|
* all copies or substantial portions of the Software.
|
|
*
|
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
* THE SOFTWARE.
|
|
*
|
|
*/
|
|
(function (root, factory) {
|
|
if (typeof define === 'function' && define.amd) {
|
|
// AMD. Register as an anonymous module unless amdModuleId is set
|
|
define([], function () {
|
|
return (factory());
|
|
});
|
|
} else if (typeof exports === 'object') {
|
|
// Node. Does not work with strict CommonJS, but
|
|
// only CommonJS-like environments that support module.exports,
|
|
// like Node.
|
|
module.exports = factory();
|
|
} else {
|
|
factory();
|
|
}
|
|
}(this, function () {
|
|
|
|
$translateStaticFilesLoader.$inject = ['$q', '$http'];
|
|
angular.module('pascalprecht.translate')
|
|
/**
|
|
* @ngdoc object
|
|
* @name pascalprecht.translate.$translateStaticFilesLoader
|
|
* @requires $q
|
|
* @requires $http
|
|
*
|
|
* @description
|
|
* Creates a loading function for a typical static file url pattern:
|
|
* "lang-en_US.json", "lang-de_DE.json", etc. Using this builder,
|
|
* the response of these urls must be an object of key-value pairs.
|
|
*
|
|
* @param {object} options Options object, which gets prefix, suffix and key.
|
|
*/
|
|
.factory('$translateStaticFilesLoader', $translateStaticFilesLoader);
|
|
|
|
function $translateStaticFilesLoader($q, $http) {
|
|
|
|
'use strict';
|
|
|
|
return function (options) {
|
|
|
|
if (!options || (!angular.isArray(options.files) && (!angular.isString(options.prefix) || !angular.isString(options.suffix)))) {
|
|
throw new Error('Couldn\'t load static files, no files and prefix or suffix specified!');
|
|
}
|
|
|
|
if (!options.files) {
|
|
options.files = [{
|
|
prefix: options.prefix,
|
|
suffix: options.suffix
|
|
}];
|
|
}
|
|
|
|
var load = function (file) {
|
|
if (!file || (!angular.isString(file.prefix) || !angular.isString(file.suffix))) {
|
|
throw new Error('Couldn\'t load static file, no prefix or suffix specified!');
|
|
}
|
|
|
|
return $http(angular.extend({
|
|
url: [
|
|
file.prefix,
|
|
options.key,
|
|
file.suffix
|
|
].join(''),
|
|
method: 'GET',
|
|
params: ''
|
|
}, options.$http))
|
|
.then(function(result) {
|
|
return result.data;
|
|
}, function () {
|
|
return $q.reject(options.key);
|
|
});
|
|
};
|
|
|
|
var promises = [],
|
|
length = options.files.length;
|
|
|
|
for (var i = 0; i < length; i++) {
|
|
promises.push(load({
|
|
prefix: options.files[i].prefix,
|
|
key: options.key,
|
|
suffix: options.files[i].suffix
|
|
}));
|
|
}
|
|
|
|
return $q.all(promises)
|
|
.then(function (data) {
|
|
var length = data.length,
|
|
mergedData = {};
|
|
|
|
for (var i = 0; i < length; i++) {
|
|
for (var key in data[i]) {
|
|
mergedData[key] = data[i][key];
|
|
}
|
|
}
|
|
|
|
return mergedData;
|
|
});
|
|
};
|
|
}
|
|
|
|
$translateStaticFilesLoader.displayName = '$translateStaticFilesLoader';
|
|
return 'pascalprecht.translate';
|
|
|
|
}));
|