diff --git a/.editorconfig b/.editorconfig index 0ea0cc46..d1d8a417 100755 --- a/.editorconfig +++ b/.editorconfig @@ -3,7 +3,7 @@ root = true [*] indent_style = space -indent_size = 4 +indent_size = 2 end_of_line = lf charset = utf-8 trim_trailing_whitespace = true diff --git a/Gruntfile.js b/Gruntfile.js index 1cfec549..5b3d5639 100755 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -19,7 +19,7 @@ 'use strict'; var pkg = require('./package.json'); -var AV_CONFIG_VERSION = '17.04'; +var AV_CONFIG_VERSION = '103111.8'; //Using exclusion patterns slows down Grunt significantly //instead of creating a set of patterns like '**/*.js' and '!**/node_modules/**' @@ -204,13 +204,13 @@ module.exports = function (grunt) { remove: ['script[data-remove!="false"]','link[data-remove!="false"]'], append: [ {selector:'body',html:'<%= variables.booth_html_body_include %>'}, - {selector:'body',html:''}, + {selector:'body',html:''}, {selector:'body',html:''}, - {selector:'body',html:''}, - {selector:'body',html:''}, - {selector:'body',html:''}, - {selector:'body',html:''}, - {selector:'body',html:''}, + {selector:'body',html:''}, + {selector:'body',html:''}, + {selector:'body',html:''}, + {selector:'body',html:''}, + {selector:'body',html:''}, {selector:'head',html:''} ] }, @@ -243,9 +243,9 @@ module.exports = function (grunt) { ], 'temp/lib.js': ['<%= dom_munger.data.libjs %>'], 'temp/app.js': ['<%= dom_munger.data.appjs %>','<%= ngtemplates.main.dest %>'], - 'dist/avConfig-v17.04.js': ['avConfig.js'], - 'dist/avThemes-v17.04.js': ['bower_components/avCommon/dist/avThemes-v17.04.js'], - 'dist/avPlugins-v17.04.js': ['plugins/**/*.js'] + 'dist/avConfig-v103111.8.js': ['avConfig.js'], + 'dist/avThemes-v103111.8.js': ['bower_components/avCommon/dist/avThemes-v103111.8.js'], + 'dist/avPlugins-v103111.8.js': ['plugins/**/*.js'] } } }, @@ -277,10 +277,10 @@ module.exports = function (grunt) { beautify: true }, files: { - 'dist/app-v17.04.min.js': 'temp/app.js', - 'dist/lib-v17.04.min.js': 'temp/lib.js', - 'dist/libnocompat-v17.04.min.js': 'temp/libnocompat.js', - 'dist/libcompat-v17.04.min.js': 'temp/libcompat.js', + 'dist/app-v103111.8.min.js': 'temp/app.js', + 'dist/lib-v103111.8.min.js': 'temp/lib.js', + 'dist/libnocompat-v103111.8.min.js': 'temp/libnocompat.js', + 'dist/libcompat-v103111.8.min.js': 'temp/libcompat.js', 'dist/avWidgets.min.js': 'avWidgets.js', "dist/locales/moment/en.js": "bower_components/moment/lang/en-gb.js", diff --git a/app.less b/app.less index 000963bc..a7983d9f 100755 --- a/app.less +++ b/app.less @@ -40,6 +40,7 @@ @import "avBooth/selected-options-directive/selected-options-directive.less"; @import "avBooth/too-few-answers-controller/too-few-answers-controller.less"; @import "avBooth/simultaneous-questions-screen-directive/simultaneous-questions-screen-directive.less"; +@import "avBooth/select-all-category-controller/select-all-category-controller.less"; @import "avBooth/start-screen-directive/start-screen-directive.less"; @import "avBooth/circle-option-directive/circle-option-directive.less"; @import "avBooth/success-screen-directive/success-screen-directive.less"; diff --git a/avBooth/2questions-conditional-screen-directive/2questions-conditional-screen-directive.html b/avBooth/2questions-conditional-screen-directive/2questions-conditional-screen-directive.html index e36f080b..91990bcc 100644 --- a/avBooth/2questions-conditional-screen-directive/2questions-conditional-screen-directive.html +++ b/avBooth/2questions-conditional-screen-directive/2questions-conditional-screen-directive.html @@ -4,7 +4,8 @@
-
-
+ ++
+
+
+
+@@ -63,7 +82,11 @@
__msg__
Hi ha hagut un problema mentre xifràvem el vostre vot cosa que ha impedit que s'emetés. Segurament això és perquè feu servir un navegador web no admès pel nostre programari. Sisplau, proveu-ho un altre cop amb un altre navegador web i més actualitzat, i si el problema persisteix poseu-vos contacte amb nosaltres.Disculpeu les molèsties", "sanityChecksFailed": "Hi ha hagut un problema fent comprovacions automàtiques de codificació prèvies a la tramesa del vot, cosa que ha impedit emetre el vostre vot. Segurament això és perquè feu servir un navegador web no admès pel nostre programari. Si us plau, proveu-ho un altre cop amb un altre navegador web i més actualitzat, i si el problema persisteix poseu-vos contacte amb nosaltres.Disculpeu les molèsties.", "couldntSendBallotNotFound": "No s'ha pogut enviar el vot. Pot ser que hi hagi problemes de connexió, o que el servidor no estigui disponible temporalment. Si fos aquest el cas, proveu-ho un altre cop més tard i si el problema persisteix poseu-vos en contacte amb nosaltres.", "tooManyUserUpdates": "El vostre vot ja ha estat emès i registrat prèviament.", @@ -83,6 +83,7 @@ "selectMoreOpts": "Heu de seleccionar almenys __min__ opcions.", "selectMoreOpts_plural": "Heu de seleccionar almenys __min__ opcions.", "maxSelectedLimitReached": "No podeu seleccionar més opcions (màxim __max__). Si voleu canviar el vostre vot, primer heu de deseleccionar la vostra primera elecció.", + "maxSelectedLimitReached_singular": "Recordeu que només podeu triar una opció", "maxSelectedTagLimitReached": "No podeu seleccionar més opcions de tipo __tagName__ (màxim __max__). Per seleccionar una, deseleccioneu-ne una altra primer.", "maxSelectedTagLimitReached": "No podeu seleccionar més opcions que no siguin __tagName__ (màxim __max__). Per seleccionar-ne una, deseleccioneu-ne una altra primer", "alreadySelectedDocumentType": "No podeu seleccionar dos documents del mateix tipus, desseleccioneu-los primer abans.", @@ -91,6 +92,7 @@ "removeSelectedItem": "click per deseleccioneu", "removeSelectedItemShort": "deseleccioneu", + "dragSelectedItem": "arrossegar per moure", "dragSelectedItemShort": "moure", @@ -150,7 +152,7 @@ "auditBallotTitle": "Auditi el vot", "auditBallotSubtitle": "", - "auditBallotText": "El localitzador del vostre vot és: __ballotHash__
L'auditoria del vot requereix certs coneixements tècnics. Si no els teniu, cal començar de nou el procés d'escollir l'opció del vostre vot fent clic a baix.
Per verificar el vostre vot, necessiteu:
Per raons de seguretat, en auditar el vot, el localitzador ha de ser rebutjat. Per continuar el procés de vot, heu de començar el procés de nou.
", + "auditBallotText": "El localitzador del vostre vot és: __ballotHash__
L'auditoria del vot requereix certs coneixements tècnics. Si no els teniu, cal començar de nou el procés d'escollir l'opció del vostre vot fent clic a baix.
Per verificar el vostre vot, necessiteu:
Per raons de seguretat, en auditar el vot, el localitzador ha de ser rebutjat. Per continuar el procés de vot, heu de començar el procés de nou.
", "auditStartAgain": "Comenceu de nou el procés de vot", diff --git a/locales/en.json b/locales/en.json index a54d3bf0..20e8ce2e 100644 --- a/locales/en.json +++ b/locales/en.json @@ -69,7 +69,7 @@ "errorSendingBallotElectionNotOpen": "The ballot could not be cast because the election is not open. Sorry for the inconvenience.", "couldntSendBallotUnauthorized": "The ballot couldn't be cast because the authentication token associated to this link is invalid. Sorry for the inconvenience. If the problem persists, please try to contact us.", "errorEncrypting": "There was a problem while ballot encryption and it couldn't be cast. This is probably due to you being using an outdated web browser unsupported by our software. Please, try again in a different and more updated web browser, and if the problem persists please contact us. Sorry for the inconvenience.", - "errorEncoding": "There was a problem during ballot encoding and as a result your ballot was not cast. This is probably due to you being using an outdated web browser unsupported by our software. Please, try again in a different and more updated web browser, and if the problem persists please contact us. Sorry for the inconvenience.", + "errorEncoding": "__msg__
There was a problem during ballot encoding and as a result your ballot was not cast. This is probably due to you being using an outdated web browser unsupported by our software. Please, try again in a different and more updated web browser, and if the problem persists please contact us. Sorry for the inconvenience.", "sanityChecksFailed": "There was a problem during the automatic encoding verifications done before ballot casting, and as a result your ballot was not cast. This is probably due to you being using an outdated web browser unsupported by our software. Please, try again in a different and more updated web browser, and if the problem persists please contact us. Sorry for the inconvenience.", "couldntSendBallotNotFound": "The ballot could not be sent. There might be an issue with the connection, or the server might be temporarily unavailable. If that's the case, please try again later and if the issue persists please contact us.", @@ -158,7 +158,7 @@ "auditBallotTitle": "Audit your Ballot", "auditBallotSubtitle": "", - "auditBallotText": "The ballot tracker id is: __ballotHash__
The audit of the ballot requires some technical knowledge. If you don't have it, you can simply start again the voting process clicking in the button below.
To verify your ballot you need to:
For security reasons, if you audit the ballot, it needs to be spoiled. To continue the voting process, you need to start from the begining.
", + "auditBallotText": "The ballot tracker id is: __ballotHash__
The audit of the ballot requires some technical knowledge. If you don't have it, you can simply start again the voting process clicking in the button below.
To verify your ballot you need to:
For security reasons, if you audit the ballot, it needs to be spoiled. To continue the voting process, you need to start from the begining.
", "auditStartAgain": "Start voting from the begining", @@ -195,11 +195,18 @@ "anonymizedTitle": "anonymized", "anonymizedDescription": "so that the tally does not reveal which way you voted" }, - + "tooFewAnswers": { "header": "Choose more options", "body": "In the following questions you have not selected as many options as the minimum number needed to continue:", "question": "Question '__title__': you chose __selected__ options, but you need to choose at least __min__ options" + }, + "selectAllCategory": { + "header": "Select all options from the __category__?", + "body": "Hey! It looks like you want to select all the options of __category__", + "confirm": "Yes, Select them", + "cancel": "No", + "doNotShowAgain": "Do not show this again" } } } diff --git a/locales/es.json b/locales/es.json index 32e3bdb8..39f14a8d 100644 --- a/locales/es.json +++ b/locales/es.json @@ -70,7 +70,7 @@ "errorSendingBallotElectionNotOpen": "No se pudo enviar el voto porque la votación ya no está abierta. Disculpa las molestias.", "couldntSendBallotUnauthorized": "No se pudo enviar el voto porque el token de autenticación asociado a este enlace es incorrecto. Sentimos las molestias. En caso de que el problema persista, por favor ponte en contacto con nosotros.", "errorEncrypting": "Ocurrió un problema mientras que cifrábamos tu voto por lo que no ha podido ser emitido. Seguramente esto sea debido a que utilizas un navegador web no soportado por nuestro software. Por favor, inténtalo de nuevo en otro navegador web diferente y más actualizado, y si el problema persiste ponte en contacto con nosotros. Disculpa las molestias.", - "errorEncoding": "Ocurrió un problema codificando tu voto, por lo que no ha podido ser emitido. Seguramente esto sea debido a que utilizas un navegador web no soportado por nuestro software. Por favor, inténtalo de nuevo en otro navegador web diferente y más actualizado, y si el problema persiste ponte en contacto con nosotros. Disculpa las molestias.", + "errorEncoding": "__msg__
Ocurrió un problema codificando tu voto, por lo que no ha podido ser emitido. Seguramente esto sea debido a que utilizas un navegador web no soportado por nuestro software. Por favor, inténtalo de nuevo en otro navegador web diferente y más actualizado, y si el problema persiste ponte en contacto con nosotros. Disculpa las molestias.", "sanityChecksFailed": "Ocurrió un problema haciendo comprobaciones automáticas de codificación previas al envío del voto, por lo que no hemos podido emitir tu voto. Seguramente esto sea debido a que utilizas un navegador web no soportado por nuestro software. Por favor, inténtalo de nuevo en otro navegador web diferente y más actualizado, y si el problema persiste ponte en contacto con nosotros. Disculpa las molestias.", "couldntSendBallotNotFound": "No se pudo enviar el voto. Puede que haya problemas de conexión, o el servidor no esté disponible temporalmente. Si se trata de este caso, prueba de nuevo más tarde y si el problema persiste ponte en contacto con nosotros.", "tooManyUserUpdates": "No se pudo registrar el voto, debido a que lo has cambiado demasiadas veces en esta votación. Por tanto, el último voto que hayas emitido es el que queda registrado.", @@ -159,7 +159,7 @@ "auditBallotTitle": "Auditar la papeleta", "auditBallotSubtitle": "", - "auditBallotText": "El localizador de tu voto es: __ballotHash__
La auditoría de la papeleta requiere ciertos conocimientos técnicos. Si no los tienes, puedes simplemente comenzar de nuevo el proceso de voto haciendo clic abajo.
Para verificar tu voto, necesitas:
Por razones de seguridad, al auditar el voto, el ha de ser desechado. Para continuar el proceso de voto, debes comenzar el proceso de nuevo.
", + "auditBallotText": "El localizador de tu voto es: __ballotHash__
La auditoría de la papeleta requiere ciertos conocimientos técnicos. Si no los tienes, puedes simplemente comenzar de nuevo el proceso de voto haciendo clic abajo.
Para verificar tu voto, necesitas:
Por razones de seguridad, al auditar el voto, el ha de ser desechado. Para continuar el proceso de voto, debes comenzar el proceso de nuevo.
", "auditStartAgain": "Comenzar el proceso de voto de nuevo", @@ -202,6 +202,13 @@ "body": "En las siguientes preguntas no has seleccionado tantas opciones como el mínimo necesario para continuar:", "question": "Pregunta '__title__': seleccionaste __selected__ opciones, pero necesitas seleccionar al menos __min__ opciones" + }, + "selectAllCategory": { + "header": "¿Seleccionar todas las opciones de __category__?", + "body": "¡Ey! Parece que quieres seleccionar la mayoría de las opciones de __category__", + "confirm": "SI, seleccionar", + "cancel": "NO", + "doNotShowAgain": "No mostrar esto de nuevo" } }, "avElection": { diff --git a/locales/gl.json b/locales/gl.json index 44676169..fda3d089 100644 --- a/locales/gl.json +++ b/locales/gl.json @@ -68,7 +68,7 @@ "errorSendingBallotElectionNotOpen": "Non se puido enviar o voto porque a votación xa non está aberta. Desculpa as molestias.", "couldntSendBallotUnauthorized": "Non se puido enviar o voto porque o token de autenticación asociado a esta ligazón é incorrecto. Sentimos as molestias. No caso de que o problema persista, por favor ponte en contacto connosco.", "errorEncrypting": "Ocorreu un problema mentres que cifrabamos o teu voto polo que non puido ser emitido. Seguramente isto sexa debido a que utilizas un navegador web non soportado polo noso software. Por favor, téntao de novo noutro navegador web diferente e máis actualizado, e se o problema persiste ponte en contacto connosco. Desculpa as molestias.", - "errorEncoding": "Ocorreu un problema codificando o teu voto, polo que non puido ser emitido. Seguramente isto sexa debido a que utilizas un navegador web non soportado polo noso software. Por favor, téntao de novo noutro navegador web diferente e máis actualizado, e se o problema persiste ponche en contacto connosco. Desculpa as molestias.", + "errorEncoding": "__msg__
Ocorreu un problema codificando o teu voto, polo que non puido ser emitido. Seguramente isto sexa debido a que utilizas un navegador web non soportado polo noso software. Por favor, téntao de novo noutro navegador web diferente e máis actualizado, e se o problema persiste ponche en contacto connosco. Desculpa as molestias.", "sanityChecksFailed": "Ocorreu un problema facendo comprobacións automáticas de codificación previas ao envío do voto, polo que non puidemos emitir o teu voto. Seguramente isto sexa debido a que utilizas un navegador web non soportado polo noso software. Por favor, téntao de novo noutro navegador web diferente e máis actualizado, e se o problema persiste ponche en contacto connosco. Desculpa as molestias.", "couldntSendBallotNotFound": "Non se puido enviar o voto. Poida que haxa problemas de conexión, ou o servidor non estea dispoñible temporalmente. Se se trata deste caso, proba de novo máis tarde e se o problema persiste ponche en contacto connosco.", "tooManyUserUpdates": "Non se puido rexistrar o voto, debido a que o cambiaches demasiadas veces nesta votación. Por tanto, o último voto que emitises é o que queda rexistrado.", @@ -119,7 +119,7 @@ "sendingBallot": "Enviando a papeleta cifrada ao servidor, por favor espera (__percentage__% completado)", "successTitle": "Voto emitido con Éxito", - "successSubheader": "Parabén, emitiches correctamente o teu voto e queda custodiado pola urna electrónica.", + "successSubheader": "Parabéns, emitiches correctamente o teu voto e queda custodiado pola urna electrónica.", "completePacksTitle": "Packs completos", "listOfDraftDocuments": "Documentos (clic para ver)", @@ -156,12 +156,13 @@ "auditBallotTitle": "Auditar a papeleta", "auditBallotSubtitle": "", - "auditBallotText": "O localizador do teu voto é: __ballotHash__
A auditoría da papeleta require certos coñecementos técnicos. Se non os tes, podes simplemente comezar de novo o proceso de voto facendo clic abaixo.
Para verificar o teu voto, necesitas:
Por razóns de seguridade, ao auditar o voto, ten que ser refugado. Para continuar o proceso de voto, debes comezar o proceso de novo.
", + "auditBallotText": "O localizador do teu voto é: __ballotHash__
A auditoría da papeleta require certos coñecementos técnicos. Se non os tes, podes simplemente comezar de novo o proceso de voto facendo clic abaixo.
Para verificar o teu voto, necesitas:
Por razóns de seguridade, ao auditar o voto, ten que ser refugado. Para continuar o proceso de voto, debes comezar o proceso de novo.
", "auditStartAgain": "Comezar o proceso de voto de novo", "thisisADemoNotification": " ¡Atención! Cabina de votación de proba, os votos emitidos aquí non contan.", - "successBallotHash": "¡Parabén! Emitiches o teu voto con __name__. O localizador do teu voto é: __ballotHash__
Podes usar o teu localizador para verificar que o teu voto quedou rexistrado.",
+ "successBallotHash": "¡Parabéns! Emitiches o teu voto con __name__. O localizador do teu voto é:
__ballotHash__
Podes usar o teu localizador para verificar que o teu voto quedou rexistrado.",
+ "successNoBallotHash": "Parabéns! Emitiches o teu voto con __name__. ",
"relatedLinksText": "Para máis información sobre a votación:",
"circleOptionExternalLink": "Ver detalles",
@@ -181,7 +182,7 @@
"castTitle": "emitido",
"castDescription": "usando unha canle segura e comprobar a súa identidade",
"anonymizedTitle": "anonimizado",
- "anonymizedDescription": "para que a conta non revela o significado do seu voto"
+ "anonymizedDescription": "para que a conta non revele o significado do seu voto"
},
"tooFewAnswers": {
diff --git a/package.json b/package.json
index f909778b..77eabee1 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "agora-gui-booth",
- "version" : "17.04.0",
+ "version" : "103111.8.0",
"devDependencies": {
"grunt": "~0.4",
"grunt-angular-templates": "~0.5",
@@ -12,13 +12,14 @@
"grunt-contrib-copy": "~0.5",
"grunt-contrib-cssmin": "~0.7",
"grunt-contrib-htmlmin": "~0.1",
- "grunt-contrib-jshint": "~0.9",
+ "grunt-contrib-jshint": "~0.11",
"grunt-contrib-less": "~0.8",
"grunt-contrib-uglify": "~0.6",
"grunt-contrib-watch": "~0.6",
"grunt-dom-munger": "~3.4",
- "grunt-karma": "~0.8.3",
- "grunt-merge-json": "^0.9.5",
+ "grunt-karma": "~0.12.1",
+ "karma": "^0.13.22",
+ "grunt-merge-json": "0.9.5",
"grunt-ng-annotate": "^0.9.2",
"grunt-protractor-runner": "^1.1.4",
"karma": "~0.12.6",
diff --git a/vendor/crypto/elgamal.js b/vendor/crypto/elgamal.js
index 93792ee6..cfcd8355 100644
--- a/vendor/crypto/elgamal.js
+++ b/vendor/crypto/elgamal.js
@@ -344,9 +344,12 @@ ElGamal.Plaintext = Class.extend({
this.pk = pk;
+ // encode to m * legendre(m|p)
if (encode_m) {
// need to encode the message given that p = 2q+1
var y = m.add(BigInt.ONE);
+
+ // euler criterion to determine quadratic residuosity
var test = y.modPow(pk.q, pk.p);
if (test.equals(BigInt.ONE)) {
this.m = y;
@@ -593,4 +596,4 @@ ElGamal.fiatshamir_dlog_challenge_generator = function(commitment) {
// return new BigInt(hex_sha256(commitment.toJSONObject()), 16);
return new BigInt(hex_sha256(commitment.toString()), 16);
};
-/* jshint ignore:end */
\ No newline at end of file
+/* jshint ignore:end */