Merge pull request #172 from alberanid/master
update libraries and i18n
This commit is contained in:
commit
4f7d8fcacf
9 changed files with 2218 additions and 1216 deletions
|
@ -222,6 +222,11 @@ Yes, exactly. I'm too old for that stuff: I just downloaded the third-party libr
|
|||
|
||||
I you're a big fan of those tools, please go ahead and send me a pull request.
|
||||
|
||||
i18n
|
||||
----
|
||||
|
||||
In the angular\_app/ directory there is a Gruntfile.js; run grunt here to update the files in static/i18n/; right now to set a language you have to edit angular\_app/js/i18n.js
|
||||
|
||||
Coding style and conventions
|
||||
----------------------------
|
||||
|
||||
|
|
2
static/css/toaster.min.css
vendored
2
static/css/toaster.min.css
vendored
File diff suppressed because one or more lines are too long
|
@ -1,39 +1,39 @@
|
|||
{
|
||||
"New event": "Nuovo evento",
|
||||
"Tickets": "",
|
||||
"Join this event": "",
|
||||
"Tickets": "Biglietti",
|
||||
"Join this event": "Partecipa",
|
||||
"save": "salva",
|
||||
"Title": "Titolo",
|
||||
"Tagline": "",
|
||||
"Short summary": "",
|
||||
"Long description": "",
|
||||
"begin date:": "Data inizio:",
|
||||
"begin time:": "Ora inizio:",
|
||||
"end date:": "",
|
||||
"end time:": "",
|
||||
"Where": "",
|
||||
"Group ID": "",
|
||||
"Used to share persons amongst multiple events. Must be hard to guess (if empty, will be autogenerated)": "",
|
||||
"Number of tickets": "",
|
||||
"Number of tickets (0 or empty means unlimited)": "",
|
||||
"ticket sales begin date:": "",
|
||||
"ticket sales begin time:": "",
|
||||
"ticket sales end date:": "",
|
||||
"ticket sales end time:": "",
|
||||
"Registration form": "",
|
||||
"tickets": "",
|
||||
"Edit event": "",
|
||||
"Quick add ticket": "",
|
||||
"Tagline": "Slogan",
|
||||
"Short summary": "Descrizione breve",
|
||||
"Long description": "Descrizione lunga",
|
||||
"begin date:": "data di inizio:",
|
||||
"begin time:": "orario di inizio:",
|
||||
"end date:": "data di chiusura",
|
||||
"end time:": "orario di chiusura",
|
||||
"Where": "Dove",
|
||||
"Group ID": "Group ID",
|
||||
"Used to share persons amongst multiple events. Must be hard to guess (if empty, will be autogenerated)": "Usato per condividere le persone tra più eventi. Deve essere difficile da indovinare (se vuoto, verrà autogenerato)",
|
||||
"Number of tickets": "Numero di biglietti",
|
||||
"Number of tickets (0 or empty means unlimited)": "Numero di biglietti (0 o vuoto significa illimitati)",
|
||||
"ticket sales begin date:": "data di inizio vendita dei biglietti",
|
||||
"ticket sales begin time:": "orario di inizio vendita dei biglietti",
|
||||
"ticket sales end date:": "data di fine vendita dei biglietti",
|
||||
"ticket sales end time:": "orario di fine vendita dei biglietti",
|
||||
"Registration form": "Form di registrazione",
|
||||
"tickets": "biglietti",
|
||||
"Edit event": "Edita l'evento",
|
||||
"Quick add ticket": "Ticket rapido",
|
||||
"Attendees:": "Partecipanti:",
|
||||
"Registered:": "Registrato:",
|
||||
"Search:": "Cerca:",
|
||||
"Name or email": "Nome o email",
|
||||
"Show cancelled tickets": "",
|
||||
"Show cancelled tickets": "Mostra i biglietti cancellati",
|
||||
"Name": "Nome",
|
||||
"Surname": "Cognome",
|
||||
"Attended": "Partecipato",
|
||||
"Attended": "Presente",
|
||||
"Delete": "Cancella",
|
||||
"cancelled": "",
|
||||
"cancelled": "cancellato",
|
||||
"Unregistered persons": "Persone non registrate",
|
||||
"Person": "Persona",
|
||||
"Add": "Aggiungi",
|
||||
|
@ -44,57 +44,57 @@
|
|||
"Date": "Data",
|
||||
"Date (descending)": "Data (ordine inverso)",
|
||||
"Event": "Evento",
|
||||
"Attendees / Registered": "",
|
||||
"Actions": "",
|
||||
"Attendees / Registered": "Presenti / Registrati",
|
||||
"Actions": "Azioni",
|
||||
"Begins:": "Inizio:",
|
||||
"Ends:": "Fine:",
|
||||
"Manage tickets": "",
|
||||
"still available": "",
|
||||
"Tickets for sale:": "",
|
||||
"from": "",
|
||||
"until": "",
|
||||
"Delete event": "",
|
||||
"Import tickets from Eventbrite CSV": "",
|
||||
"Manage tickets": "Gestione biglietti",
|
||||
"still available": "ancora disponibili",
|
||||
"Tickets for sale:": "Biglietti in vendita",
|
||||
"from": "da",
|
||||
"until": "fino a",
|
||||
"Delete event": "Cancella l'evento",
|
||||
"Import tickets from Eventbrite CSV": "Importa i biglietti da un CSV Eventbrite",
|
||||
"CSV file": "File CSV",
|
||||
"CSV exported from Eventbrite": "",
|
||||
"Associate tickets to this event": "",
|
||||
"CSV exported from Eventbrite": "CSV esportato da Eventbrite",
|
||||
"Associate tickets to this event": "Associa i biglietti a questo evento",
|
||||
"Import": "Importa",
|
||||
"Users": "",
|
||||
"All tickets": "",
|
||||
"Import tickets": "",
|
||||
"Users": "Utenti",
|
||||
"All tickets": "Tutti i biglietti",
|
||||
"Import tickets": "Importa biglietti",
|
||||
"logout": "logout",
|
||||
"login": "",
|
||||
"Login": "",
|
||||
"Username or email": "",
|
||||
"Password": "",
|
||||
"Register a new user": "",
|
||||
"Username": "",
|
||||
"login": "login",
|
||||
"Login": "Login",
|
||||
"Username or email": "Username o email",
|
||||
"Password": "Password",
|
||||
"Register a new user": "Registra un nuovo utente",
|
||||
"Username": "Username",
|
||||
"Email": "Email",
|
||||
"register": "",
|
||||
"register": "registra",
|
||||
"Confirm": "Conferma",
|
||||
"Ok": "Ok",
|
||||
"Cancel": "Annulla",
|
||||
"Quick add a ticket": "",
|
||||
"join this event": "",
|
||||
"your ticket": "",
|
||||
"Event details": "",
|
||||
"Your ticket has been cancelled; you can join again this event using the commands below": "",
|
||||
"Dangerous stuff": "",
|
||||
"Toggle dangerous actions": "",
|
||||
"Leave this event": "",
|
||||
"Join again this event": "",
|
||||
"All Tickets": "",
|
||||
"Tickets:": "",
|
||||
"update user information": "",
|
||||
"Old password": "",
|
||||
"New password": "",
|
||||
"update": "",
|
||||
"Quick add a ticket": "Ticket rapido",
|
||||
"join this event": "partecipa all'evento",
|
||||
"your ticket": "il tuo biglietto",
|
||||
"Event details": "Dettagli dell'evento",
|
||||
"Your ticket has been cancelled; you can join again this event using the commands below": "Il tuo biglietto è stato cancellato; puoi tornare a partecipare usando il comando qui sotto",
|
||||
"Dangerous stuff": "Cose pericolose",
|
||||
"Toggle dangerous actions": "Abilita/disabilita le azioni pericolose",
|
||||
"Leave this event": "Abbandona questo evento",
|
||||
"Join again this event": "Partecipa di nuovo a questo evento",
|
||||
"All Tickets": "Tutti i biglietti",
|
||||
"Tickets:": "Biglietti",
|
||||
"update user information": "aggiorna le informazioni dell'utente",
|
||||
"Old password": "Vecchia password",
|
||||
"New password": "Nuova password",
|
||||
"update": "aggiorna",
|
||||
"Sort by:": "Ordina per:",
|
||||
"Ticket": "",
|
||||
"Add user": "",
|
||||
"Username (descending)": "",
|
||||
"Email (descending)": "",
|
||||
"User": "",
|
||||
"Ticket": "Biglietto",
|
||||
"Add user": "Aggiungi utente",
|
||||
"Username (descending)": "Username (ordine inverso)",
|
||||
"Email (descending)": "Email (ordine inverso)",
|
||||
"User": "Utente",
|
||||
"Do you really want to delete this event?": "Vuoi veramente cancellare questo evento?",
|
||||
"Do you really want to delete this user?": ""
|
||||
}
|
||||
"Do you really want to delete this user?": "Vuoi veramente cancellare questo utente?"
|
||||
}
|
||||
|
|
112
static/js/angular-translate-loader-static-files.js
vendored
Normal file
112
static/js/angular-translate-loader-static-files.js
vendored
Normal file
|
@ -0,0 +1,112 @@
|
|||
/*!
|
||||
* angular-translate - v2.15.1 - 2017-04-03
|
||||
*
|
||||
* Copyright (c) 2017 The angular-translate team, Pascal Precht; Licensed 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 module === 'object' && module.exports) {
|
||||
// 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, key, and fileMap
|
||||
*/
|
||||
.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!');
|
||||
}
|
||||
|
||||
var fileUrl = [
|
||||
file.prefix,
|
||||
options.key,
|
||||
file.suffix
|
||||
].join('');
|
||||
|
||||
if (angular.isObject(options.fileMap) && options.fileMap[fileUrl]) {
|
||||
fileUrl = options.fileMap[fileUrl];
|
||||
}
|
||||
|
||||
return $http(angular.extend({
|
||||
url: fileUrl,
|
||||
method: 'GET'
|
||||
}, 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';
|
||||
|
||||
}));
|
|
@ -1,6 +1,6 @@
|
|||
/*!
|
||||
* angular-translate - v2.7.0 - 2015-05-02
|
||||
* http://github.com/angular-translate/angular-translate
|
||||
* Copyright (c) 2015 ; Licensed MIT
|
||||
* angular-translate - v2.15.1 - 2017-04-03
|
||||
*
|
||||
* Copyright (c) 2017 The angular-translate team, Pascal Precht; Licensed MIT
|
||||
*/
|
||||
!function(a,b){"function"==typeof define&&define.amd?define([],function(){return b()}):"object"==typeof exports?module.exports=b():b()}(this,function(){function a(a,b){"use strict";return function(c){if(!(c&&(angular.isArray(c.files)||angular.isString(c.prefix)&&angular.isString(c.suffix))))throw new Error("Couldn't load static files, no files and prefix or suffix specified!");c.files||(c.files=[{prefix:c.prefix,suffix:c.suffix}]);for(var d=function(d){if(!d||!angular.isString(d.prefix)||!angular.isString(d.suffix))throw new Error("Couldn't load static file, no prefix or suffix specified!");var e=a.defer();return b(angular.extend({url:[d.prefix,c.key,d.suffix].join(""),method:"GET",params:""},c.$http)).success(function(a){e.resolve(a)}).error(function(){e.reject(c.key)}),e.promise},e=a.defer(),f=[],g=c.files.length,h=0;g>h;h++)f.push(d({prefix:c.files[h].prefix,key:c.key,suffix:c.files[h].suffix}));return a.all(f).then(function(a){for(var b=a.length,c={},d=0;b>d;d++)for(var f in a[d])c[f]=a[d][f];e.resolve(c)},function(a){e.reject(a)}),e.promise}}return angular.module("pascalprecht.translate").factory("$translateStaticFilesLoader",a),a.$inject=["$q","$http"],a.displayName="$translateStaticFilesLoader","pascalprecht.translate"});
|
||||
!function(a,b){"function"==typeof define&&define.amd?define([],function(){return b()}):"object"==typeof module&&module.exports?module.exports=b():b()}(0,function(){function a(a,b){"use strict";return function(c){if(!(c&&(angular.isArray(c.files)||angular.isString(c.prefix)&&angular.isString(c.suffix))))throw new Error("Couldn't load static files, no files and prefix or suffix specified!");c.files||(c.files=[{prefix:c.prefix,suffix:c.suffix}]);for(var d=[],e=c.files.length,f=0;f<e;f++)d.push(function(d){if(!d||!angular.isString(d.prefix)||!angular.isString(d.suffix))throw new Error("Couldn't load static file, no prefix or suffix specified!");var e=[d.prefix,c.key,d.suffix].join("");return angular.isObject(c.fileMap)&&c.fileMap[e]&&(e=c.fileMap[e]),b(angular.extend({url:e,method:"GET"},c.$http)).then(function(a){return a.data},function(){return a.reject(c.key)})}({prefix:c.files[f].prefix,key:c.key,suffix:c.files[f].suffix}));return a.all(d).then(function(a){for(var b=a.length,c={},d=0;d<b;d++)for(var e in a[d])c[e]=a[d][e];return c})}}return a.$inject=["$q","$http"],angular.module("pascalprecht.translate").factory("$translateStaticFilesLoader",a),a.displayName="$translateStaticFilesLoader","pascalprecht.translate"});
|
3110
static/js/angular-translate.js
vendored
3110
static/js/angular-translate.js
vendored
File diff suppressed because it is too large
Load diff
8
static/js/angular-translate.min.js
vendored
8
static/js/angular-translate.min.js
vendored
File diff suppressed because one or more lines are too long
|
@ -4,7 +4,7 @@
|
|||
|
||||
/*
|
||||
* AngularJS Toaster
|
||||
* Version: 2.0.0
|
||||
* Version: 2.1.0
|
||||
*
|
||||
* Copyright 2013-2016 Jiri Kavulak.
|
||||
* All Rights Reserved.
|
||||
|
@ -42,7 +42,23 @@
|
|||
'prevent-duplicates': false,
|
||||
'mouseover-timer-stop': true // stop timeout on mouseover and restart timer on mouseout
|
||||
}
|
||||
).service(
|
||||
).run(['$templateCache', function($templateCache) {
|
||||
$templateCache.put('angularjs-toaster/toast.html',
|
||||
'<div id="toast-container" ng-class="[config.position, config.animation]">' +
|
||||
'<div ng-repeat="toaster in toasters" class="toast" ng-class="toaster.type" ng-click="click($event, toaster)" ng-mouseover="stopTimer(toaster)" ng-mouseout="restartTimer(toaster)">' +
|
||||
'<div ng-if="toaster.showCloseButton" ng-click="click($event, toaster, true)" ng-bind-html="toaster.closeHtml"></div>' +
|
||||
'<div ng-class="config.title">{{toaster.title}}</div>' +
|
||||
'<div ng-class="config.message" ng-switch on="toaster.bodyOutputType">' +
|
||||
'<div ng-switch-when="trustedHtml" ng-bind-html="toaster.html"></div>' +
|
||||
'<div ng-switch-when="template"><div ng-include="toaster.bodyTemplate"></div></div>' +
|
||||
'<div ng-switch-when="templateWithData"><div ng-include="toaster.bodyTemplate"></div></div>' +
|
||||
'<div ng-switch-when="directive"><div directive-template directive-name="{{toaster.html}}" directive-data="{{toaster.directiveData}}"></div></div>' +
|
||||
'<div ng-switch-default >{{toaster.body}}</div>' +
|
||||
'</div>' +
|
||||
'</div>' +
|
||||
'</div>');
|
||||
}
|
||||
]).service(
|
||||
'toaster', [
|
||||
'$rootScope', 'toasterConfig', function($rootScope, toasterConfig) {
|
||||
// http://stackoverflow.com/questions/26501688/a-typescript-guid-class
|
||||
|
@ -72,7 +88,8 @@
|
|||
toastId: params.toastId,
|
||||
onShowCallback: params.onShowCallback,
|
||||
onHideCallback: params.onHideCallback,
|
||||
directiveData: params.directiveData
|
||||
directiveData: params.directiveData,
|
||||
tapToDismiss: params.tapToDismiss
|
||||
};
|
||||
toasterId = params.toasterId;
|
||||
} else {
|
||||
|
@ -469,8 +486,13 @@
|
|||
}
|
||||
};
|
||||
|
||||
$scope.click = function(toast, isCloseButton) {
|
||||
if ($scope.config.tap === true || (toast.showCloseButton === true && isCloseButton === true)) {
|
||||
$scope.click = function(event, toast, isCloseButton) {
|
||||
event.stopPropagation();
|
||||
|
||||
var tapToDismiss = typeof toast.tapToDismiss === "boolean"
|
||||
? toast.tapToDismiss
|
||||
: $scope.config.tap;
|
||||
if (tapToDismiss === true || (toast.showCloseButton === true && isCloseButton === true)) {
|
||||
var removeToast = true;
|
||||
if (toast.clickHandler) {
|
||||
if (angular.isFunction(toast.clickHandler)) {
|
||||
|
@ -487,21 +509,8 @@
|
|||
}
|
||||
};
|
||||
}],
|
||||
template:
|
||||
'<div id="toast-container" ng-class="[config.position, config.animation]">' +
|
||||
'<div ng-repeat="toaster in toasters" class="toast" ng-class="toaster.type" ng-click="click(toaster)" ng-mouseover="stopTimer(toaster)" ng-mouseout="restartTimer(toaster)">' +
|
||||
'<div ng-if="toaster.showCloseButton" ng-click="click(toaster, true)" ng-bind-html="toaster.closeHtml"></div>' +
|
||||
'<div ng-class="config.title">{{toaster.title}}</div>' +
|
||||
'<div ng-class="config.message" ng-switch on="toaster.bodyOutputType">' +
|
||||
'<div ng-switch-when="trustedHtml" ng-bind-html="toaster.html"></div>' +
|
||||
'<div ng-switch-when="template"><div ng-include="toaster.bodyTemplate"></div></div>' +
|
||||
'<div ng-switch-when="templateWithData"><div ng-include="toaster.bodyTemplate"></div></div>' +
|
||||
'<div ng-switch-when="directive"><div directive-template directive-name="{{toaster.html}}" directive-data="{{toaster.directiveData}}"></div></div>' +
|
||||
'<div ng-switch-default >{{toaster.body}}</div>' +
|
||||
'</div>' +
|
||||
'</div>' +
|
||||
'</div>'
|
||||
templateUrl: 'angularjs-toaster/toast.html'
|
||||
};
|
||||
}]
|
||||
);
|
||||
})(window, document);
|
||||
})(window, document);
|
||||
|
|
4
static/js/toaster.min.js
vendored
4
static/js/toaster.min.js
vendored
File diff suppressed because one or more lines are too long
Loading…
Reference in a new issue