mirror of
https://github.com/sismics/docs.git
synced 2024-11-22 14:07:55 +01:00
parent
e74f86e118
commit
273136ab23
@ -106,7 +106,7 @@ module.exports = function(grunt) {
|
|||||||
dist: {
|
dist: {
|
||||||
expand: true,
|
expand: true,
|
||||||
cwd: 'src/',
|
cwd: 'src/',
|
||||||
src: ['**', '!**/*.js', '!*.html', '!**/*.less', '!**/*.css'],
|
src: ['**', '!**/*.js', '!*.html', '!**/*.less', '!**/*.css', 'locale/**'],
|
||||||
dest: 'dist/'
|
dest: 'dist/'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -6,13 +6,15 @@
|
|||||||
angular.module('docs',
|
angular.module('docs',
|
||||||
// Dependencies
|
// Dependencies
|
||||||
['ui.router', 'ui.bootstrap', 'dialog', 'ngProgress', 'monospaced.qrcode', 'yaru22.angular-timeago', 'ui.validate',
|
['ui.router', 'ui.bootstrap', 'dialog', 'ngProgress', 'monospaced.qrcode', 'yaru22.angular-timeago', 'ui.validate',
|
||||||
'ui.sortable', 'restangular', 'ngSanitize', 'ngTouch', 'colorpicker.module', 'ngFileUpload', 'pascalprecht.translate']
|
'ui.sortable', 'restangular', 'ngSanitize', 'ngTouch', 'colorpicker.module', 'ngFileUpload', 'pascalprecht.translate',
|
||||||
|
'tmh.dynamicLocale']
|
||||||
)
|
)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Configuring modules.
|
* Configuring modules.
|
||||||
*/
|
*/
|
||||||
.config(function($locationProvider, $urlRouterProvider, $stateProvider, $httpProvider, RestangularProvider, $translateProvider, timeAgoSettings) {
|
.config(function($locationProvider, $urlRouterProvider, $stateProvider, $httpProvider,
|
||||||
|
RestangularProvider, $translateProvider, timeAgoSettings, tmhDynamicLocaleProvider) {
|
||||||
$locationProvider.hashPrefix('');
|
$locationProvider.hashPrefix('');
|
||||||
|
|
||||||
// Configuring UI Router
|
// Configuring UI Router
|
||||||
@ -363,9 +365,11 @@ angular.module('docs',
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Configuring Timago
|
// Configuring Timago
|
||||||
timeAgoSettings.overrideLang = $translateProvider.preferredLanguage();
|
|
||||||
timeAgoSettings.fullDateAfterSeconds = 60 * 60 * 24 * 30; // 30 days
|
timeAgoSettings.fullDateAfterSeconds = 60 * 60 * 24 * 30; // 30 days
|
||||||
|
|
||||||
|
// Configuring tmhDynamicLocale
|
||||||
|
tmhDynamicLocaleProvider.localeLocationPattern('locale/angular-locale_{{locale}}.js');
|
||||||
|
|
||||||
// Configuring $http to act like jQuery.ajax
|
// Configuring $http to act like jQuery.ajax
|
||||||
$httpProvider.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=utf-8';
|
$httpProvider.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=utf-8';
|
||||||
$httpProvider.defaults.headers.put['Content-Type'] = 'application/x-www-form-urlencoded;charset=utf-8';
|
$httpProvider.defaults.headers.put['Content-Type'] = 'application/x-www-form-urlencoded;charset=utf-8';
|
||||||
@ -428,8 +432,8 @@ angular.module('docs',
|
|||||||
// Watch for the number of XHR running
|
// Watch for the number of XHR running
|
||||||
$rootScope.$watch(function() {
|
$rootScope.$watch(function() {
|
||||||
return $http.pendingRequests.length > 0
|
return $http.pendingRequests.length > 0
|
||||||
}, function(count) {
|
}, function(loading) {
|
||||||
if (count == 0) {
|
if (!loading) {
|
||||||
$rootScope.ngProgress.complete();
|
$rootScope.ngProgress.complete();
|
||||||
} else {
|
} else {
|
||||||
$rootScope.ngProgress.start();
|
$rootScope.ngProgress.start();
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
/**
|
/**
|
||||||
* Footer controller.
|
* Footer controller.
|
||||||
*/
|
*/
|
||||||
angular.module('docs').controller('Footer', function($scope, $rootScope, Restangular, $translate, timeAgoSettings) {
|
angular.module('docs').controller('Footer', function($scope, $rootScope, Restangular, $translate, timeAgoSettings, tmhDynamicLocale, $locale) {
|
||||||
// Load app data
|
// Load app data
|
||||||
Restangular.one('app').get().then(function(data) {
|
Restangular.one('app').get().then(function(data) {
|
||||||
$scope.app = data;
|
$scope.app = data;
|
||||||
@ -14,6 +14,10 @@ angular.module('docs').controller('Footer', function($scope, $rootScope, Restang
|
|||||||
$scope.currentLang = $translate.use();
|
$scope.currentLang = $translate.use();
|
||||||
timeAgoSettings.overrideLang = $scope.currentLang;
|
timeAgoSettings.overrideLang = $scope.currentLang;
|
||||||
localStorage.overrideLang = $scope.currentLang;
|
localStorage.overrideLang = $scope.currentLang;
|
||||||
|
tmhDynamicLocale.set($scope.currentLang).then(function () {
|
||||||
|
$rootScope.dateFormat = $locale.DATETIME_FORMATS.shortDate;
|
||||||
|
$rootScope.dateTimeFormat = $locale.DATETIME_FORMATS.short;
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
// Change the current language
|
// Change the current language
|
||||||
|
@ -34,6 +34,7 @@
|
|||||||
<script src="lib/angular.translate.js" type="text/javascript"></script>
|
<script src="lib/angular.translate.js" type="text/javascript"></script>
|
||||||
<script src="lib/angular.sanitize.js" type="text/javascript"></script>
|
<script src="lib/angular.sanitize.js" type="text/javascript"></script>
|
||||||
<script src="lib/angular.touch.js" type="text/javascript"></script>
|
<script src="lib/angular.touch.js" type="text/javascript"></script>
|
||||||
|
<script src="lib/angular.tmhDynamicLocale.js" type="text/javascript"></script>
|
||||||
<script src="lib/angular.ui-router.js" type="text/javascript"></script>
|
<script src="lib/angular.ui-router.js" type="text/javascript"></script>
|
||||||
<script src="lib/angular.ui-bootstrap.js" type="text/javascript"></script>
|
<script src="lib/angular.ui-bootstrap.js" type="text/javascript"></script>
|
||||||
<script src="lib/angular.ui-sortable.js" type="text/javascript"></script>
|
<script src="lib/angular.ui-sortable.js" type="text/javascript"></script>
|
||||||
|
260
docs-web/src/main/webapp/src/lib/angular.tmhDynamicLocale.js
Normal file
260
docs-web/src/main/webapp/src/lib/angular.tmhDynamicLocale.js
Normal file
@ -0,0 +1,260 @@
|
|||||||
|
/**
|
||||||
|
* Angular Dynamic Locale - 0.1.32
|
||||||
|
* https://github.com/lgalfaso/angular-dynamic-locale
|
||||||
|
* License: MIT
|
||||||
|
*/
|
||||||
|
(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 () {
|
||||||
|
'use strict';
|
||||||
|
angular.module('tmh.dynamicLocale', []).config(['$provide', function($provide) {
|
||||||
|
function makeStateful($delegate) {
|
||||||
|
$delegate.$stateful = true;
|
||||||
|
return $delegate;
|
||||||
|
}
|
||||||
|
|
||||||
|
$provide.decorator('dateFilter', ['$delegate', makeStateful]);
|
||||||
|
$provide.decorator('numberFilter', ['$delegate', makeStateful]);
|
||||||
|
$provide.decorator('currencyFilter', ['$delegate', makeStateful]);
|
||||||
|
|
||||||
|
}])
|
||||||
|
.constant('tmhDynamicLocale.STORAGE_KEY', 'tmhDynamicLocale.locale')
|
||||||
|
.provider('tmhDynamicLocale', ['tmhDynamicLocale.STORAGE_KEY', function(STORAGE_KEY) {
|
||||||
|
|
||||||
|
var defaultLocale,
|
||||||
|
localeLocationPattern = 'angular/i18n/angular-locale_{{locale}}.js',
|
||||||
|
nodeToAppend,
|
||||||
|
storageFactory = 'tmhDynamicLocaleStorageCache',
|
||||||
|
storage,
|
||||||
|
storageKey = STORAGE_KEY,
|
||||||
|
promiseCache = {},
|
||||||
|
activeLocale,
|
||||||
|
extraProperties = {};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Loads a script asynchronously
|
||||||
|
*
|
||||||
|
* @param {string} url The url for the script
|
||||||
|
@ @param {function} callback A function to be called once the script is loaded
|
||||||
|
*/
|
||||||
|
function loadScript(url, callback, errorCallback, $timeout) {
|
||||||
|
var script = document.createElement('script'),
|
||||||
|
element = nodeToAppend ? nodeToAppend : document.getElementsByTagName("body")[0],
|
||||||
|
removed = false;
|
||||||
|
|
||||||
|
script.type = 'text/javascript';
|
||||||
|
if (script.readyState) { // IE
|
||||||
|
script.onreadystatechange = function () {
|
||||||
|
if (script.readyState === 'complete' ||
|
||||||
|
script.readyState === 'loaded') {
|
||||||
|
script.onreadystatechange = null;
|
||||||
|
$timeout(
|
||||||
|
function () {
|
||||||
|
if (removed) return;
|
||||||
|
removed = true;
|
||||||
|
element.removeChild(script);
|
||||||
|
callback();
|
||||||
|
}, 30, false);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
} else { // Others
|
||||||
|
script.onload = function () {
|
||||||
|
if (removed) return;
|
||||||
|
removed = true;
|
||||||
|
element.removeChild(script);
|
||||||
|
callback();
|
||||||
|
};
|
||||||
|
script.onerror = function () {
|
||||||
|
if (removed) return;
|
||||||
|
removed = true;
|
||||||
|
element.removeChild(script);
|
||||||
|
errorCallback();
|
||||||
|
};
|
||||||
|
}
|
||||||
|
script.src = url;
|
||||||
|
script.async = true;
|
||||||
|
element.appendChild(script);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Loads a locale and replaces the properties from the current locale with the new locale information
|
||||||
|
*
|
||||||
|
* @param {string} localeUrl The path to the new locale
|
||||||
|
* @param {Object} $locale The locale at the curent scope
|
||||||
|
* @param {string} localeId The locale id to load
|
||||||
|
* @param {Object} $rootScope The application $rootScope
|
||||||
|
* @param {Object} $q The application $q
|
||||||
|
* @param {Object} localeCache The current locale cache
|
||||||
|
* @param {Object} $timeout The application $timeout
|
||||||
|
*/
|
||||||
|
function loadLocale(localeUrl, $locale, localeId, $rootScope, $q, localeCache, $timeout) {
|
||||||
|
|
||||||
|
function overrideValues(oldObject, newObject) {
|
||||||
|
if (activeLocale !== localeId) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
angular.forEach(oldObject, function(value, key) {
|
||||||
|
if (!newObject[key]) {
|
||||||
|
delete oldObject[key];
|
||||||
|
} else if (angular.isArray(newObject[key])) {
|
||||||
|
oldObject[key].length = newObject[key].length;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
angular.forEach(newObject, function(value, key) {
|
||||||
|
if (angular.isArray(newObject[key]) || angular.isObject(newObject[key])) {
|
||||||
|
if (!oldObject[key]) {
|
||||||
|
oldObject[key] = angular.isArray(newObject[key]) ? [] : {};
|
||||||
|
}
|
||||||
|
overrideValues(oldObject[key], newObject[key]);
|
||||||
|
} else {
|
||||||
|
oldObject[key] = newObject[key];
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (promiseCache[localeId]) {
|
||||||
|
activeLocale = localeId;
|
||||||
|
return promiseCache[localeId];
|
||||||
|
}
|
||||||
|
|
||||||
|
var cachedLocale,
|
||||||
|
deferred = $q.defer();
|
||||||
|
if (localeId === activeLocale) {
|
||||||
|
deferred.resolve($locale);
|
||||||
|
} else if ((cachedLocale = localeCache.get(localeId))) {
|
||||||
|
activeLocale = localeId;
|
||||||
|
$rootScope.$evalAsync(function() {
|
||||||
|
overrideValues($locale, cachedLocale);
|
||||||
|
storage.put(storageKey, localeId);
|
||||||
|
$rootScope.$broadcast('$localeChangeSuccess', localeId, $locale);
|
||||||
|
deferred.resolve($locale);
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
activeLocale = localeId;
|
||||||
|
promiseCache[localeId] = deferred.promise;
|
||||||
|
loadScript(localeUrl, function() {
|
||||||
|
// Create a new injector with the new locale
|
||||||
|
var localInjector = angular.injector(['ngLocale']),
|
||||||
|
externalLocale = localInjector.get('$locale');
|
||||||
|
|
||||||
|
overrideValues($locale, externalLocale);
|
||||||
|
localeCache.put(localeId, externalLocale);
|
||||||
|
delete promiseCache[localeId];
|
||||||
|
|
||||||
|
$rootScope.$applyAsync(function() {
|
||||||
|
storage.put(storageKey, localeId);
|
||||||
|
$rootScope.$broadcast('$localeChangeSuccess', localeId, $locale);
|
||||||
|
deferred.resolve($locale);
|
||||||
|
});
|
||||||
|
}, function() {
|
||||||
|
delete promiseCache[localeId];
|
||||||
|
|
||||||
|
$rootScope.$applyAsync(function() {
|
||||||
|
if (activeLocale === localeId) {
|
||||||
|
activeLocale = $locale.id;
|
||||||
|
}
|
||||||
|
$rootScope.$broadcast('$localeChangeError', localeId);
|
||||||
|
deferred.reject(localeId);
|
||||||
|
});
|
||||||
|
}, $timeout);
|
||||||
|
}
|
||||||
|
return deferred.promise;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.localeLocationPattern = function(value) {
|
||||||
|
if (value) {
|
||||||
|
localeLocationPattern = value;
|
||||||
|
return this;
|
||||||
|
} else {
|
||||||
|
return localeLocationPattern;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
this.appendScriptTo = function(nodeElement) {
|
||||||
|
nodeToAppend = nodeElement;
|
||||||
|
};
|
||||||
|
|
||||||
|
this.useStorage = function(storageName) {
|
||||||
|
storageFactory = storageName;
|
||||||
|
};
|
||||||
|
|
||||||
|
this.useCookieStorage = function() {
|
||||||
|
this.useStorage('$cookieStore');
|
||||||
|
};
|
||||||
|
|
||||||
|
this.defaultLocale = function(value) {
|
||||||
|
defaultLocale = value;
|
||||||
|
};
|
||||||
|
|
||||||
|
this.storageKey = function(value) {
|
||||||
|
if (value) {
|
||||||
|
storageKey = value;
|
||||||
|
return this;
|
||||||
|
} else {
|
||||||
|
return storageKey;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
this.addLocalePatternValue = function(key, value) {
|
||||||
|
extraProperties[key] = value;
|
||||||
|
};
|
||||||
|
|
||||||
|
this.$get = ['$rootScope', '$injector', '$interpolate', '$locale', '$q', 'tmhDynamicLocaleCache', '$timeout', function($rootScope, $injector, interpolate, locale, $q, tmhDynamicLocaleCache, $timeout) {
|
||||||
|
var localeLocation = interpolate(localeLocationPattern);
|
||||||
|
|
||||||
|
storage = $injector.get(storageFactory);
|
||||||
|
$rootScope.$evalAsync(function() {
|
||||||
|
var initialLocale;
|
||||||
|
if ((initialLocale = (storage.get(storageKey) || defaultLocale))) {
|
||||||
|
loadLocaleFn(initialLocale);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return {
|
||||||
|
/**
|
||||||
|
* @ngdoc method
|
||||||
|
* @description
|
||||||
|
* @param {string} value Sets the locale to the new locale. Changing the locale will trigger
|
||||||
|
* a background task that will retrieve the new locale and configure the current $locale
|
||||||
|
* instance with the information from the new locale
|
||||||
|
*/
|
||||||
|
set: loadLocaleFn,
|
||||||
|
/**
|
||||||
|
* @ngdoc method
|
||||||
|
* @description Returns the configured locale
|
||||||
|
*/
|
||||||
|
get: function() {
|
||||||
|
return activeLocale;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
function loadLocaleFn(localeId) {
|
||||||
|
var baseProperties = {locale: localeId, angularVersion: angular.version.full};
|
||||||
|
return loadLocale(localeLocation(angular.extend({}, extraProperties, baseProperties)), locale, localeId, $rootScope, $q, tmhDynamicLocaleCache, $timeout);
|
||||||
|
}
|
||||||
|
}];
|
||||||
|
}]).provider('tmhDynamicLocaleCache', function() {
|
||||||
|
this.$get = ['$cacheFactory', function($cacheFactory) {
|
||||||
|
return $cacheFactory('tmh.dynamicLocales');
|
||||||
|
}];
|
||||||
|
}).provider('tmhDynamicLocaleStorageCache', function() {
|
||||||
|
this.$get = ['$cacheFactory', function($cacheFactory) {
|
||||||
|
return $cacheFactory('tmh.dynamicLocales.store');
|
||||||
|
}];
|
||||||
|
}).run(['tmhDynamicLocale', angular.noop]);
|
||||||
|
|
||||||
|
return 'tmh.dynamicLocale';
|
||||||
|
|
||||||
|
}));
|
143
docs-web/src/main/webapp/src/locale/angular-locale_en.js
vendored
Normal file
143
docs-web/src/main/webapp/src/locale/angular-locale_en.js
vendored
Normal file
@ -0,0 +1,143 @@
|
|||||||
|
'use strict';
|
||||||
|
angular.module("ngLocale", [], ["$provide", function($provide) {
|
||||||
|
var PLURAL_CATEGORY = {ZERO: "zero", ONE: "one", TWO: "two", FEW: "few", MANY: "many", OTHER: "other"};
|
||||||
|
function getDecimals(n) {
|
||||||
|
n = n + '';
|
||||||
|
var i = n.indexOf('.');
|
||||||
|
return (i == -1) ? 0 : n.length - i - 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getVF(n, opt_precision) {
|
||||||
|
var v = opt_precision;
|
||||||
|
|
||||||
|
if (undefined === v) {
|
||||||
|
v = Math.min(getDecimals(n), 3);
|
||||||
|
}
|
||||||
|
|
||||||
|
var base = Math.pow(10, v);
|
||||||
|
var f = ((n * base) | 0) % base;
|
||||||
|
return {v: v, f: f};
|
||||||
|
}
|
||||||
|
|
||||||
|
$provide.value("$locale", {
|
||||||
|
"DATETIME_FORMATS": {
|
||||||
|
"AMPMS": [
|
||||||
|
"AM",
|
||||||
|
"PM"
|
||||||
|
],
|
||||||
|
"DAY": [
|
||||||
|
"Sunday",
|
||||||
|
"Monday",
|
||||||
|
"Tuesday",
|
||||||
|
"Wednesday",
|
||||||
|
"Thursday",
|
||||||
|
"Friday",
|
||||||
|
"Saturday"
|
||||||
|
],
|
||||||
|
"ERANAMES": [
|
||||||
|
"Before Christ",
|
||||||
|
"Anno Domini"
|
||||||
|
],
|
||||||
|
"ERAS": [
|
||||||
|
"BC",
|
||||||
|
"AD"
|
||||||
|
],
|
||||||
|
"FIRSTDAYOFWEEK": 6,
|
||||||
|
"MONTH": [
|
||||||
|
"January",
|
||||||
|
"February",
|
||||||
|
"March",
|
||||||
|
"April",
|
||||||
|
"May",
|
||||||
|
"June",
|
||||||
|
"July",
|
||||||
|
"August",
|
||||||
|
"September",
|
||||||
|
"October",
|
||||||
|
"November",
|
||||||
|
"December"
|
||||||
|
],
|
||||||
|
"SHORTDAY": [
|
||||||
|
"Sun",
|
||||||
|
"Mon",
|
||||||
|
"Tue",
|
||||||
|
"Wed",
|
||||||
|
"Thu",
|
||||||
|
"Fri",
|
||||||
|
"Sat"
|
||||||
|
],
|
||||||
|
"SHORTMONTH": [
|
||||||
|
"Jan",
|
||||||
|
"Feb",
|
||||||
|
"Mar",
|
||||||
|
"Apr",
|
||||||
|
"May",
|
||||||
|
"Jun",
|
||||||
|
"Jul",
|
||||||
|
"Aug",
|
||||||
|
"Sep",
|
||||||
|
"Oct",
|
||||||
|
"Nov",
|
||||||
|
"Dec"
|
||||||
|
],
|
||||||
|
"STANDALONEMONTH": [
|
||||||
|
"January",
|
||||||
|
"February",
|
||||||
|
"March",
|
||||||
|
"April",
|
||||||
|
"May",
|
||||||
|
"June",
|
||||||
|
"July",
|
||||||
|
"August",
|
||||||
|
"September",
|
||||||
|
"October",
|
||||||
|
"November",
|
||||||
|
"December"
|
||||||
|
],
|
||||||
|
"WEEKENDRANGE": [
|
||||||
|
5,
|
||||||
|
6
|
||||||
|
],
|
||||||
|
"fullDate": "EEEE, MMMM d, y",
|
||||||
|
"longDate": "MMMM d, y",
|
||||||
|
"medium": "MMM d, y h:mm:ss a",
|
||||||
|
"mediumDate": "MMM d, y",
|
||||||
|
"mediumTime": "h:mm:ss a",
|
||||||
|
"short": "M/d/yy h:mm a",
|
||||||
|
"shortDate": "M/d/yy",
|
||||||
|
"shortTime": "h:mm a"
|
||||||
|
},
|
||||||
|
"NUMBER_FORMATS": {
|
||||||
|
"CURRENCY_SYM": "$",
|
||||||
|
"DECIMAL_SEP": ".",
|
||||||
|
"GROUP_SEP": ",",
|
||||||
|
"PATTERNS": [
|
||||||
|
{
|
||||||
|
"gSize": 3,
|
||||||
|
"lgSize": 3,
|
||||||
|
"maxFrac": 3,
|
||||||
|
"minFrac": 0,
|
||||||
|
"minInt": 1,
|
||||||
|
"negPre": "-",
|
||||||
|
"negSuf": "",
|
||||||
|
"posPre": "",
|
||||||
|
"posSuf": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"gSize": 3,
|
||||||
|
"lgSize": 3,
|
||||||
|
"maxFrac": 2,
|
||||||
|
"minFrac": 2,
|
||||||
|
"minInt": 1,
|
||||||
|
"negPre": "-\u00a4",
|
||||||
|
"negSuf": "",
|
||||||
|
"posPre": "\u00a4",
|
||||||
|
"posSuf": ""
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"id": "en",
|
||||||
|
"localeID": "en",
|
||||||
|
"pluralCat": function(n, opt_precision) { var i = n | 0; var vf = getVF(n, opt_precision); if (i == 1 && vf.v == 0) { return PLURAL_CATEGORY.ONE; } return PLURAL_CATEGORY.OTHER;}
|
||||||
|
});
|
||||||
|
}]);
|
125
docs-web/src/main/webapp/src/locale/angular-locale_fr.js
vendored
Normal file
125
docs-web/src/main/webapp/src/locale/angular-locale_fr.js
vendored
Normal file
@ -0,0 +1,125 @@
|
|||||||
|
'use strict';
|
||||||
|
angular.module("ngLocale", [], ["$provide", function($provide) {
|
||||||
|
var PLURAL_CATEGORY = {ZERO: "zero", ONE: "one", TWO: "two", FEW: "few", MANY: "many", OTHER: "other"};
|
||||||
|
$provide.value("$locale", {
|
||||||
|
"DATETIME_FORMATS": {
|
||||||
|
"AMPMS": [
|
||||||
|
"AM",
|
||||||
|
"PM"
|
||||||
|
],
|
||||||
|
"DAY": [
|
||||||
|
"dimanche",
|
||||||
|
"lundi",
|
||||||
|
"mardi",
|
||||||
|
"mercredi",
|
||||||
|
"jeudi",
|
||||||
|
"vendredi",
|
||||||
|
"samedi"
|
||||||
|
],
|
||||||
|
"ERANAMES": [
|
||||||
|
"avant J\u00e9sus-Christ",
|
||||||
|
"apr\u00e8s J\u00e9sus-Christ"
|
||||||
|
],
|
||||||
|
"ERAS": [
|
||||||
|
"av. J.-C.",
|
||||||
|
"ap. J.-C."
|
||||||
|
],
|
||||||
|
"FIRSTDAYOFWEEK": 0,
|
||||||
|
"MONTH": [
|
||||||
|
"janvier",
|
||||||
|
"f\u00e9vrier",
|
||||||
|
"mars",
|
||||||
|
"avril",
|
||||||
|
"mai",
|
||||||
|
"juin",
|
||||||
|
"juillet",
|
||||||
|
"ao\u00fbt",
|
||||||
|
"septembre",
|
||||||
|
"octobre",
|
||||||
|
"novembre",
|
||||||
|
"d\u00e9cembre"
|
||||||
|
],
|
||||||
|
"SHORTDAY": [
|
||||||
|
"dim.",
|
||||||
|
"lun.",
|
||||||
|
"mar.",
|
||||||
|
"mer.",
|
||||||
|
"jeu.",
|
||||||
|
"ven.",
|
||||||
|
"sam."
|
||||||
|
],
|
||||||
|
"SHORTMONTH": [
|
||||||
|
"janv.",
|
||||||
|
"f\u00e9vr.",
|
||||||
|
"mars",
|
||||||
|
"avr.",
|
||||||
|
"mai",
|
||||||
|
"juin",
|
||||||
|
"juil.",
|
||||||
|
"ao\u00fbt",
|
||||||
|
"sept.",
|
||||||
|
"oct.",
|
||||||
|
"nov.",
|
||||||
|
"d\u00e9c."
|
||||||
|
],
|
||||||
|
"STANDALONEMONTH": [
|
||||||
|
"janvier",
|
||||||
|
"f\u00e9vrier",
|
||||||
|
"mars",
|
||||||
|
"avril",
|
||||||
|
"mai",
|
||||||
|
"juin",
|
||||||
|
"juillet",
|
||||||
|
"ao\u00fbt",
|
||||||
|
"septembre",
|
||||||
|
"octobre",
|
||||||
|
"novembre",
|
||||||
|
"d\u00e9cembre"
|
||||||
|
],
|
||||||
|
"WEEKENDRANGE": [
|
||||||
|
5,
|
||||||
|
6
|
||||||
|
],
|
||||||
|
"fullDate": "EEEE d MMMM y",
|
||||||
|
"longDate": "d MMMM y",
|
||||||
|
"medium": "d MMM y HH:mm:ss",
|
||||||
|
"mediumDate": "d MMM y",
|
||||||
|
"mediumTime": "HH:mm:ss",
|
||||||
|
"short": "dd/MM/y HH:mm",
|
||||||
|
"shortDate": "dd/MM/y",
|
||||||
|
"shortTime": "HH:mm"
|
||||||
|
},
|
||||||
|
"NUMBER_FORMATS": {
|
||||||
|
"CURRENCY_SYM": "\u20ac",
|
||||||
|
"DECIMAL_SEP": ",",
|
||||||
|
"GROUP_SEP": "\u00a0",
|
||||||
|
"PATTERNS": [
|
||||||
|
{
|
||||||
|
"gSize": 3,
|
||||||
|
"lgSize": 3,
|
||||||
|
"maxFrac": 3,
|
||||||
|
"minFrac": 0,
|
||||||
|
"minInt": 1,
|
||||||
|
"negPre": "-",
|
||||||
|
"negSuf": "",
|
||||||
|
"posPre": "",
|
||||||
|
"posSuf": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"gSize": 3,
|
||||||
|
"lgSize": 3,
|
||||||
|
"maxFrac": 2,
|
||||||
|
"minFrac": 2,
|
||||||
|
"minInt": 1,
|
||||||
|
"negPre": "-",
|
||||||
|
"negSuf": "\u00a0\u00a4",
|
||||||
|
"posPre": "",
|
||||||
|
"posSuf": "\u00a0\u00a4"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"id": "fr",
|
||||||
|
"localeID": "fr",
|
||||||
|
"pluralCat": function(n, opt_precision) { var i = n | 0; if (i == 0 || i == 1) { return PLURAL_CATEGORY.ONE; } return PLURAL_CATEGORY.OTHER;}
|
||||||
|
});
|
||||||
|
}]);
|
125
docs-web/src/main/webapp/src/locale/angular-locale_zh_CN.js
vendored
Normal file
125
docs-web/src/main/webapp/src/locale/angular-locale_zh_CN.js
vendored
Normal file
@ -0,0 +1,125 @@
|
|||||||
|
'use strict';
|
||||||
|
angular.module("ngLocale", [], ["$provide", function($provide) {
|
||||||
|
var PLURAL_CATEGORY = {ZERO: "zero", ONE: "one", TWO: "two", FEW: "few", MANY: "many", OTHER: "other"};
|
||||||
|
$provide.value("$locale", {
|
||||||
|
"DATETIME_FORMATS": {
|
||||||
|
"AMPMS": [
|
||||||
|
"\u4e0a\u5348",
|
||||||
|
"\u4e0b\u5348"
|
||||||
|
],
|
||||||
|
"DAY": [
|
||||||
|
"\u661f\u671f\u65e5",
|
||||||
|
"\u661f\u671f\u4e00",
|
||||||
|
"\u661f\u671f\u4e8c",
|
||||||
|
"\u661f\u671f\u4e09",
|
||||||
|
"\u661f\u671f\u56db",
|
||||||
|
"\u661f\u671f\u4e94",
|
||||||
|
"\u661f\u671f\u516d"
|
||||||
|
],
|
||||||
|
"ERANAMES": [
|
||||||
|
"\u516c\u5143\u524d",
|
||||||
|
"\u516c\u5143"
|
||||||
|
],
|
||||||
|
"ERAS": [
|
||||||
|
"\u516c\u5143\u524d",
|
||||||
|
"\u516c\u5143"
|
||||||
|
],
|
||||||
|
"FIRSTDAYOFWEEK": 6,
|
||||||
|
"MONTH": [
|
||||||
|
"\u4e00\u6708",
|
||||||
|
"\u4e8c\u6708",
|
||||||
|
"\u4e09\u6708",
|
||||||
|
"\u56db\u6708",
|
||||||
|
"\u4e94\u6708",
|
||||||
|
"\u516d\u6708",
|
||||||
|
"\u4e03\u6708",
|
||||||
|
"\u516b\u6708",
|
||||||
|
"\u4e5d\u6708",
|
||||||
|
"\u5341\u6708",
|
||||||
|
"\u5341\u4e00\u6708",
|
||||||
|
"\u5341\u4e8c\u6708"
|
||||||
|
],
|
||||||
|
"SHORTDAY": [
|
||||||
|
"\u5468\u65e5",
|
||||||
|
"\u5468\u4e00",
|
||||||
|
"\u5468\u4e8c",
|
||||||
|
"\u5468\u4e09",
|
||||||
|
"\u5468\u56db",
|
||||||
|
"\u5468\u4e94",
|
||||||
|
"\u5468\u516d"
|
||||||
|
],
|
||||||
|
"SHORTMONTH": [
|
||||||
|
"1\u6708",
|
||||||
|
"2\u6708",
|
||||||
|
"3\u6708",
|
||||||
|
"4\u6708",
|
||||||
|
"5\u6708",
|
||||||
|
"6\u6708",
|
||||||
|
"7\u6708",
|
||||||
|
"8\u6708",
|
||||||
|
"9\u6708",
|
||||||
|
"10\u6708",
|
||||||
|
"11\u6708",
|
||||||
|
"12\u6708"
|
||||||
|
],
|
||||||
|
"STANDALONEMONTH": [
|
||||||
|
"\u4e00\u6708",
|
||||||
|
"\u4e8c\u6708",
|
||||||
|
"\u4e09\u6708",
|
||||||
|
"\u56db\u6708",
|
||||||
|
"\u4e94\u6708",
|
||||||
|
"\u516d\u6708",
|
||||||
|
"\u4e03\u6708",
|
||||||
|
"\u516b\u6708",
|
||||||
|
"\u4e5d\u6708",
|
||||||
|
"\u5341\u6708",
|
||||||
|
"\u5341\u4e00\u6708",
|
||||||
|
"\u5341\u4e8c\u6708"
|
||||||
|
],
|
||||||
|
"WEEKENDRANGE": [
|
||||||
|
5,
|
||||||
|
6
|
||||||
|
],
|
||||||
|
"fullDate": "y\u5e74M\u6708d\u65e5EEEE",
|
||||||
|
"longDate": "y\u5e74M\u6708d\u65e5",
|
||||||
|
"medium": "y\u5e74M\u6708d\u65e5 ah:mm:ss",
|
||||||
|
"mediumDate": "y\u5e74M\u6708d\u65e5",
|
||||||
|
"mediumTime": "ah:mm:ss",
|
||||||
|
"short": "y/M/d ah:mm",
|
||||||
|
"shortDate": "y/M/d",
|
||||||
|
"shortTime": "ah:mm"
|
||||||
|
},
|
||||||
|
"NUMBER_FORMATS": {
|
||||||
|
"CURRENCY_SYM": "\u00a5",
|
||||||
|
"DECIMAL_SEP": ".",
|
||||||
|
"GROUP_SEP": ",",
|
||||||
|
"PATTERNS": [
|
||||||
|
{
|
||||||
|
"gSize": 3,
|
||||||
|
"lgSize": 3,
|
||||||
|
"maxFrac": 3,
|
||||||
|
"minFrac": 0,
|
||||||
|
"minInt": 1,
|
||||||
|
"negPre": "-",
|
||||||
|
"negSuf": "",
|
||||||
|
"posPre": "",
|
||||||
|
"posSuf": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"gSize": 3,
|
||||||
|
"lgSize": 3,
|
||||||
|
"maxFrac": 2,
|
||||||
|
"minFrac": 2,
|
||||||
|
"minInt": 1,
|
||||||
|
"negPre": "-\u00a4",
|
||||||
|
"negSuf": "",
|
||||||
|
"posPre": "\u00a4",
|
||||||
|
"posSuf": ""
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"id": "zh-cn",
|
||||||
|
"localeID": "zh_CN",
|
||||||
|
"pluralCat": function(n, opt_precision) { return PLURAL_CATEGORY.OTHER;}
|
||||||
|
});
|
||||||
|
}]);
|
@ -328,6 +328,11 @@
|
|||||||
},
|
},
|
||||||
"selecttag": {
|
"selecttag": {
|
||||||
"typeahead": "Type a tag"
|
"typeahead": "Type a tag"
|
||||||
|
},
|
||||||
|
"datepicker": {
|
||||||
|
"current": "Today",
|
||||||
|
"clear": "Clear",
|
||||||
|
"close": "Done"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"filter": {
|
"filter": {
|
||||||
|
@ -328,6 +328,11 @@
|
|||||||
},
|
},
|
||||||
"selecttag": {
|
"selecttag": {
|
||||||
"typeahead": "Entrez un tag"
|
"typeahead": "Entrez un tag"
|
||||||
|
},
|
||||||
|
"datepicker": {
|
||||||
|
"current": "Aujourd'hui",
|
||||||
|
"clear": "Vider",
|
||||||
|
"close": "Fermer"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"filter": {
|
"filter": {
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<table class="table">
|
<table class="table">
|
||||||
<tr ng-repeat="log in logs">
|
<tr ng-repeat="log in logs">
|
||||||
<td width="20%">{{ log.create_date | date: 'yyyy-MM-dd HH:mm' }}</td>
|
<td width="20%">{{ log.create_date | date: $root.dateTimeFormat }}</td>
|
||||||
<td width="20%">
|
<td width="20%">
|
||||||
<a ng-href="#/user/{{ log.username }}">
|
<a ng-href="#/user/{{ log.username }}">
|
||||||
<span class="glyphicon glyphicon-user"></span>
|
<span class="glyphicon glyphicon-user"></span>
|
||||||
|
@ -40,8 +40,13 @@
|
|||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="col-sm-2 control-label" for="inputCreateDate">{{ 'document.creation_date' | translate }}</label>
|
<label class="col-sm-2 control-label" for="inputCreateDate">{{ 'document.creation_date' | translate }}</label>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
<input type="text" id="inputCreateDate" ng-readonly="true" uib-datepicker-popup="yyyy-MM-dd" class="form-control"
|
<input type="text" id="inputCreateDate"
|
||||||
ng-model="document.create_date" datepicker-options="{ startingDay:1, showWeeks: false }" ng-click="datepickerOpened = true" is-open="datepickerOpened" ng-disabled="fileIsUploading" />
|
current-text="{{ 'directive.datepicker.current' | translate }}"
|
||||||
|
clear-text="{{ 'directive.datepicker.clear' | translate }}"
|
||||||
|
close-text="{{ 'directive.datepicker.close' | translate }}"
|
||||||
|
ng-readonly="true" uib-datepicker-popup="{{ dateFormat }}" class="form-control"
|
||||||
|
ng-model="document.create_date" datepicker-options="{ startingDay:1, showWeeks: false }"
|
||||||
|
ng-click="datepickerOpened = true" is-open="datepickerOpened" ng-disabled="fileIsUploading" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
|
@ -64,7 +64,7 @@
|
|||||||
<span class="glyphicon glyphicon-share" ng-if="document.shared" tooltip="{{ 'document.shared' | translate }}"></span>
|
<span class="glyphicon glyphicon-share" ng-if="document.shared" tooltip="{{ 'document.shared' | translate }}"></span>
|
||||||
<a href="#/document/view/{{ document.id }}" target="_blank" ng-click="$event.stopPropagation()"><span class="glyphicon glyphicon-link"></span></a>
|
<a href="#/document/view/{{ document.id }}" target="_blank" ng-click="$event.stopPropagation()"><span class="glyphicon glyphicon-link"></span></a>
|
||||||
|
|
||||||
<div class="pull-right text-muted small">{{ document.create_date | timeAgo: 'yyyy-MM-dd' }}</div>
|
<div class="pull-right text-muted small">{{ document.create_date | timeAgo: dateFormat }}</div>
|
||||||
|
|
||||||
<div class="tags small">
|
<div class="tags small">
|
||||||
<span class="label label-info" ng-repeat="tag in document.tags" ng-style="{ 'background': tag.color }">
|
<span class="label label-info" ng-repeat="tag in document.tags" ng-style="{ 'background': tag.color }">
|
||||||
|
@ -41,7 +41,7 @@
|
|||||||
<div class="page-header">
|
<div class="page-header">
|
||||||
<h1>
|
<h1>
|
||||||
{{ document.title }}
|
{{ document.title }}
|
||||||
<small>{{ document.create_date | date: 'yyyy-MM-dd' }}
|
<small>{{ document.create_date | date: dateFormat }}
|
||||||
{{ 'document.view.by_creator' | translate }} <a href="#/user/{{ document.creator }}">{{ document.creator }}</a></small>
|
{{ 'document.view.by_creator' | translate }} <a href="#/user/{{ document.creator }}">{{ document.creator }}</a></small>
|
||||||
</h1>
|
</h1>
|
||||||
|
|
||||||
@ -106,10 +106,12 @@
|
|||||||
<strong>{{ comment.creator }}</strong>
|
<strong>{{ comment.creator }}</strong>
|
||||||
<p>
|
<p>
|
||||||
{{ comment.content }}<br />
|
{{ comment.content }}<br />
|
||||||
<span class="text-muted">{{ comment.create_date | date: 'yyyy-MM-dd' }}</span>
|
<span class="text-muted">{{ comment.create_date | timeAgo: dateTimeFormat }}</span>
|
||||||
<span class="text-muted pull-right btn-link pointer"
|
<span class="text-muted pull-right btn-link pointer"
|
||||||
ng-show="document.writable || userInfo.username == comment.creator"
|
ng-show="document.writable || userInfo.username == comment.creator"
|
||||||
ng-click="deleteComment(comment)">{{ 'delete' | translate }}</span>
|
ng-click="deleteComment(comment)">
|
||||||
|
<span class="glyphicon glyphicon-remove"></span>
|
||||||
|
</span>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
<tbody>
|
<tbody>
|
||||||
<tr ng-repeat="log in logs"
|
<tr ng-repeat="log in logs"
|
||||||
ng-class="{ info: log.level == 'INFO' || log.level == 'DEBUG', warning: log.level == 'WARN', danger: log.level == 'ERROR' || log.level == 'FATAL' }">
|
ng-class="{ info: log.level == 'INFO' || log.level == 'DEBUG', warning: log.level == 'WARN', danger: log.level == 'ERROR' || log.level == 'FATAL' }">
|
||||||
<td>{{ log.date | date: 'yyyy-MM-dd HH:mm' }}</td>
|
<td>{{ log.date | date: dateTimeFormat }}</td>
|
||||||
<td>{{ log.tag }}</td>
|
<td>{{ log.tag }}</td>
|
||||||
<td class="cell-message">{{ log.message }}</td>
|
<td class="cell-message">{{ log.message }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@ -10,8 +10,8 @@
|
|||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr ng-repeat="session in sessions | orderBy: '-current'" ng-class="{ 'info': session.current, 'warning': !session.current }">
|
<tr ng-repeat="session in sessions | orderBy: '-current'" ng-class="{ 'info': session.current, 'warning': !session.current }">
|
||||||
<td>{{ session.create_date | date: 'yyyy-MM-dd HH:mm' }}</td>
|
<td>{{ session.create_date | date: dateTimeFormat }}</td>
|
||||||
<td>{{ session.last_connection_date | date: 'yyyy-MM-dd HH:mm' }}</td>
|
<td>{{ session.last_connection_date | date: dateTimeFormat }}</td>
|
||||||
<td title="{{ session.user_agent }}">{{ session.ip }}</td>
|
<td title="{{ session.user_agent }}">{{ session.ip }}</td>
|
||||||
<td>
|
<td>
|
||||||
<span ng-show="session.current" class="glyphicon glyphicon-ok"
|
<span ng-show="session.current" class="glyphicon glyphicon-ok"
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
<tr ng-repeat="user in users | orderBy: 'username'" ng-click="editUser(user)"
|
<tr ng-repeat="user in users | orderBy: 'username'" ng-click="editUser(user)"
|
||||||
ng-class="{ active: $stateParams.username == user.username }">
|
ng-class="{ active: $stateParams.username == user.username }">
|
||||||
<td>{{ user.username }}</td>
|
<td>{{ user.username }}</td>
|
||||||
<td>{{ user.create_date | date: 'yyyy-MM-dd' }}</td>
|
<td>{{ user.create_date | date: dateFormat }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
Loading…
Reference in New Issue
Block a user