From a8731f94f2ecb92f27978d7ab142c8c65e0fd285 Mon Sep 17 00:00:00 2001 From: Stefan Malzner Date: Wed, 18 Oct 2017 14:57:51 +0200 Subject: Update vars --- .travis.yml | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/.travis.yml b/.travis.yml index b98db62a9..b0080a51a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -13,22 +13,29 @@ script: node_js: - '7' -os: osx +matrix: + include: + - os: linux + sudo: required + - os: osx + osx_image: xcode8.3 -osx_image: xcode8.3 +before_install: +- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then apt install libx11-dev libxext-dev libxss-dev + libxkbfile-dev; fi cache: yarn notifications: email: false slack: - secure: 0rWztugXppPLIqup6cJ0QplJqtZ4XYzN+qgdyY2ARyPbJkjihfp0qWOiEZfNWIuUCxX2bZXODaEb1Jod6mNfiCQdIs3pW8EUD/cVSDul8jBwXSTwTyAAz4pLejXu3ckHVIiXlAriLC6qqedh2Rl9oAH6JumRmuyb0UTAG0O3Btm3lGM3Cwo3JKt0Zpvly2nBlUI1waSiG11QSx5olq+EDiYvMCzW5mpulwRwnXaOdoIWGBFqnYTFoeS/rLi5IE56yvrYODJPl1e0VhW8Zn4WXiVG+qjlREkDFm4qg2u1SQhZQHRBgveRjSxSAblcG5h58NlkijMKBASWMpj2DjAfiDkGMYoRu1IVyHcFlAI8a+wcR6HlQzVsu4e6EFMyzx33vVVUWovwO+BcxVpME25BZn96eC8P6XE2ruOHahKstEt310dieZZRE/gteBokGh3utA2DV6002GSFYlwqqJ9q/5c5wyhD6cefxYSpzivOqCoiUAq3HW1Nahb4l+EVikTydFkLY0et3f/eV/kD/9yJfZJcttVSTL5Gv6gK4ROjPTJ/UPUkqsVBUdxVrnXiXL8SBESFsRHdHnSHMTkHh74dCrbyqot4pW38yLOmVATCEukm4Cd5N5wOUTGRA0nKon7/pCWoJg0wIH8N9FEtZbrNrD2FrkQbVgCJLXrC9jFpr34= + secure: YvaNZUBghprsoVNWkYdId/SLr/2CY44jIn2Yd9yCfPWsdX1mC/A3LM/ym+kOIxfUvnUmaYZEeyC22Z3fd8lBWkeXumT+zDfPOyj9IIMqevkXk0tc/c9ySfPvH3E9ZEoqKFhERHEigGuQ+/jDIGrL0uHoyyWG7gBhcGZzcZ2UBiB2DjPB3PTfbOlrH3xInYaUVndGpDq5AJNg8ZfW4r7JnYejyMGd4WbynpV6phYAYYVCZx0sHhfVEmcCGs1i+RL7kqPYN877QeCdLc2TEDnYLkdzejGAHY6nHrDOzXmUyKk/xWs/D9upmsh48hNGOdlARUPpif3HGaPls1KEscaIUsg9E3q4Nsw/Wa9V7X+dactoM/WwJttm4pCDpRmjkzM2Fipd8sZkslm9ou98iBLOW7t7VPYKy7MwlnSFiXSGE2du3kkLTvujBANWC7vP2haKIWpofLjALMpMTupNmVeR5VmESPpeZ10Yg0X9DkhYBJkcq0m16gO+nuxqIoGuaK3q6xSPP6pXCEEOLz4hotVpg3teUYL+rPnDEhvgwjHaBBRhhl5/vkTgJaqYuvmPIlaD6cOIqmToReaPYc54nEkygn02REQY1yeAoQSmkH6Ko6KFQum8hFBMt1R/qndksBcV+T9ZOKdSbOLoZ+ZZzUsS8SheVna5ITRcsWNIV0cbAk4= deploy: provider: s3 - access_key_id: AKIAI6ZWIP2OWZUCXIGA + access_key_id: AKIAIBXD77AXW62WB2NA secret_access_key: - secure: NSST9RjAG6v57MQgFKXckah7k2TMcbozpMN7IAdBmyIvwDlRN6ELAMCynknXDSLE6b6LKyhsQ/i6ykSuZxVoHzRyY9z28lJhLkGqCeABqSAhcwQ6gWxetFXGqIV7o/oxTVMS3cDrUdkfUPCQRUgMO1ew0oV7e4HfqIiDYQMMWJY/HGr/LUgNqolrSLGB2GI38/I1nrhPHm3gwa/xYgKUNsO6plPS/YzC6oF/edstM8oO51Lfpq6+XmDMTUl9qq8GkUaRE4BwdGPG97FOA6Y4ONCeJ3xURkElwcfWab7oW3Mox7hj0Z8vot10cieIWEQjpRP+zO5O2NwUzFRH25FuQf4bbvgH4iWXpLan+qnJ9Ow6cl0lg4+8ESemwDCnKtTGb3ujagTH0S4KqBlwJ6sXFb9U2Diut4cEIT4k3rainjk+8ugIssuJq2TWfB40X49ymPw5BPjJfq2T4fOjx8OKzrBHQ1X6KJd8RhfEoLD3V5eToO5/l13uYOBrjSfyo6afvvUIraVNijSlnqYxPmJYnrLWZUUsTiHZFwSF+x2ffcYKs/tep9zqkZpyV4GhH17HcfuQpx4FUIXqMFmGLRj2uN7FweSVdfbsODhgpIwlpV7gMKONeSmEiFcCMwcRik1UK9off7TE6ZJPzX21BJ8QGM5j7Ot2tif2eGvAv+hUaXc= + secure: TMb/wV1jj8/BeePShLimb9abrkgQAxYb/0KgWHmpTO6rZ2BYnXQovXDONK7mLDb7QOFo5ZPLjmsw+GQ5EsOqbTfNHa/+PYvwaEdNhWuhlKTmych15y1hHrVc1Eub6SejYBXIyEr6TEGDK5W6+VeRbIgiPF2gJrWBW6H6fMShfEPrJ9B25rFovND8v9LjGXp6roly726/U7d63+gDfOMIGhd/nXHqig5qZGEsOkgihmFqquFwyhj5LNHFMsX3QW8Q0fkXOScVtVFM/YSfMc1uVDP05FIfxXf393rbOJmUGzcWxNzl3XUTxMUPVYvBPKbeLVWkpjFsaBujOCDWmwmrBNwh2G8XlS8s3MGCU5mufj788NaN385HXU6xrIlKDuKkV5yilwtSaP9+IUQfzwAF4IX9W6B+pawujwnAPnOPJj4vdukoJLB2MJaNJw+EXG+8INUrcBL6TQvNZMREg3NcguJXy22RZPP3zIB2ZcyB3hoEiYIofBEFZL4e4TMTGvqG11zH2hVnz4i/DKBSpaQ6EZ3i2zhHZusrr6nIrIAzsXuL8mKV2XMHYbEuUbgd5/qiFOTV7b1dYCn1FCsmXbdjtdWizaB6PBnBDky2Z7qu/91YmPxd2rU/QsdMU/rJSKv69i85jlq5B1oqL6ieh8YWDvSQyRAcAuXVyhx19w1z5qc= bucket: franz-travis region: eu-central-1 local_dir: out @@ -40,6 +47,6 @@ deploy: env: global: - - secure: izVSi10ahT32qqS+Bl0NcKwX2BoCOIJWa2wX3itw9kJvIS4k34OhnzIDhLCa6MEjDdE9eg8jcA9qHmE05qbirLDec623K5Z73zJ+QyD0QTEs7WKNm9C+lc3THtu4NkvIMF4fVS+6uMBpclkuiG5SMOg2bhlSwtccvCrNP/+9pwUUX215S1M53OjGiQNkconWLDMceL9DHnBZT2Q4QHq55w8EKfNnxFHE996TVTLcoLBt8dUp6VCdcmzCGYiWpkD7q5rApX5iy5d9v2dETcvr329/Qgdi5jFj9g6Fvl9h+uE/BpUNnIyWst1r5S7sSTR6pFt5HzJv30T4bmFGz+z2+v/x4Sdrqez4Aa9onGjDNNau8pez1gtopf8vwpKNp8cnRTnRGdMMPRc+7lswfY8Cwa50NV/fxZqbzokBlmTr/t1d3vaxaeHM56c/9POKdwD/I8RYGONc2jDzAmeAJ1gi6Nt6PixTZhhIRc/221mJ3lTlewKPbRZF42/+L0zF/yNxYMQ25mUU+gTkeQ5+XDsZXAD0bOzMSnZ58cAj7qKftu4VrKpB+DmwWwKplLLwnKEzYqUiAnJt+S9yO8S+XFGdhDJqtbuOOlOeA7h/wYPKxanp2dzemU5WffeIrt7lDlFQra1cLUritOqk132daaWwpnDOccwGYTpwmazTvbjSDEU= - - secure: ZOcObe290rPRqlt8v+l7rWvVcKx+0AxVBHMwxu/S9V/PNV3U6yHUZUe6Ur5Y5MAW7WCFLCaKUa3kgyf0g2A1SnTdlwdQ+6t4Y7FyKjHx+AjR0E8WTTl782h0CVqPlGgjeJOpcy1p8yQAppugDvQ6Ov442Yf9f1QhXOWwCB/DTI7WzJPTqq35W5oFRZm5skhyrhZxFujX4OcC+pN7INwWF+u1mh7C0XbzmrlGvl0TK048u4IqFJkBeGOdrRzg0y6eV+tLDk6Ah+O1F5OeOFkHEQhwFpXjcNZ8zDjf3R2xS28+4oCLq2Iin/xKVUlDRg/qG5cXxKPvFteecnor6S65GU80ppYDSdhUhaJMdB1wZGuCogzKJ1s2DmmUv2TE633l+1NXebnQ/nfpVqNr54YqkxDyIA0WaDSAwo496xujdGZfja5Nxv2Ssm8WAfDAgajLYyhSpw7jaIIEw8Ov11XC+BnILU+4CQEKthSyBvEjVO8DtxOl9mOHYy+XTgi67nNi5xv3u1/kUOz1r3VHMyEAKJf1pBpFoOM5S9fpUWeS7rsXh+0mUsoKMDf38SLnQpFMvrygRY9gxAUrYfwupvKUug+p8HkTURo1W3k5oqwZIW12IAxbus7i6uTk4gdnx9fFF/Ljz4irkPPhhuVikT7zF1hvvHQjyhbwvIPQcHu+Ufg= - - secure: dNpyF1AwYIj08pUwT40oSWStGOq9L5pYCuNhQnqIpj6sKgOXg+tkLC2N6mtH93TjeF2OXnTcumjikgNrB+amZhecsiHW94WkRH/mstfuU33GlUX+cAvjt0XPxLtH7YaJTM7xQwQ0dSFS5I0ptSEC57cOoF0MoAWY8ZpDtBR8EDGTfvX+nbVA2un0swWOhfJBLKFe3hv4ODYMi3KelyGmSB0n8DSHpcRpDsFzUNvPuUdxbOebKi46S6SLNWXsl0m9ft3RZLF45HM3qmB+Su5PSgibL/h4fKNMIe2YUpfoXdPbVMh5mlTYoFoLB3Xdi//HabcKoNHLE4aJNkW6RXgy7ZAQJRuXiBPPFktqAgBGnkAFrrS3dtb6b4qfxqoPeXoGMi5ctAVEPBiMaqwZsAIyffokYZyRUX3Qy7dtXCXR1C92WxQc9/Vnv3IJkjpXC4tK68uzady4E+BozoWtGgcZE/w68U/melFeoyLvIPMO93KwciaTIsx5Ck9MGBC8QOEqpH0L2dKntsrihoKB4hCQhGJmx5y2ash0UUWMA2eS7L+Wfp0vU6RbIkgEqHTkb70VuP7pTNYWasBPx+/k1xAJqi6nsGmB2BjC03VQToWfHaLgOVs2tbeolvMKzAdItg668tDGIsXfbKjxwkbexuBkhNKNiUmYd3Ub5Ki4cwg2ObU= + - secure: BbImFf84jiAKMYhjwXKupKBjEvdftFcD1jnClY1IjY7l17Wk38XVwhLuI0dNSKC0cEC+acHqJEIyvr0qXcPDBnOhTyaDFtIeExQ9lCksxK/MHVFq6UGN5ogEggUZUkcf88Sk3CpaIiQCmPzifZmTbqEYxdcmeDhfthRvoSWYy/xV0hZyeIvXP4YNXdLrqh8bzBzv9FlDWtfV4UoHLPg69P2pWrR6WXvQiMpy1OKpJnShoaS5RjIGK/o4Qo+XswBPpUWxfH06yijCNeqljQvYJyRHnsbwUJY/+3EJwoxSGs2v6Ca5MPjLC4+GeLJOou6IbITA1yO4/tTVs5kr8dD31f75qYF4yAtLDjR6E+HRHguRHV6g3G8xNS9lv2MuV2lLtnSifHuMOtJWDXj2wFqlhUmMbBaA/Y3GHaIWji+ARZ1/b6c/vX2u3Pfw7rc4usOyQo2wwIeDfkz7fbed9QwanaMjNvrQN46/wF/IIpSAR99h5vtjU08yPqOiEbJAvrufjUykW6mAUiJCcBk2aKwbJl7f7kEIwhLVfnxy6ywPwvYQgelMpq0rmeWdN9KV9QFM8PQXOZ+um5eG56SJ4cENAqDiiEYwf4gAqiEXTPsqRUryj6LuiGs0NbYodP6Kk5shiw3BNsFpqtKxBlNZxrH3/cSCtYzemDdFCvKS/8rf+7w= + - secure: K9rF36hqDZMZw2cl7R7HqnurWX6YSgHtjK+u9rfaxzi2K87f30mSsYFWSh02X8WA9hZ1Ev5A1qOzMkCsKRCGirrJpAcgXTi0nMq/qJZiKHqmchoC0TrsBTIG35t3ldfhGgyEQeFp/xDV2GoiLsGPPTiK6or+9ydvwxr2YLHmjCyDoWKlPVzwebnqynALRF1keVPnLM6erH+UYRxbF9elCo+3Xif5wTZo3/maZ8RTNy+ofDPT2GhsFXkIwo0eaI2aWHxqyppt4tTzXbL7+kdhnXCkm6hzPlh7VKFBjLV5khkbDnotYLlQjwdzq1mG9cjWnUZbu3JoRf7uM36MJ/n3bcYc2+95+JFDw5sFFeCVlXyiJsMjP1c8k3PPEZ/qqamg9DBvpYg4F4FoHR929eeNSp3AdN8lK5OoEOFlcizsvQ0v/17laV1/kkbVpwy0PzStbDlbu3G4i4ru3z+RiFycar1pl0j6jJeCSWthENq+TwrwNstG7PQnEKmIq7WGQEai/AnIK7x1fEis1754KubR+QGgBxg6qnR9Wrb3Zxwvy1NhygC6P9qP/M5cYdc7L49t9es3xFTtdqle07xufPH/aQxl6MhKYKVY6nAlYTOxjqGTZErUXFA+rdRotHIzX8G8tWc4CwBYu2YvAc8ua02YbeXCuyOuPDVWwEQdzQu2VUc= + - secure: R5I0YyyLhvjNNZ3QbhSVntIyfs6tSWqSMKPX50aQX0pop5mhElZGiUgrjHmybNrEWhtPY74FdtVzY7SZBRJ0z9djwPmY1hxjHvl8JOdVtyvo2B4Mo6yiJ30UzjOVCDI+xx8iqv0XzyMHaWDX11L+YarufGXSsRXDvURzOQkeBQ6XPomHOXdTqwDBKrbQflk1xAG4nnfZl8hZ+wQVuZigrfHpmeJx25D2D8JxwcJam/VhmvG23IKOamgE4Roi0xvsewT19AFAj6/z94YgT24O7UMEYxfQ947FJZImENt4qBTIEHQybmL4uXMxohPhpMNVcJL9yIfjQJVIuIDVRd9cW4ESlxxXLHdK0ZMSnKb6jSIEvoT3jQDwl5LSqopRnryHsNLhe/sN9b6qbL4BqPM1L41PUe64Q4U8fZzu0ZfNge4urqewSr9IKZpOlPK3k1A9e8rp/2bSHmpIEC9nFu+BJVCIMNm3m6ur3Nf4UGBWNxHLeh9GG6xa1MnWpktUrRT2SlADMi3ffV0OlCINMRGyCE7g7itnGm4d2nOxuQtxC+CC1TDaS1sww/N5Xth5aoIzDsd9FI4dR4FtrbBtBOwKdr+Ag3LYYHLjqRItYiuWHFZ/eZ/CcBg2ial9Rj+JJuVLhf6fC/29x0cGTKz2Pb4hlGqs/bV0XegotQ7muBrICaI= -- cgit v1.2.3-70-g09d2 From 8225f135f70b4348c35e7cb2d6d9a71f8e90cdf6 Mon Sep 17 00:00:00 2001 From: Stefan Malzner Date: Wed, 18 Oct 2017 15:47:17 +0200 Subject: reset encrypted env vars --- .travis.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index b0080a51a..417fbd249 100644 --- a/.travis.yml +++ b/.travis.yml @@ -35,7 +35,7 @@ deploy: provider: s3 access_key_id: AKIAIBXD77AXW62WB2NA secret_access_key: - secure: TMb/wV1jj8/BeePShLimb9abrkgQAxYb/0KgWHmpTO6rZ2BYnXQovXDONK7mLDb7QOFo5ZPLjmsw+GQ5EsOqbTfNHa/+PYvwaEdNhWuhlKTmych15y1hHrVc1Eub6SejYBXIyEr6TEGDK5W6+VeRbIgiPF2gJrWBW6H6fMShfEPrJ9B25rFovND8v9LjGXp6roly726/U7d63+gDfOMIGhd/nXHqig5qZGEsOkgihmFqquFwyhj5LNHFMsX3QW8Q0fkXOScVtVFM/YSfMc1uVDP05FIfxXf393rbOJmUGzcWxNzl3XUTxMUPVYvBPKbeLVWkpjFsaBujOCDWmwmrBNwh2G8XlS8s3MGCU5mufj788NaN385HXU6xrIlKDuKkV5yilwtSaP9+IUQfzwAF4IX9W6B+pawujwnAPnOPJj4vdukoJLB2MJaNJw+EXG+8INUrcBL6TQvNZMREg3NcguJXy22RZPP3zIB2ZcyB3hoEiYIofBEFZL4e4TMTGvqG11zH2hVnz4i/DKBSpaQ6EZ3i2zhHZusrr6nIrIAzsXuL8mKV2XMHYbEuUbgd5/qiFOTV7b1dYCn1FCsmXbdjtdWizaB6PBnBDky2Z7qu/91YmPxd2rU/QsdMU/rJSKv69i85jlq5B1oqL6ieh8YWDvSQyRAcAuXVyhx19w1z5qc= + secure: rOHS2plE+WXVJuTDt8sy8jTo877HRA7XbiNwFwfkhiZ5qYP90QFnbEkVOvsXrarDSAx9LrAPetcq4bitI+/8zlOfxA5++rw+dLpim3GJF9nhqlaFZtC0+LazbJt0Ra5oDymVT9KsdmGWpDIWwGdngZ5mgN0CZv2Xo9fKCk/Ro6qONIUo6rRUpE5hfQR2F218o8mcFcGsSh0da/keHI/ahCkvKwgSr9gZMsmreoT8OpYj5wAnPAgOiN5NnRNzROwgb6fDdLqtzArM7hvIyE56d303fpg78nyYfc+BKuXAU3yfP4KHL5RplZt7n9DqXbO0MAiJnGHGCPCLbGSF2vsqZ+axlcfzms9qYVZuub904NDkMyrB27J9EMZwvMJVo5QjoNAJ4spoZ2meu0gj9Ub5dSxPy+ihaD/VAP3Gf7m98WS16jlzq8VLSw2560NezCjirnEDKLDrBmrpa+k3go04ZFfcA9T7dGAFDADRwzue2t4IXXITIrAilh+jf6a7kATXPFc8Rl5gsjmO0ItgnObrVht0v33G9csknmnpFn/i3MVHmZtdesR97zfoQlM2Rc6qCrqNhB7oL4A38l1h11BXcGQI2q4UJwWJ+6PYlhJOUQSbONMZAv3reVTvnKLacavzTDVZKZyNNhq9NnbBFgLrKRm1BFpE5V9xzbaHm0m60dI= bucket: franz-travis region: eu-central-1 local_dir: out @@ -47,6 +47,6 @@ deploy: env: global: - - secure: BbImFf84jiAKMYhjwXKupKBjEvdftFcD1jnClY1IjY7l17Wk38XVwhLuI0dNSKC0cEC+acHqJEIyvr0qXcPDBnOhTyaDFtIeExQ9lCksxK/MHVFq6UGN5ogEggUZUkcf88Sk3CpaIiQCmPzifZmTbqEYxdcmeDhfthRvoSWYy/xV0hZyeIvXP4YNXdLrqh8bzBzv9FlDWtfV4UoHLPg69P2pWrR6WXvQiMpy1OKpJnShoaS5RjIGK/o4Qo+XswBPpUWxfH06yijCNeqljQvYJyRHnsbwUJY/+3EJwoxSGs2v6Ca5MPjLC4+GeLJOou6IbITA1yO4/tTVs5kr8dD31f75qYF4yAtLDjR6E+HRHguRHV6g3G8xNS9lv2MuV2lLtnSifHuMOtJWDXj2wFqlhUmMbBaA/Y3GHaIWji+ARZ1/b6c/vX2u3Pfw7rc4usOyQo2wwIeDfkz7fbed9QwanaMjNvrQN46/wF/IIpSAR99h5vtjU08yPqOiEbJAvrufjUykW6mAUiJCcBk2aKwbJl7f7kEIwhLVfnxy6ywPwvYQgelMpq0rmeWdN9KV9QFM8PQXOZ+um5eG56SJ4cENAqDiiEYwf4gAqiEXTPsqRUryj6LuiGs0NbYodP6Kk5shiw3BNsFpqtKxBlNZxrH3/cSCtYzemDdFCvKS/8rf+7w= - - secure: K9rF36hqDZMZw2cl7R7HqnurWX6YSgHtjK+u9rfaxzi2K87f30mSsYFWSh02X8WA9hZ1Ev5A1qOzMkCsKRCGirrJpAcgXTi0nMq/qJZiKHqmchoC0TrsBTIG35t3ldfhGgyEQeFp/xDV2GoiLsGPPTiK6or+9ydvwxr2YLHmjCyDoWKlPVzwebnqynALRF1keVPnLM6erH+UYRxbF9elCo+3Xif5wTZo3/maZ8RTNy+ofDPT2GhsFXkIwo0eaI2aWHxqyppt4tTzXbL7+kdhnXCkm6hzPlh7VKFBjLV5khkbDnotYLlQjwdzq1mG9cjWnUZbu3JoRf7uM36MJ/n3bcYc2+95+JFDw5sFFeCVlXyiJsMjP1c8k3PPEZ/qqamg9DBvpYg4F4FoHR929eeNSp3AdN8lK5OoEOFlcizsvQ0v/17laV1/kkbVpwy0PzStbDlbu3G4i4ru3z+RiFycar1pl0j6jJeCSWthENq+TwrwNstG7PQnEKmIq7WGQEai/AnIK7x1fEis1754KubR+QGgBxg6qnR9Wrb3Zxwvy1NhygC6P9qP/M5cYdc7L49t9es3xFTtdqle07xufPH/aQxl6MhKYKVY6nAlYTOxjqGTZErUXFA+rdRotHIzX8G8tWc4CwBYu2YvAc8ua02YbeXCuyOuPDVWwEQdzQu2VUc= - - secure: R5I0YyyLhvjNNZ3QbhSVntIyfs6tSWqSMKPX50aQX0pop5mhElZGiUgrjHmybNrEWhtPY74FdtVzY7SZBRJ0z9djwPmY1hxjHvl8JOdVtyvo2B4Mo6yiJ30UzjOVCDI+xx8iqv0XzyMHaWDX11L+YarufGXSsRXDvURzOQkeBQ6XPomHOXdTqwDBKrbQflk1xAG4nnfZl8hZ+wQVuZigrfHpmeJx25D2D8JxwcJam/VhmvG23IKOamgE4Roi0xvsewT19AFAj6/z94YgT24O7UMEYxfQ947FJZImENt4qBTIEHQybmL4uXMxohPhpMNVcJL9yIfjQJVIuIDVRd9cW4ESlxxXLHdK0ZMSnKb6jSIEvoT3jQDwl5LSqopRnryHsNLhe/sN9b6qbL4BqPM1L41PUe64Q4U8fZzu0ZfNge4urqewSr9IKZpOlPK3k1A9e8rp/2bSHmpIEC9nFu+BJVCIMNm3m6ur3Nf4UGBWNxHLeh9GG6xa1MnWpktUrRT2SlADMi3ffV0OlCINMRGyCE7g7itnGm4d2nOxuQtxC+CC1TDaS1sww/N5Xth5aoIzDsd9FI4dR4FtrbBtBOwKdr+Ag3LYYHLjqRItYiuWHFZ/eZ/CcBg2ial9Rj+JJuVLhf6fC/29x0cGTKz2Pb4hlGqs/bV0XegotQ7muBrICaI= + - secure: nt4TlEsaqvoiHutHRDnrdVtQYTrdMpXLYwOzU1CPECjwHexPwdhri5Pa2bkIgi6lXoT2BVhaHsCWQ+50wic9ISZ7+3wjkaY3bwGvabmIFMlHUrYMIbcRYwOWZlprYIPse9IhEwSMg8qUJgAQD4uADfv8dWI3WQC3gTUsA3kxWzKbq07AQhR2azanCVZ4nvYK1HJLXhxf4r0p6LRyC94joPx/6UKBCdiUZqTHBr+9dg7HJ0Bzk8/VWuYO0PTUXxbRq0IMCUBeEgmwdB1zxMt/acumpciFk2p6aEwwkFAJ4I1FCnWe9lUNYlFmJs2Cn+4wtGlooibxWukquQY8M9+1qZKjDp/H2tY77vgRKpJ/2s9nLigy2spGR92Qk0rmnI2LwWAwKrsqsbxYZU3P9h0JllfV1jkdHJu3Yztg+kv7Kg9FnN4giE/jhZRWj0poJB3bZGVgrw+jNXl5WT544992+tUuf3W378eaKiqrtN9z6EjsbmcmRzYDpE3kkgloRA/TsFTbHNdIkUGhVGGxYa2lgFeXv5XtKdQMZW0ALySIQgvm19E6Dxfigid3IkfsPT9jv0RYQ2BTYFWb4rTnpYrMJ7H3VjcTgOGd+vpLA+ql/rzlWE+EF1tLSNQIOa8BZ94ndJzKg9cyFyNRsL1hoNMjqjKT1S48jCaXymZyNE/V/5Q= + - secure: Yhb98CKzC81ePmFt4FH3/7ea/SXzN8M1qh5wSFy0gAsAc1r2RJHGsJdDZhlAIVxjn9CGBqkUoe2usHeQkUs4ndBxxo3U/uMR6jSbExAIvKKmNBqQLGuJXrcZFIrQz8XKznWZ7H2fq9aj3IqjIF8xpNLwyOoGzNOLVT5SnsTQsVd0lroj7uKPVfSf8QMM/33dAkkIUCCK1TTWzqw/Qz14pbekfGFiyUqFJ9KCCnPsW81p7BFUmu3JA/Vai8Mcw0go87LxQn7Q29G3CEELvLyo0v48gBgQ+ND5rkSOjdd28I6z5RvEHky35jdREPDC3qTDy9Z+q6gSqluHOz3kuPhqi/+TZJe2Uw2h472FOMeRIaKrChFjrT1HM977Uns6RErOrvoOy2hIU9i2TB2aL1as9k2T60RByojVw5yG+97O1yhe/YJtQlyu3BZPuMt6h1VyXcEJt/H8vwks8gNzdHOIIZ9Gfr/gZqFmQnS1li3MLRuJSP4Sp6hgPca9lDFhwRoSX2COD648Ur0bGce+bHzFjLEqdai/ypxOxVHZMdQSjz6/DX4ke1HVgpSCAjIxdBiCQFXarlGOt4PbljB0pTzFoX7Ufck3/umfoO0N8xpoVNAA+GY382PkD4VWLDo7kDadNvzkTVZe8dCxu+svctS9wiz7hA0I8YjF3otpoMPQIQk= + - secure: v891R8OH/Txvr1m58nOFypjg/wQZnyW3rmmPw8KDwS3UL6fcke4wHgc8+4bnsJB2epae2A0u65GF3BPWKAM3Yxe3gtGrgCT+Sq9z0zeCBGbz+EUs7KmaOw5ra3ZpPhCEjo/swNqDlbzDy5a6oEXmKlrTpyPGXq4HjmK7PwkroV33ufIi96TcyljrwPatrv3DynEuv4rATFu+eDO9q58/vDrvW2tNJOOXbnfBgmJ1C+/LYP+U2BxTdZ8R+yLJXxFo5OGuGMBMehKqNrvIUoP8Eif0zr5D1ZiFrEwHgjffnUILD6JJJUP4eUanIABSkkHr056GZW68MVFIAmkyzTnkV6FXJOkTaUOwEnbcQfC2+oF77KQi0xVQi9WVcCfdfG21v6PWQbCuvqzPu5m8LMU7k2eJPqa9gz5+sg4Pd1Of/PpzXmkcsMeWCQdqGS2IjdcE7kaWdGAML0PYMbFTPOqTmQPMygEhoWkiiwx/R4wNOjaLjwmZ5GK8zblvsTkyhYwH8t52vH/Vm7bSvpU4zn6Of0d8pzP2tuk3iOYXD+WdC8vdNN81FTjAeD5q8J2veGqH0wOhVJfFvK7Y9b7tZpXrTk+pT0B21HPy23CkAr5StqxeQgNvwS1MUNUpUoGiVjH4gWEpDhTeQFKs7GsVc0TxdluP8MQ9VDZfMbw4PnPvYG4= -- cgit v1.2.3-70-g09d2 From 31c9dadb17ffbecbc8db33142be7b5362060f24c Mon Sep 17 00:00:00 2001 From: Stefan Malzner Date: Wed, 18 Oct 2017 16:20:11 +0200 Subject: set linux dist to trusty --- .travis.yml | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/.travis.yml b/.travis.yml index 417fbd249..ee374ba70 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,3 +1,11 @@ +matrix: + include: + - os: linux + dist: trusty + sudo: required + - os: osx + osx_image: xcode8.3 + language: node_js before_script: @@ -13,13 +21,6 @@ script: node_js: - '7' -matrix: - include: - - os: linux - sudo: required - - os: osx - osx_image: xcode8.3 - before_install: - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then apt install libx11-dev libxext-dev libxss-dev libxkbfile-dev; fi -- cgit v1.2.3-70-g09d2 From c1f83c37e6521134b38f661d60d036cd2a16eb4b Mon Sep 17 00:00:00 2001 From: Stefan Malzner Date: Wed, 18 Oct 2017 17:20:08 +0200 Subject: re-reset environment variables [appveyor skip] --- .travis.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.travis.yml b/.travis.yml index ee374ba70..05c635d57 100644 --- a/.travis.yml +++ b/.travis.yml @@ -22,21 +22,19 @@ node_js: - '7' before_install: -- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then apt install libx11-dev libxext-dev libxss-dev - libxkbfile-dev; fi +- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt install libx11-dev libxext-dev + libxss-dev libxkbfile-dev; fi cache: yarn notifications: email: false slack: - secure: YvaNZUBghprsoVNWkYdId/SLr/2CY44jIn2Yd9yCfPWsdX1mC/A3LM/ym+kOIxfUvnUmaYZEeyC22Z3fd8lBWkeXumT+zDfPOyj9IIMqevkXk0tc/c9ySfPvH3E9ZEoqKFhERHEigGuQ+/jDIGrL0uHoyyWG7gBhcGZzcZ2UBiB2DjPB3PTfbOlrH3xInYaUVndGpDq5AJNg8ZfW4r7JnYejyMGd4WbynpV6phYAYYVCZx0sHhfVEmcCGs1i+RL7kqPYN877QeCdLc2TEDnYLkdzejGAHY6nHrDOzXmUyKk/xWs/D9upmsh48hNGOdlARUPpif3HGaPls1KEscaIUsg9E3q4Nsw/Wa9V7X+dactoM/WwJttm4pCDpRmjkzM2Fipd8sZkslm9ou98iBLOW7t7VPYKy7MwlnSFiXSGE2du3kkLTvujBANWC7vP2haKIWpofLjALMpMTupNmVeR5VmESPpeZ10Yg0X9DkhYBJkcq0m16gO+nuxqIoGuaK3q6xSPP6pXCEEOLz4hotVpg3teUYL+rPnDEhvgwjHaBBRhhl5/vkTgJaqYuvmPIlaD6cOIqmToReaPYc54nEkygn02REQY1yeAoQSmkH6Ko6KFQum8hFBMt1R/qndksBcV+T9ZOKdSbOLoZ+ZZzUsS8SheVna5ITRcsWNIV0cbAk4= + secure: eVryP5RSaK0zOTZGx5zxt64dFzp0QT95XdX4R6XOgw7WUXbAatO4pLRrJzxi+Ur5bQDPD4hroewAJ77gGSUasFHVb+seiCFwHaszQtq8m8rVh9P/tUG+JP7U8gcOR7nTVhNw5HF5DUO8j8iMqpdvievBQ1KbnYALwcQQj1W/T+UbFCyWYaa3VpJCdOUnbJadeMKcMws9aSStZcQ3wUIvDG3YbpNH02lU3vjU80Y0dMFlGfm8DI9h7pdXQM4VQdyAdtf2fSYV1OMRE7lU2bJP6BX5qcq3+oYty554owVLdF4yBmaFKcB/OOqreOV/GyKLVhZtJIGg00+xTORVBl+1nyO1RsIyCd9FwvwvCRk/f/Nb5j9o96TqIRdssXM3yptVV7cXP0Qwt99BVjice4cb6fXMnu1g9e7kR4K5o/lLijw2CfGcneETj/jh479efCrf4CTX2wRZ6dggE6XQ2zxk6nVz+Y/8HrK9QrAsUlbZcJjCx4oDFCuubP6yccc3NCOd54SdFf0STVt4Yq+63eX8yJhEC2iiVrr9UHrS/9mVxG+pojhyZgOPNYeEvx99nozy2Z9txYrsB9dbqTNmNRVuZozuM8HRDL35l50ZvBALQkj0iqpIGjVEfE3+yc08Idk7Y+cLkuModxtBT4r3cT9EkI62CkhglYMFrR+wVz3HfyA= deploy: provider: s3 access_key_id: AKIAIBXD77AXW62WB2NA - secret_access_key: - secure: rOHS2plE+WXVJuTDt8sy8jTo877HRA7XbiNwFwfkhiZ5qYP90QFnbEkVOvsXrarDSAx9LrAPetcq4bitI+/8zlOfxA5++rw+dLpim3GJF9nhqlaFZtC0+LazbJt0Ra5oDymVT9KsdmGWpDIWwGdngZ5mgN0CZv2Xo9fKCk/Ro6qONIUo6rRUpE5hfQR2F218o8mcFcGsSh0da/keHI/ahCkvKwgSr9gZMsmreoT8OpYj5wAnPAgOiN5NnRNzROwgb6fDdLqtzArM7hvIyE56d303fpg78nyYfc+BKuXAU3yfP4KHL5RplZt7n9DqXbO0MAiJnGHGCPCLbGSF2vsqZ+axlcfzms9qYVZuub904NDkMyrB27J9EMZwvMJVo5QjoNAJ4spoZ2meu0gj9Ub5dSxPy+ihaD/VAP3Gf7m98WS16jlzq8VLSw2560NezCjirnEDKLDrBmrpa+k3go04ZFfcA9T7dGAFDADRwzue2t4IXXITIrAilh+jf6a7kATXPFc8Rl5gsjmO0ItgnObrVht0v33G9csknmnpFn/i3MVHmZtdesR97zfoQlM2Rc6qCrqNhB7oL4A38l1h11BXcGQI2q4UJwWJ+6PYlhJOUQSbONMZAv3reVTvnKLacavzTDVZKZyNNhq9NnbBFgLrKRm1BFpE5V9xzbaHm0m60dI= bucket: franz-travis region: eu-central-1 local_dir: out @@ -45,9 +43,11 @@ deploy: acl: public_read on: all_branches: true + secret_access_key: + secure: HB77zpnMRC0yPa0V+q8H+JzgVFC89OBFZeNdLkZ7jBOGJL2MubgrV2+Qz1JS23972uYLWhY+f0cCc/fbWA19RJ8Bj7MYP/QeSe+psI4F6ge1EjfPzMKkkEtdsUJuV5puEoRQai9sh/tjOsTSyEbwQhyLD/SUlnyimdxsFRujoltyyCqfaHMYU8N9EmS+VIgRXzTOIfQ0u1GcB7E9cnOEdjYWAvUW7vklJ4esVwmPt11KCM+JbOhdenTSr+JaBxopALWs2a3a+wpJ4rsrZlsyAisiOzvgqDlmWRYFyzmIHp0tueiMz5L7sYL/HqgDUkUMVqa3LYzc3iRLab2sm+ukYyNxNK6sNvcWj/gQtSncy5PJ9ZKga1t3CGaze4tGCdAaQdo5lPDywi3Oi3cH7q2gpuubZ5ImgAGkbEDiacZsJR5qRhUZ9gx3gVgSrhKfIx/1lPxsZ8p2LGYL84HKgENOIRWthnzkIgo8xP3ykOun5FihZ8pt3EoJG9NF08YBkMG1FOWxnI2teXb3FZSETt767Qe5DW27WE52daiExO5klgg+dX7ud9f/3G5Fv0auOdAKzj8kM6oyi3YX97nRpoKt/VmeoebUbK6D4WV2lhPLV37xqg1Ak8VfESD8NHsIDm8yS/sIDIQUSsIBDEEt0yBGggkJ/jOmgfk2RPPz2Wy2ClM= env: global: - - secure: nt4TlEsaqvoiHutHRDnrdVtQYTrdMpXLYwOzU1CPECjwHexPwdhri5Pa2bkIgi6lXoT2BVhaHsCWQ+50wic9ISZ7+3wjkaY3bwGvabmIFMlHUrYMIbcRYwOWZlprYIPse9IhEwSMg8qUJgAQD4uADfv8dWI3WQC3gTUsA3kxWzKbq07AQhR2azanCVZ4nvYK1HJLXhxf4r0p6LRyC94joPx/6UKBCdiUZqTHBr+9dg7HJ0Bzk8/VWuYO0PTUXxbRq0IMCUBeEgmwdB1zxMt/acumpciFk2p6aEwwkFAJ4I1FCnWe9lUNYlFmJs2Cn+4wtGlooibxWukquQY8M9+1qZKjDp/H2tY77vgRKpJ/2s9nLigy2spGR92Qk0rmnI2LwWAwKrsqsbxYZU3P9h0JllfV1jkdHJu3Yztg+kv7Kg9FnN4giE/jhZRWj0poJB3bZGVgrw+jNXl5WT544992+tUuf3W378eaKiqrtN9z6EjsbmcmRzYDpE3kkgloRA/TsFTbHNdIkUGhVGGxYa2lgFeXv5XtKdQMZW0ALySIQgvm19E6Dxfigid3IkfsPT9jv0RYQ2BTYFWb4rTnpYrMJ7H3VjcTgOGd+vpLA+ql/rzlWE+EF1tLSNQIOa8BZ94ndJzKg9cyFyNRsL1hoNMjqjKT1S48jCaXymZyNE/V/5Q= - - secure: Yhb98CKzC81ePmFt4FH3/7ea/SXzN8M1qh5wSFy0gAsAc1r2RJHGsJdDZhlAIVxjn9CGBqkUoe2usHeQkUs4ndBxxo3U/uMR6jSbExAIvKKmNBqQLGuJXrcZFIrQz8XKznWZ7H2fq9aj3IqjIF8xpNLwyOoGzNOLVT5SnsTQsVd0lroj7uKPVfSf8QMM/33dAkkIUCCK1TTWzqw/Qz14pbekfGFiyUqFJ9KCCnPsW81p7BFUmu3JA/Vai8Mcw0go87LxQn7Q29G3CEELvLyo0v48gBgQ+ND5rkSOjdd28I6z5RvEHky35jdREPDC3qTDy9Z+q6gSqluHOz3kuPhqi/+TZJe2Uw2h472FOMeRIaKrChFjrT1HM977Uns6RErOrvoOy2hIU9i2TB2aL1as9k2T60RByojVw5yG+97O1yhe/YJtQlyu3BZPuMt6h1VyXcEJt/H8vwks8gNzdHOIIZ9Gfr/gZqFmQnS1li3MLRuJSP4Sp6hgPca9lDFhwRoSX2COD648Ur0bGce+bHzFjLEqdai/ypxOxVHZMdQSjz6/DX4ke1HVgpSCAjIxdBiCQFXarlGOt4PbljB0pTzFoX7Ufck3/umfoO0N8xpoVNAA+GY382PkD4VWLDo7kDadNvzkTVZe8dCxu+svctS9wiz7hA0I8YjF3otpoMPQIQk= - - secure: v891R8OH/Txvr1m58nOFypjg/wQZnyW3rmmPw8KDwS3UL6fcke4wHgc8+4bnsJB2epae2A0u65GF3BPWKAM3Yxe3gtGrgCT+Sq9z0zeCBGbz+EUs7KmaOw5ra3ZpPhCEjo/swNqDlbzDy5a6oEXmKlrTpyPGXq4HjmK7PwkroV33ufIi96TcyljrwPatrv3DynEuv4rATFu+eDO9q58/vDrvW2tNJOOXbnfBgmJ1C+/LYP+U2BxTdZ8R+yLJXxFo5OGuGMBMehKqNrvIUoP8Eif0zr5D1ZiFrEwHgjffnUILD6JJJUP4eUanIABSkkHr056GZW68MVFIAmkyzTnkV6FXJOkTaUOwEnbcQfC2+oF77KQi0xVQi9WVcCfdfG21v6PWQbCuvqzPu5m8LMU7k2eJPqa9gz5+sg4Pd1Of/PpzXmkcsMeWCQdqGS2IjdcE7kaWdGAML0PYMbFTPOqTmQPMygEhoWkiiwx/R4wNOjaLjwmZ5GK8zblvsTkyhYwH8t52vH/Vm7bSvpU4zn6Of0d8pzP2tuk3iOYXD+WdC8vdNN81FTjAeD5q8J2veGqH0wOhVJfFvK7Y9b7tZpXrTk+pT0B21HPy23CkAr5StqxeQgNvwS1MUNUpUoGiVjH4gWEpDhTeQFKs7GsVc0TxdluP8MQ9VDZfMbw4PnPvYG4= + - secure: QQHW81r1ozzT7SvrR+t0szpcqFau4AI14wduZwOUWQk7GxK54Spkp75ebGd1EM1AwNS97DLg8FFNzxEWSoTzn8kDvLQ4UXrQBtqYSGscCHnEFWcReFniYd9H1FRjjVwhgU/9R0nY+eZeArC/6Y4L6ZEQ3leHfG2Wq5wCGpmMhC5ngYN4YXa6KHLj9ZGELqE6nniPcouTtIDbTl4EU0rpwIpEFGGakGZCzz+BLF9ZVYXyEOFHMr1sqzYFngtV5Of3qrEqFW+ea1tDgIPvt1MIkQOASR3X/s8K1LHyj0UugOpUyCgAHtJDDWJa/HGcb86rPdYRUgXAj5CSiGJgsiGv6eDm7Sua1QHaEMZ9YfHB0IuafzOY5cbSEubCuJlnREB7EvMF6nvFMKeRNoEmqbts8wXTzgh3LkeR2LfMedqNQh0ianG5QwXQxtmaoQ7cw2eQEMADe7AbIbJv6El91p/vEHIO7ESNPsYo8vTEannlKswi//VO2Q3iPnHx0VSqIlbMJOkG/624j7aXxsqvufDrWXIOSz0A7kZz4ri2MevGujejeip0k3y6ofZk7eeUmQew4LtzQZiiqJnrOM9DSJ8ziuNplFMNeGILYLx2Ai9v8UGKxr7GhKURlTaQxeqYiT5W0LiDDuzfozCXXhLKdfoGiohi5mUJBjFeGFPv69ME+m4= + - secure: ZBRC0KzerbbUH1WgQq8YYcPiKXWoIifTijP9XfLBM8u+IWnULxyFciFSsFR7g8ck1Tby5ajsqk4Me7OgxHdOn9Ds8xfvGAgP2a1V3qtUcEGUyKjpERc03/n6KTcJdZL2H9Ir1YqnA59UZJFghemannEwNjHUjXIwCQqOij89D4CkMBXI7g52dpYsEiG97fHRh2thI/I9f7x9PuAYKnLC9Zk8bBolIBJZ37/prAQosZH+ZhoqcrZYj7SfuZ7rceZQ7AESfF7Y+P/s1y7k8cbOGvy/Y36U3+M1Iz0PraEyr3kQ5hU1GRgg5IdJzD0HqdjXd42CzH9NlyNwNzehPhgxBvhYdPPhgMX8P5SViD4zjQ7EAn0RzLydp4VuihLmAJhy6aMAZ4VAEy8pucvC1tlfZw/3zuMfOyjThcx1Vk2Db9+ZSP86HI3DAMUpg3cEnZo01Mx498bKJzMR/9JgP2AZ8IWefxin3k2yi3tcwhUB+iDfMJGzeLDMBIMltqM7hz3lwE0hfYkT3bEZujHCAVW2E6+gzdB/IiNbX9iRrYBG23dwWkCWgA55eAu3Rzv5fqZD0PX7/3XjdlFVESnqiJecgu/cXYvsV/eZfXdPi3FuxrpGj4QN9CuHuHoBBlHbOnLur/65iqzgDMdmd33G2VLAGUDwGZK/BmvKD5F8xmCqtYU= + - secure: u5RaqOpoHfnYbKYOzBG9r+6y6wnLTcU49QHgJC2LdXsTBCe5lms4DjxSS5kVqlkLMo8u/Lsd3dORcC0/E4hKaphGgKqHrdPBaJDADMqhY1xD5OwoZbFu8+BKAH0W1cNdr0ZXLFpHQxGcXLg6ofbrZbWg9fYQ5g7Do2ypOXWhoCxsbtF1sOYCyXeOL/O8EqMG0Hif3QOqnpCrdMTL/RjHzc/c6s2sIbsNd8ca4RLHwMZ3yDl1kEePRsB5vR3ZACd7hEDWCeQ9baSmaaAgVudIB6lGyRZgNFTcu5FXyAGfnNQkakHHWtWKXbYEppValTKUGB6t7UmkUw47UsP2t7tTcJG5KpIh5HbN0GoTsabO/OcjIv3cfDIEdsgM44ZoemE0ajdQTLnatVIlTuL1o30IoiIeaBdQUoVJ8TUP41UT8sYYBV7p1ctQluoQ00I3IjmNKnoVkcG/MvVAfk2E50gDswFfH9g5ZOl+vebSV1jYnZVUSdFxqjPEQBL6Ss4dKYpJM9roJstYq27Nm85vUzUd1a50ntdxJyebDEmyc5pGeMM0mS9MwiMAMTEHwvntgv/YBT6ZWyqGMpzIjgDHYVmbICScgutvQ/d+YjheAyTwuDQzvWMCsvgBF7FubPePveQgjZP+QwlyoX0GPfnkmMjRerzyB0ssdSRnVgsdmlhXcuc= -- cgit v1.2.3-70-g09d2 From a4b648229a777ed32c291f759fd1e80b240dd567 Mon Sep 17 00:00:00 2001 From: Robin Haveneers Date: Wed, 25 Oct 2017 11:02:54 +0200 Subject: Fixed spelling mistake and swapped word --- src/i18n/locales/nl-BE.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/i18n/locales/nl-BE.json b/src/i18n/locales/nl-BE.json index 40cc14c50..5255bafe1 100644 --- a/src/i18n/locales/nl-BE.json +++ b/src/i18n/locales/nl-BE.json @@ -54,7 +54,7 @@ "subscription.features.vpn": "Proxy & VPN ondersteuning", "subscription.features.ads": "Geen reclame, nooit!", "subscription.features.comingSoon": "komt binnenkort", - "infobar.servicesUpdated": "Je services zijn geüpdated.", + "infobar.servicesUpdated": "Je services zijn geüpdatet.", "infobar.updateAvailable": "Er is een nieuwe update van Franz beschikbaar.", "infobar.buttonReloadServices": "Services herladen", "infobar.buttonInstallUpdate": "Herstarten & update installeren", @@ -113,7 +113,7 @@ "settings.services.headline": "Jouw services", "settings.services.noServicesAdded": "Je hebt nog geen services toegevoegd.", "settings.services.discoverServices": "Services ontdekken", - "settings.services.updatedInfo": "Je veranderingen werden bewaard", + "settings.services.updatedInfo": "Je wijzigingen werden bewaard", "settings.services.deletedInfo": "Service werd verwijderd", "settings.app.headline": "Instellingen", "settings.app.headlineGeneral": "Algemeen", -- cgit v1.2.3-70-g09d2 From f1d4b8cc9d7c880c0916dd91a522b312a194d671 Mon Sep 17 00:00:00 2001 From: Robin Haveneers Date: Wed, 25 Oct 2017 12:02:40 +0200 Subject: Changed sentence to more commonly used expression --- src/i18n/locales/nl-BE.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/i18n/locales/nl-BE.json b/src/i18n/locales/nl-BE.json index 5255bafe1..39c2c1cc8 100644 --- a/src/i18n/locales/nl-BE.json +++ b/src/i18n/locales/nl-BE.json @@ -76,7 +76,7 @@ "settings.account.headlineProfile": "Profiel aanpassen", "settings.account.headlineAccount": "Accountinformatie", "settings.account.headlinePassword": "Wachtwoord veranderen", - "settings.account.successInfo": "Je wijzigingen werden bewaard", + "settings.account.successInfo": "Je wijzigingen zijn opgeslagen", "settings.account.buttonSave": "Profiel aanpassen", "settings.account.mining.thankyou": "Bedankt om Franz te steunen met je rekenkracht.", "settings.account.mining.active": "Op dit moment maak je {hashes} berekeningen per seconde.", -- cgit v1.2.3-70-g09d2 From 54a2e0735d7fcf293103d3a9b55f2a6b78b3dfbe Mon Sep 17 00:00:00 2001 From: Guillerman Date: Wed, 25 Oct 2017 12:50:41 +0200 Subject: [translation] Spanish Spanish (From Spain) translation --- src/i18n/languages.js | 1 + src/i18n/locales/es-ES.json | 168 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 169 insertions(+) create mode 100644 src/i18n/locales/es-ES.json diff --git a/src/i18n/languages.js b/src/i18n/languages.js index 9860295b3..a7ed6de28 100644 --- a/src/i18n/languages.js +++ b/src/i18n/languages.js @@ -10,4 +10,5 @@ module.exports = { pl: 'Polish', ru: 'Русский', ua: 'Українська', + 'es-ES': 'Español - España', }; diff --git a/src/i18n/locales/es-ES.json b/src/i18n/locales/es-ES.json new file mode 100644 index 000000000..f71b07b2d --- /dev/null +++ b/src/i18n/locales/es-ES.json @@ -0,0 +1,168 @@ +{ + "global.api.unhealthy": "No se pudo conectar con los servicios online de Franz", + "global.notConnectedToTheInternet": "No estás conectado a internet.", + "welcome.signupButton": "Crea una cuenta gratuita", + "welcome.loginButton": "Accede a tu cuenta", + "welcome.slogan": "Mensajería hecha para ti", + "login.headline": "Acceder", + "login.email.label": "Dirección de Email", + "login.password.label": "Contraseña", + "login.submit.label": "Acceder", + "login.invalidCredentials": "Email o contraseña no válidos", + "login.tokenExpired": "Tu sesión ha expirado. Por favor, accede de nuevo.", + "login.serverLogout": "Tu sesión ha expirado. Por favor, accede de nuevo.", + "login.link.signup": "Crea una cuenta gratuita", + "login.link.password": "Restablecer contraseña", + "password.headline": "Restablecer contraseña", + "password.email.label": "Dirección de Email", + "password.submit.label": "Enviar", + "password.noUser": "No hemos encontrado un usuario con ese email", + "password.successInfo": "Por favor, comprueba tu email", + "password.link.signup": "Crea una cuenta gratuita", + "password.link.login": "Accede a tu cuenta", + "signup.headline": "Crea tu cuenta", + "signup.firstname.label": "Nombre", + "signup.lastname.label": "Apellidos", + "signup.email.label": "Dirección de Email", + "signup.company.label": "Empresa", + "signup.password.label": "Contraseña", + "signup.submit.label": "Crear cuenta", + "signup.link.login": "¿Tienes ya una cuenta? Accede", + "signup.emailDuplicate": "Ya existe un usuario con esa dirección de email", + "signup.legal.info": "Al crear una cuenta de Franz aceptas los", + "signup.legal.terms": "Términos de servicio", + "signup.legal.privacy": "Política de privacidad", + "pricing.headline": "Ayuda a Franz", + "pricing.support.label": "Selecciona tu plan de ayuda", + "pricing.submit.label": "Quiero ayudar al desarrollo de Franz", + "pricing.link.skipPayment": "No quiero ayudar al desarrollo de Franz.", + "import.headline": "Importa tus servicios de Franz 4", + "import.notSupportedHeadline": "Servicios aún no disponibles en Franz 5", + "import.submit.label": "Importar servicios", + "import.skip.label": "Quiero añadir los servicios manualmente", + "invite.submit.label": "Enviar invitaciones", + "invite.headline.friends": "Invita a 3 de tus amigos o compañeros", + "invite.name.label": "Nombre", + "invite.email.label": "Dirección de Email", + "invite.skip.label": "Prefiero hacer esto luego", + "subscription.submit.label": "Quiero ayudar al desarrollo de Franz", + "subscription.paymentSessionError": "No se ha podido inicializar el formulario de pago", + "subscription.includedFeatures": "La cuenta de Franz Premium Supporter incluye", + "subscription.features.onpremise": "Añadir servicios in-situ/alojados como HipChat", + "subscription.features.customServices": "Servicios privados para ti y tu equipo", + "subscription.features.encryptedSync": "Sincronización de sesión encriptada", + "subscription.features.vpn": "Soporte para Proxy y VPN", + "subscription.features.ads": "¡Sin anuncios, para siempre!", + "subscription.features.comingSoon": "próximamente", + "infobar.servicesUpdated": "Tus servicios han sido actualizados.", + "infobar.updateAvailable": "Una nueva actualización para Franz está disponible.", + "infobar.buttonReloadServices": "Volver a cargar servicios", + "infobar.buttonInstallUpdate": "Reiniciar e instalar actualizaciones", + "infobar.requiredRequestsFailed": "No se han podido cargar los servicios y la información de usuario", + "sidebar.settings": "Ajustes", + "services.welcome": "Bienvenido a Franz", + "services.getStarted": "Comienza", + "settings.account.headline": "Mi cuenta", + "settings.account.headlineSubscription": "Tu suscripción", + "settings.account.headlineUpgrade": "Mejora tu cuenta y ayuda a Franz", + "settings.account.headlineInvoices": "Recibos", + "settings.account.manageSubscription.label": "Administra tu suscripción", + "settings.account.accountType.basic": "Cuenta Básica", + "settings.account.accountType.premium": "Cuenta Premium Supporter", + "settings.account.account.editButton": "Editar cuenta", + "settings.account.invoiceDownload": "Descargar", + "settings.account.userInfoRequestFailed": "No se ha podido cargar la información de usuario", + "settings.account.tryReloadUserInfoRequest": "TPrueba otra vez", + "settings.account.headlineProfile": "Actualizar perfil", + "settings.account.headlineAccount": "Información de la cuenta", + "settings.account.headlinePassword": "Cambiar contraseña", + "settings.account.successInfo": "Tus cambios han sido guardados", + "settings.account.buttonSave": "Actualizar perfil", + "settings.account.mining.thankyou": "Gracias por ayudar a Franz con tu procesador.", + "settings.account.mining.active": "Ahora mismo estás haciendo {hashes} cálculos por segundo.", + "settings.account.mining.moreInformation": "Obtén más información", + "settings.account.mining.cancel": "Cancelar minado", + "settings.navigation.availableServices": "Servicios disponibles", + "settings.navigation.yourServices": "Tus servicios", + "settings.navigation.account": "Cuenta", + "settings.navigation.settings": "Ajustes", + "settings.navigation.logout": "Desconectar", + "settings.recipes.headline": "Servicios disponibles", + "settings.recipes.mostPopular": "Más populares", + "settings.recipes.all": "Todos los servicios", + "settings.recipes.dev": "Desarrollo", + "settings.recipes.nothingFound": "Lo sentimos, no hemos encontrado nada.", + "settings.recipes.servicesSuccessfulAddedInfo": "Servicio añadido con éxito", + "settings.service.form.saveButton": "Guardar servicio", + "settings.service.form.deleteButton": "Eliminar servicio", + "settings.service.form.availableServices": "Servicios disponibles", + "settings.service.form.yourServices": "Tus servicios", + "settings.service.form.addServiceHeadline": "Añadir {name}", + "settings.service.form.editServiceHeadline": "Editar {name}", + "settings.service.form.tabHosted": "Alojados", + "settings.service.form.tabOnPremise": "Autoalojados ⭐️", + "settings.service.form.customUrlValidationError": "No se ha podido validar el servidor personalizado {name}.", + "settings.service.form.customUrlPremiumInfo": "Para añadir servicios autoalojados necesitas una cuenta de Franz Premium Supporter.", + "settings.service.form.customUrlUpgradeAccount": "Mejora tu cuenta", + "settings.service.form.indirectMessageInfo": "Serás notificado sobre todos los nuevos mensajes en un canal, no solo @username, @channel, @here, ...", + "settings.service.error.headline": "Error", + "settings.service.error.goBack": "Volver a los servicios", + "settings.service.error.message": "No se ha podido cargar el servicio.", + "settings.services.tooltip.isDisabled": "Servicio deshabilitado", + "settings.services.tooltip.notificationsDisabled": "Notificaciones deshabilitadas", + "settings.services.headline": "Tus servicios", + "settings.services.noServicesAdded": "Aún no has añadido ningún servicio.", + "settings.services.discoverServices": "Descubrir servicios", + "settings.services.updatedInfo": "Tu cambios han sido guardados", + "settings.services.deletedInfo": "Se ha eliminado el servicio", + "settings.app.headline": "Ajustes", + "settings.app.headlineGeneral": "Generales", + "settings.app.headlineLanguage": "Idioma", + "settings.app.headlineUpdates": "Actualizaciones", + "settings.app.buttonSearchForUpdate": "Buscar actualizaciones", + "settings.app.buttonInstallUpdate": "Reiniciar e instalar actualizaciones", + "settings.app.updateStatusSearching": "Buscando actualizaciones", + "settings.app.updateStatusAvailable": "Actualización disponible, descargando...", + "settings.app.updateStatusUpToDate": "Estás utilizando la última versión de Franz", + "settings.app.form.autoLaunchOnStart": "Iniciar Franz al encender", + "settings.app.form.autoLaunchInBackground": "Abrir en segundo plano", + "settings.app.form.enableSystemTray": "Mostrar Franz en la barra de tareas", + "settings.app.form.minimizeToSystemTray": "Minimizar Franz a la barra de tareas", + "settings.app.form.runInBackground": "Mantener Franz abierto en segundo plano al cerrar la ventana", + "settings.app.form.language": "Idioma", + "settings.app.form.beta": "Incluir versiones beta", + "settings.app.currentVersion": "Versión actual:", + "settings.service.form.name": "Nombre", + "settings.service.form.enableService": "Habilitar servicio", + "settings.service.form.enableNotification": "Habilitar notificaciones", + "settings.service.form.team": "Equipo", + "settings.service.form.customUrl": "Servidor personalizado", + "settings.service.form.indirectMessages": "Mostrar señal para todos los mensajes nuevos", + "settings.user.form.firstname": "Nombre", + "settings.user.form.lastname": "Apellidos", + "settings.user.form.email": "Email", + "settings.user.form.currentPassword": "Contraseña actual", + "settings.user.form.newPassword": "Nueva contraseña", + "settings.user.form.accountType.label": "Tipo de cuenta", + "settings.user.form.accountType.individual": "Individual", + "settings.user.form.accountType.non-profit": "Sin ánimo de lucro", + "settings.user.form.accountType.company": "Empresa", + "subscription.type.free": "gratis", + "subscription.type.month": "mensual", + "subscription.type.year": "anual", + "subscription.type.mining": "Ayuda a Franz con tu procesador", + "subscription.mining.headline": "¿Cómo funciona?", + "subscription.mining.experimental": "experimental", + "subscription.mining.line1": "Al habilitar \"Ayuda a Franz con tu procesador\", Franz utilizará entre un 20-50% de tu CPU para minar la criptomoneda Monero, lo que equivale a aproximadamente 5$ anuales.", + "subscription.mining.line2": "Adaptaremos el uso de CPU basándonos en tu carga de trabajo para no vaciar tu batería ni realentizar tu ordenador.", + "subscription.mining.line3": "Siempre que el minero esté activo, tendrás acceso ilimitado a todas las ventajas de la cuenta Franz Premium Supporter.", + "subscription.mining.moreInformation": "Obtén más información sobre este plan.", + "subscriptionPopup.buttonCancel": "Cancelar", + "subscriptionPopup.buttonDone": "Hecho", + "tabs.item.reload": "Recargar", + "tabs.item.edit": "Editar", + "tabs.item.disableNotifications": "Desactivar notificaciones", + "tabs.item.enableNotification": "Activar notificaciones", + "tabs.item.disableService": "Deshabilitar servicio", + "tabs.item.deleteService": "Eliminar servicio" +} -- cgit v1.2.3-70-g09d2 From 8a4ef70473bf642774eacbadfa4d621f31650916 Mon Sep 17 00:00:00 2001 From: koma Date: Wed, 25 Oct 2017 21:14:49 +0900 Subject: Fix translation --- src/i18n/locales/ja.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/i18n/locales/ja.json b/src/i18n/locales/ja.json index a283154c9..62fd5a5b9 100644 --- a/src/i18n/locales/ja.json +++ b/src/i18n/locales/ja.json @@ -65,7 +65,7 @@ "settings.account.headline": "アカウント", "settings.account.headlineSubscription": "サブスクリプション内容", "settings.account.headlineUpgrade": "アカウントをアップグレードし、Franzを支援する", - "settings.account.headlineInvoices": "Invoices", + "settings.account.headlineInvoices": "インボイス", "settings.account.manageSubscription.label": "サブスクリプションの管理", "settings.account.accountType.basic": "Basicアカウント", "settings.account.accountType.premium": "Premium Supporterアカウント", @@ -126,6 +126,7 @@ "settings.app.updateStatusUpToDate": "お使いのFranzは最新です", "settings.app.form.autoLaunchOnStart": "システム起動時にFranzを開く", "settings.app.form.autoLaunchInBackground": "バックグラウンドで開く", + "settings.app.form.enableSystemTray": "Franzをシステムトレイに表示する", "settings.app.form.minimizeToSystemTray": "Franzをシステムトレイに最小化する", "settings.app.form.runInBackground": "ウインドウを閉じた際にFranzをバックグラウンドで実行させておく", "settings.app.form.language": "言語", @@ -150,7 +151,7 @@ "subscription.type.month": "月間", "subscription.type.year": "年間", "subscription.type.mining": "PCの処理能力を使ってFranzを支援する", - "subscription.mining.headline": "これはどのように動作しているか", + "subscription.mining.headline": "これはどのような仕組みですか", "subscription.mining.experimental": "実験的", "subscription.mining.line1": "\"PCの処理能力を使ってFranzを支援する\"を有効にすることで、Franzはおよそ20-50%のCPUパワーを暗号通貨Moneroのマイニングに使用し、これはおよそ年間で5ドル分にあたります。", "subscription.mining.line2": "処理能力に基づいてCPUの使用率を適応しますのでバッテリーを無駄に消費したり、システムを遅くすることはありません。", -- cgit v1.2.3-70-g09d2 From 9977f8b7aa609f65b29ed0fbd44559fed538d9b7 Mon Sep 17 00:00:00 2001 From: Peter Migotto Date: Wed, 25 Oct 2017 19:12:26 +0100 Subject: Added "enableSystemTray" line and minor fixes Added the line for the option to (dis)able minimizing to the system tray. Changed term for "settings" to a synonym to better fit the UI. --- src/i18n/locales/pt-BR.json | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/i18n/locales/pt-BR.json b/src/i18n/locales/pt-BR.json index 38f0836a7..0fd6288e5 100644 --- a/src/i18n/locales/pt-BR.json +++ b/src/i18n/locales/pt-BR.json @@ -59,7 +59,7 @@ "infobar.buttonReloadServices": "Recarregar serviços", "infobar.buttonInstallUpdate": "Reiniciar & instalar atualização", "infobar.requiredRequestsFailed": "Não foi possível carregar serviços e informações do usuário", - "sidebar.settings": "Configurações", + "sidebar.settings": "Ajustes", "services.welcome": "Bem-vindo ao Franz", "services.getStarted": "Começar", "settings.account.headline": "Conta", @@ -85,7 +85,7 @@ "settings.navigation.availableServices": "Serviços disponíveis", "settings.navigation.yourServices": "Seus serviços", "settings.navigation.account": "Conta", - "settings.navigation.settings": "Configurações", + "settings.navigation.settings": "Ajustes", "settings.navigation.logout": "Logout", "settings.recipes.headline": "Serviços disponíveis", "settings.recipes.mostPopular": "Mais populares", @@ -115,7 +115,7 @@ "settings.services.discoverServices": "Descobrir serviços", "settings.services.updatedInfo": "Suas mudanças foram salvas", "settings.services.deletedInfo": "Serviço apagado", - "settings.app.headline": "Configurações", + "settings.app.headline": "Ajustes", "settings.app.headlineGeneral": "Geral", "settings.app.headlineLanguage": "Idioma", "settings.app.headlineUpdates": "Atualizações", @@ -126,6 +126,7 @@ "settings.app.updateStatusUpToDate": "Você está usando a última versão do Franz", "settings.app.form.autoLaunchOnStart": "Abrir o Franz iniciar o sistema", "settings.app.form.autoLaunchInBackground": "Abrir no fundo", + "settings.app.form.enableSystemTray": "Mostrar o Franz na bandeja do sistema", "settings.app.form.minimizeToSystemTray": "Minimizar o Franz para a bandeja do sistema", "settings.app.form.runInBackground": "Manter o Franz no fundo quando fechar a janela", "settings.app.form.language": "Idioma", -- cgit v1.2.3-70-g09d2 From 44246e6917fbde20f956e642d95d146801dbf431 Mon Sep 17 00:00:00 2001 From: Darko Bozhinovski Date: Thu, 26 Oct 2017 02:20:16 +0200 Subject: Fixes #111 on mainline --- src/components/layout/Sidebar.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/layout/Sidebar.js b/src/components/layout/Sidebar.js index 4aee1ec60..6a5c0f365 100644 --- a/src/components/layout/Sidebar.js +++ b/src/components/layout/Sidebar.js @@ -52,7 +52,7 @@ export default class Sidebar extends Component { -- cgit v1.2.3-70-g09d2 From 9795e4a51d64d64b7fb9d79758c108b702cc58cd Mon Sep 17 00:00:00 2001 From: Peter Migotto Date: Thu, 26 Oct 2017 16:32:46 +0100 Subject: Added "sidebar.addservice" --- src/i18n/locales/en-US.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json index b9ed51b83..9cfc66f1e 100644 --- a/src/i18n/locales/en-US.json +++ b/src/i18n/locales/en-US.json @@ -60,6 +60,7 @@ "infobar.buttonInstallUpdate": "Restart & install update", "infobar.requiredRequestsFailed": "Could not load services and user information", "sidebar.settings": "Settings", + "sidebar.addservice": "Add new service", "services.welcome": "Welcome to Franz", "services.getStarted": "Get started", "settings.account.headline": "Account", -- cgit v1.2.3-70-g09d2 From 655ea3ad6d12b31f0c793f909cb907a44434ea5f Mon Sep 17 00:00:00 2001 From: Peter Migotto Date: Thu, 26 Oct 2017 16:44:17 +0100 Subject: Update en-US.json --- src/i18n/locales/en-US.json | 1 - 1 file changed, 1 deletion(-) diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json index 9cfc66f1e..b9ed51b83 100644 --- a/src/i18n/locales/en-US.json +++ b/src/i18n/locales/en-US.json @@ -60,7 +60,6 @@ "infobar.buttonInstallUpdate": "Restart & install update", "infobar.requiredRequestsFailed": "Could not load services and user information", "sidebar.settings": "Settings", - "sidebar.addservice": "Add new service", "services.welcome": "Welcome to Franz", "services.getStarted": "Get started", "settings.account.headline": "Account", -- cgit v1.2.3-70-g09d2 From fa8fbd75bbf36e64d7a8dc9720109007f4ad795a Mon Sep 17 00:00:00 2001 From: Peter Migotto Date: Thu, 26 Oct 2017 16:44:48 +0100 Subject: Update TabBarSortableList.js --- src/components/services/tabs/TabBarSortableList.js | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/src/components/services/tabs/TabBarSortableList.js b/src/components/services/tabs/TabBarSortableList.js index 1060ad5f5..c0a68d1a5 100644 --- a/src/components/services/tabs/TabBarSortableList.js +++ b/src/components/services/tabs/TabBarSortableList.js @@ -5,13 +5,6 @@ import { SortableContainer } from 'react-sortable-hoc'; import TabItem from './TabItem'; import { ctrlKey } from '../../../environment'; -const messages = defineMessages({ - addservice: { - id: 'sidebar.addservice', - defaultMessage: '!!!Add new service', - }, -}); - export default SortableContainer(observer(({ services, setActive, @@ -42,7 +35,7 @@ export default SortableContainer(observer(({ -- cgit v1.2.3-70-g09d2 From 75433746ae875051dc76515807a6ec02dfa61720 Mon Sep 17 00:00:00 2001 From: Jens Date: Thu, 26 Oct 2017 22:20:30 +0200 Subject: Update translations --- src/i18n/locales/nl.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/i18n/locales/nl.json b/src/i18n/locales/nl.json index 159d1f328..45ecf845e 100644 --- a/src/i18n/locales/nl.json +++ b/src/i18n/locales/nl.json @@ -10,7 +10,7 @@ "login.submit.label": "Inloggen", "login.invalidCredentials": "E-mailadres of wachtwoord ongeldig", "login.tokenExpired": "De sessie is verlopen, log opnieuw in alsjeblieft.", - "login.serverLogout": "De sessie is verlopen, log opnieuw in alsjeblieft..", + "login.serverLogout": "De sessie is verlopen, log opnieuw in alsjeblieft.", "login.link.signup": "Maak een gratis account", "login.link.password": "Wachtwoord vergeten", "password.headline": "Wachtwoord vergeten", @@ -101,7 +101,7 @@ "settings.service.form.editServiceHeadline": "Bewerk {name}", "settings.service.form.tabHosted": "Gehost", "settings.service.form.tabOnPremise": "Zelf-gehoste ??", - "settings.service.form.customUrlValidationError": "Kon custom server {name} niet valideren.", + "settings.service.form.customUrlValidationError": "Kon aangepaste server {name} niet valideren.", "settings.service.form.customUrlPremiumInfo": "Om zelf-gehoste services toe te kunnen voegen, heb je een Franz Premium Supporter Account nodig.", "settings.service.form.customUrlUpgradeAccount": "Upgrade je account", "settings.service.form.indirectMessageInfo": "Je ontvangt meldingen van alle nieuwe berichten in een kanaal, niet alleen @username, @channel, @here, ...", @@ -136,7 +136,7 @@ "settings.service.form.enableService": "Activeer service", "settings.service.form.enableNotification": "Activeer meldingen", "settings.service.form.team": "Team", - "settings.service.form.customUrl": "Custom server", + "settings.service.form.customUrl": "Aangepaste server", "settings.service.form.indirectMessages": "Toon berichtenbadge voor alle nieuwe berichten", "settings.user.form.firstname": "Voornaam", "settings.user.form.lastname": "Achternaam", @@ -157,7 +157,7 @@ "subscription.mining.line2": "We zullen het CPU-gebruik aanpassen aan je gebruik en daarmee voorkomen dat de batterij niet leegloopt of dat jij en je werk afgeremd wordt.", "subscription.mining.line3": "Zolang de miner actief is, heb je onbeperkt toegang tot alle Franz Premium Supporter Features.", "subscription.mining.moreInformation": "Verkrijg meer informatie over dit plan.", - "subscriptionPopup.buttonCancel": "Cancel", + "subscriptionPopup.buttonCancel": "Annuleer", "subscriptionPopup.buttonDone": "Klaar", "tabs.item.reload": "Herlaad", "tabs.item.edit": "Bewerk", -- cgit v1.2.3-70-g09d2 From 6c8719f958db7e1e2409a51c296db9c1ebe60c9f Mon Sep 17 00:00:00 2001 From: Darko Bozhinovski Date: Fri, 27 Oct 2017 00:24:04 +0200 Subject: Adds intl support for addNewService (sans translations) --- src/components/services/tabs/TabBarSortableList.js | 110 ++++++++++++++------- src/components/services/tabs/Tabbar.js | 3 + src/i18n/locales/de.json | 1 + src/i18n/locales/el-GR.json | 1 + src/i18n/locales/en-US.json | 1 + src/i18n/locales/fr.json | 1 + src/i18n/locales/ja.json | 1 + src/i18n/locales/nl-BE.json | 1 + src/i18n/locales/nl.json | 1 + src/i18n/locales/pl.json | 1 + src/i18n/locales/pt-BR.json | 1 + src/i18n/locales/ru.json | 1 + src/i18n/locales/ua.json | 1 + 13 files changed, 86 insertions(+), 38 deletions(-) diff --git a/src/components/services/tabs/TabBarSortableList.js b/src/components/services/tabs/TabBarSortableList.js index c0a68d1a5..e5ae36419 100644 --- a/src/components/services/tabs/TabBarSortableList.js +++ b/src/components/services/tabs/TabBarSortableList.js @@ -1,44 +1,78 @@ -import React from 'react'; -import { observer } from 'mobx-react'; +import React, { Component } from 'react'; +import { observer, PropTypes as MobxPropTypes } from 'mobx-react'; +import PropTypes from 'prop-types'; import { SortableContainer } from 'react-sortable-hoc'; +import { defineMessages, intlShape } from 'react-intl'; import TabItem from './TabItem'; import { ctrlKey } from '../../../environment'; -export default SortableContainer(observer(({ - services, - setActive, - reload, - toggleNotifications, - deleteService, - disableService, - openSettings, -}) => ( -
    - {services.map((service, index) => ( - setActive({ serviceId: service.id })} - service={service} - index={index} - shortcutIndex={index + 1} - reload={() => reload({ serviceId: service.id })} - toggleNotifications={() => toggleNotifications({ serviceId: service.id })} - deleteService={() => deleteService({ serviceId: service.id })} - disableService={() => disableService({ serviceId: service.id })} - openSettings={openSettings} - /> - ))} -
  • - -
  • -
-))); + {services.map((service, index) => ( + setActive({ serviceId: service.id })} + service={service} + index={index} + shortcutIndex={index + 1} + reload={() => reload({ serviceId: service.id })} + toggleNotifications={() => toggleNotifications({ serviceId: service.id })} + deleteService={() => deleteService({ serviceId: service.id })} + disableService={() => disableService({ serviceId: service.id })} + openSettings={openSettings} + /> + ))} +
  • + +
  • + + ); + } +} + +export default SortableContainer(TabBarSortableList); diff --git a/src/components/services/tabs/Tabbar.js b/src/components/services/tabs/Tabbar.js index fdb2c0a59..c1ee924da 100644 --- a/src/components/services/tabs/Tabbar.js +++ b/src/components/services/tabs/Tabbar.js @@ -54,6 +54,8 @@ export default class TabBar extends Component { deleteService, } = this.props; + const { intl } = this.context; + return (
    ); diff --git a/src/i18n/locales/de.json b/src/i18n/locales/de.json index 78de9903e..3ceffa74e 100644 --- a/src/i18n/locales/de.json +++ b/src/i18n/locales/de.json @@ -60,6 +60,7 @@ "infobar.buttonInstallUpdate": "Neustarten & Aktualisierung installieren", "infobar.requiredRequestsFailed": "Dienste und Benutzerinformationen konnten nicht geladen werden", "sidebar.settings": "Einstellungen", + "sidebar.addNewService": "!!!Add new service", "services.welcome": "Willkommen bei Franz", "services.getStarted": "Loslegen", "settings.account.headline": "Konto", diff --git a/src/i18n/locales/el-GR.json b/src/i18n/locales/el-GR.json index dfada77a2..3710bc9a2 100644 --- a/src/i18n/locales/el-GR.json +++ b/src/i18n/locales/el-GR.json @@ -60,6 +60,7 @@ "infobar.buttonInstallUpdate": "Επανεκκίνηση & εγκατάσταση ενημερώσεων", "infobar.requiredRequestsFailed": "Δεν ήταν δυνατή η φόρτωση υπηρεσιών και πληροφοριών χρηστών", "sidebar.settings": "Ρυθμίσεις", + "sidebar.addNewService": "!!!Add new service", "services.welcome": "Καλώς ορίσατε στον Franz", "services.getStarted": "Ξεκινήστε", "settings.account.headline": "Λογαριασμός", diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json index b9ed51b83..b1d260f0a 100644 --- a/src/i18n/locales/en-US.json +++ b/src/i18n/locales/en-US.json @@ -60,6 +60,7 @@ "infobar.buttonInstallUpdate": "Restart & install update", "infobar.requiredRequestsFailed": "Could not load services and user information", "sidebar.settings": "Settings", + "sidebar.addNewService": "Add new service", "services.welcome": "Welcome to Franz", "services.getStarted": "Get started", "settings.account.headline": "Account", diff --git a/src/i18n/locales/fr.json b/src/i18n/locales/fr.json index 84cf54492..2863f47e4 100644 --- a/src/i18n/locales/fr.json +++ b/src/i18n/locales/fr.json @@ -60,6 +60,7 @@ "infobar.buttonInstallUpdate": "Redémarrer et installer la mise à jour", "infobar.requiredRequestsFailed": "Impossible de charger les services et les informations de l'utilisateur", "sidebar.settings": "Paramètres", + "sidebar.addNewService": "!!!Add new service", "services.welcome": "Bienvenue sur Franz", "services.getStarted": "Commencer", "settings.account.headline": "Compte", diff --git a/src/i18n/locales/ja.json b/src/i18n/locales/ja.json index a283154c9..9b422548b 100644 --- a/src/i18n/locales/ja.json +++ b/src/i18n/locales/ja.json @@ -60,6 +60,7 @@ "infobar.buttonInstallUpdate": "再起動して更新をインストールする", "infobar.requiredRequestsFailed": "サービスとユーザー情報が読み込めません", "sidebar.settings": "設定", + "sidebar.addNewService": "!!!Add new service", "services.welcome": "Franzにようこそ", "services.getStarted": "はじめる", "settings.account.headline": "アカウント", diff --git a/src/i18n/locales/nl-BE.json b/src/i18n/locales/nl-BE.json index 40cc14c50..45615cc6f 100644 --- a/src/i18n/locales/nl-BE.json +++ b/src/i18n/locales/nl-BE.json @@ -60,6 +60,7 @@ "infobar.buttonInstallUpdate": "Herstarten & update installeren", "infobar.requiredRequestsFailed": "Kon services en gebruikersinformatie niet laden", "sidebar.settings": "Instellingen", + "sidebar.addNewService": "!!!Add new service", "services.welcome": "Welkom bij Franz", "services.getStarted": "Begin", "settings.account.headline": "Account", diff --git a/src/i18n/locales/nl.json b/src/i18n/locales/nl.json index 159d1f328..07dab2f42 100644 --- a/src/i18n/locales/nl.json +++ b/src/i18n/locales/nl.json @@ -60,6 +60,7 @@ "infobar.buttonInstallUpdate": "Herstart & installeer update", "infobar.requiredRequestsFailed": "Kon services en gebruikerinformatie niet laden", "sidebar.settings": "Instellingen", + "sidebar.addNewService": "!!!Add new service", "services.welcome": "Welkom bij Franz", "services.getStarted": "Beginnen", "settings.account.headline": "Account", diff --git a/src/i18n/locales/pl.json b/src/i18n/locales/pl.json index 1a8e9ad54..a884ef319 100644 --- a/src/i18n/locales/pl.json +++ b/src/i18n/locales/pl.json @@ -60,6 +60,7 @@ "infobar.buttonInstallUpdate": "Uruchom ponownie i zainstaluj aktualizacje", "infobar.requiredRequestsFailed": "Nie można wczytać usług i informacji o użytkowniku", "sidebar.settings": "Ustawienia", + "sidebar.addNewService": "!!!Add new service", "services.welcome": "Witaj w aplikcji Franz", "services.getStarted": "Zacznij", "settings.account.headline": "Konto", diff --git a/src/i18n/locales/pt-BR.json b/src/i18n/locales/pt-BR.json index 38f0836a7..31bb2a861 100644 --- a/src/i18n/locales/pt-BR.json +++ b/src/i18n/locales/pt-BR.json @@ -60,6 +60,7 @@ "infobar.buttonInstallUpdate": "Reiniciar & instalar atualização", "infobar.requiredRequestsFailed": "Não foi possível carregar serviços e informações do usuário", "sidebar.settings": "Configurações", + "sidebar.addNewService": "!!!Add new service", "services.welcome": "Bem-vindo ao Franz", "services.getStarted": "Começar", "settings.account.headline": "Conta", diff --git a/src/i18n/locales/ru.json b/src/i18n/locales/ru.json index 44ced9e43..97b746097 100644 --- a/src/i18n/locales/ru.json +++ b/src/i18n/locales/ru.json @@ -60,6 +60,7 @@ "infobar.buttonInstallUpdate": "Перезапустить и обновить", "infobar.requiredRequestsFailed": "Невозможно загрузить сервисы и информацию пользователя", "sidebar.settings": "Настройки", + "sidebar.addNewService": "!!!Add new service", "services.welcome": "Добро пожаловать во Franz", "services.getStarted": "Начать работу", "settings.account.headline": "Аккаунт", diff --git a/src/i18n/locales/ua.json b/src/i18n/locales/ua.json index 63135e52c..fcb99c4e4 100644 --- a/src/i18n/locales/ua.json +++ b/src/i18n/locales/ua.json @@ -60,6 +60,7 @@ "infobar.buttonInstallUpdate": "Перезавантажити і встановити оновлення", "infobar.requiredRequestsFailed": "Не вдалося завантажити сервіси та інформацію користувача", "sidebar.settings": "Налаштування", + "sidebar.addNewService": "!!!Add new service", "services.welcome": "Ласкаво просимо в Franz", "services.getStarted": "Почати", "settings.account.headline": "Акаунт", -- cgit v1.2.3-70-g09d2 From cbbf3e7ee69f563d3107af6ce9197171b53f964b Mon Sep 17 00:00:00 2001 From: Atakan Goktepe Date: Thu, 26 Oct 2017 21:36:17 +0300 Subject: Removed mainWindow parameter from Tray class --- src/index.js | 2 +- src/lib/Tray.js | 7 +------ 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/src/index.js b/src/index.js index 9ca059f48..030736fee 100644 --- a/src/index.js +++ b/src/index.js @@ -66,7 +66,7 @@ const createWindow = async () => { }); // Initialize System Tray - const trayIcon = new Tray(mainWindow); + const trayIcon = new Tray(); // Initialize ipcApi ipcApi({ mainWindow, settings, trayIcon }); diff --git a/src/lib/Tray.js b/src/lib/Tray.js index 2101d1503..525ce592e 100644 --- a/src/lib/Tray.js +++ b/src/lib/Tray.js @@ -6,13 +6,8 @@ const INDICATOR_TRAY_PLAIN = 'tray'; const INDICATOR_TRAY_UNREAD = 'tray-unread'; export default class TrayIcon { - mainWindow = null; trayIcon = null; - constructor(mainWindow) { - this.mainWindow = mainWindow; - } - show() { if (this.trayIcon) return; @@ -35,7 +30,7 @@ export default class TrayIcon { this.trayIcon.setContextMenu(trayMenu); this.trayIcon.on('click', () => { - this.mainWindow.show(); + app.mainWindow.show(); }); } -- cgit v1.2.3-70-g09d2 From ecd00e2dd1c57a67591265ec1a75cebb333ea7aa Mon Sep 17 00:00:00 2001 From: Jens Date: Fri, 27 Oct 2017 11:20:39 +0200 Subject: [translation] Update Dutch (nl-NL) Change back the translation because it didn't fit the context --- src/i18n/locales/nl.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/i18n/locales/nl.json b/src/i18n/locales/nl.json index 45ecf845e..56088a727 100644 --- a/src/i18n/locales/nl.json +++ b/src/i18n/locales/nl.json @@ -101,7 +101,7 @@ "settings.service.form.editServiceHeadline": "Bewerk {name}", "settings.service.form.tabHosted": "Gehost", "settings.service.form.tabOnPremise": "Zelf-gehoste ??", - "settings.service.form.customUrlValidationError": "Kon aangepaste server {name} niet valideren.", + "settings.service.form.customUrlValidationError": "Kon custom server {name} niet valideren.", "settings.service.form.customUrlPremiumInfo": "Om zelf-gehoste services toe te kunnen voegen, heb je een Franz Premium Supporter Account nodig.", "settings.service.form.customUrlUpgradeAccount": "Upgrade je account", "settings.service.form.indirectMessageInfo": "Je ontvangt meldingen van alle nieuwe berichten in een kanaal, niet alleen @username, @channel, @here, ...", @@ -136,7 +136,7 @@ "settings.service.form.enableService": "Activeer service", "settings.service.form.enableNotification": "Activeer meldingen", "settings.service.form.team": "Team", - "settings.service.form.customUrl": "Aangepaste server", + "settings.service.form.customUrl": "Custom server", "settings.service.form.indirectMessages": "Toon berichtenbadge voor alle nieuwe berichten", "settings.user.form.firstname": "Voornaam", "settings.user.form.lastname": "Achternaam", -- cgit v1.2.3-70-g09d2 From 72110fe786373e7e100115846599f5597d1efa6e Mon Sep 17 00:00:00 2001 From: Darko Bozhinovski Date: Fri, 27 Oct 2017 12:00:58 +0200 Subject: Removes unused intl in tabbar; Adds nl translation for addNewService --- src/components/services/tabs/Tabbar.js | 3 --- src/i18n/locales/nl.json | 2 +- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/src/components/services/tabs/Tabbar.js b/src/components/services/tabs/Tabbar.js index c1ee924da..fdb2c0a59 100644 --- a/src/components/services/tabs/Tabbar.js +++ b/src/components/services/tabs/Tabbar.js @@ -54,8 +54,6 @@ export default class TabBar extends Component { deleteService, } = this.props; - const { intl } = this.context; - return (
    ); diff --git a/src/i18n/locales/nl.json b/src/i18n/locales/nl.json index 07dab2f42..757041b90 100644 --- a/src/i18n/locales/nl.json +++ b/src/i18n/locales/nl.json @@ -60,7 +60,7 @@ "infobar.buttonInstallUpdate": "Herstart & installeer update", "infobar.requiredRequestsFailed": "Kon services en gebruikerinformatie niet laden", "sidebar.settings": "Instellingen", - "sidebar.addNewService": "!!!Add new service", + "sidebar.addNewService": "Voeg nieuwe service toe", "services.welcome": "Welkom bij Franz", "services.getStarted": "Beginnen", "settings.account.headline": "Account", -- cgit v1.2.3-70-g09d2 From 37d59235ee8876e679d36cc9c7a8cce643e9bca0 Mon Sep 17 00:00:00 2001 From: Stefan Malzner Date: Fri, 27 Oct 2017 12:26:36 +0200 Subject: fix(Shortcuts): Flip shortcut to navigate to next/previous service --- src/stores/AppStore.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/stores/AppStore.js b/src/stores/AppStore.js index 7dbef985d..f3c4db0cf 100644 --- a/src/stores/AppStore.js +++ b/src/stores/AppStore.js @@ -123,13 +123,13 @@ export default class AppStore extends Store { // Set active the next service key( - '⌘+pagedown, ctrl+pagedown, ⌘+shift+tab, ctrl+shift+tab', () => { + '⌘+pagedown, ctrl+pagedown, ⌘+tab, ctrl+tab', () => { this.actions.service.setActiveNext(); }); // Set active the prev service key( - '⌘+pageup, ctrl+pageup, ⌘+tab, ctrl+tab', () => { + '⌘+pageup, ctrl+pageup, ⌘+shift+tab, ctrl+shift+tab', () => { this.actions.service.setActivePrev(); }); -- cgit v1.2.3-70-g09d2 From e8da383d440445f7c28165e073d78c36b86b8b32 Mon Sep 17 00:00:00 2001 From: Stefan Malzner Date: Fri, 27 Oct 2017 13:41:54 +0200 Subject: feat(Menu): Add menu item to toggle (service) dev tools --- src/lib/Menu.js | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/src/lib/Menu.js b/src/lib/Menu.js index a6cde4d36..37f3dd45d 100644 --- a/src/lib/Menu.js +++ b/src/lib/Menu.js @@ -1,7 +1,7 @@ import { remote, shell } from 'electron'; import { autorun, computed, observable, toJS } from 'mobx'; -import { isDevMode, isMac } from '../environment'; +import { isMac } from '../environment'; const { app, Menu } = remote; @@ -101,17 +101,15 @@ export default class FranzMenu { _build() { const tpl = toJS(this.tpl); - if (isDevMode) { - tpl[1].submenu.push({ - role: 'toggledevtools', - }, { - label: 'Toggle Service Developer Tools', - accelerator: 'CmdOrCtrl+Shift+Alt+i', - click: () => { - this.actions.service.openDevToolsForActiveService(); - }, - }); - } + tpl[1].submenu.push({ + role: 'toggledevtools', + }, { + label: 'Toggle Service Developer Tools', + accelerator: 'CmdOrCtrl+Shift+Alt+i', + click: () => { + this.actions.service.openDevToolsForActiveService(); + }, + }); tpl[1].submenu.unshift({ label: 'Reload Service', -- cgit v1.2.3-70-g09d2 From a21b7706cd9a12db31bdb64a881365a4cc5cbb08 Mon Sep 17 00:00:00 2001 From: Stefan Malzner Date: Fri, 27 Oct 2017 15:09:26 +0200 Subject: feat(Menu): Add "About Franz" Menu item to Windows/Linux --- src/lib/Menu.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/lib/Menu.js b/src/lib/Menu.js index a6cde4d36..d828f8e1a 100644 --- a/src/lib/Menu.js +++ b/src/lib/Menu.js @@ -4,6 +4,7 @@ import { autorun, computed, observable, toJS } from 'mobx'; import { isDevMode, isMac } from '../environment'; const { app, Menu } = remote; +const { app, Menu, dialog } = remote; const template = [ { @@ -218,6 +219,18 @@ export default class FranzMenu { role: 'front', }, ]; + } else { + tpl[4].submenu.unshift({ + role: 'about', + click: () => { + dialog.showMessageBox({ + type: 'info', + title: 'Franz', + message: 'Franz', + detail: `Version: ${remote.app.getVersion()}\nRelease: ${process.versions.electron} / ${process.platform} / ${process.arch}`, + }); + }, + }); } const serviceTpl = this.serviceTpl; -- cgit v1.2.3-70-g09d2 From 8281c43ac30ad420899524a8a78ec4d34b08e8f4 Mon Sep 17 00:00:00 2001 From: Stefan Malzner Date: Fri, 27 Oct 2017 15:09:56 +0200 Subject: Add info & support links to "Help" menu --- src/lib/Menu.js | 46 +++++++++++++++++++++++++++++++++------------- 1 file changed, 33 insertions(+), 13 deletions(-) diff --git a/src/lib/Menu.js b/src/lib/Menu.js index d828f8e1a..c29cd00ae 100644 --- a/src/lib/Menu.js +++ b/src/lib/Menu.js @@ -1,9 +1,8 @@ import { remote, shell } from 'electron'; import { autorun, computed, observable, toJS } from 'mobx'; -import { isDevMode, isMac } from '../environment'; +import { isMac } from '../environment'; -const { app, Menu } = remote; const { app, Menu, dialog } = remote; const template = [ @@ -85,6 +84,28 @@ const template = [ label: 'Learn More', click() { shell.openExternal('http://meetfranz.com'); }, }, + { + label: 'Changelog', + click() { shell.openExternal('https://github.com/meetfranz/franz/blob/master/CHANGELOG.md'); }, + }, + { + type: 'separator', + }, + { + label: 'Support', + click() { shell.openExternal('http://meetfranz.com/support'); }, + }, + { + type: 'separator', + }, + { + label: 'Terms of Service', + click() { shell.openExternal('https://meetfranz.com/terms'); }, + }, + { + label: 'Privacy Statement', + click() { shell.openExternal('https://meetfranz.com/privacy'); }, + }, ], }, ]; @@ -102,17 +123,16 @@ export default class FranzMenu { _build() { const tpl = toJS(this.tpl); - if (isDevMode) { - tpl[1].submenu.push({ - role: 'toggledevtools', - }, { - label: 'Toggle Service Developer Tools', - accelerator: 'CmdOrCtrl+Shift+Alt+i', - click: () => { - this.actions.service.openDevToolsForActiveService(); - }, - }); - } + tpl[1].submenu.push({ + role: 'toggledevtools', + }, { + label: 'Toggle Service Developer Tools', + accelerator: 'CmdOrCtrl+Shift+Alt+i', + click: () => { + this.actions.service.openDevToolsForActiveService(); + }, + }); + tpl[1].submenu.unshift({ label: 'Reload Service', -- cgit v1.2.3-70-g09d2 From 769c55e6b5b61560bbda32fb11481fb2040130ee Mon Sep 17 00:00:00 2001 From: Stefan Malzner Date: Fri, 27 Oct 2017 15:16:05 +0200 Subject: Remove additional production shortcuts for devtools Due to the menu update we now show use the standard shortcuts for opening the dev tools. --- src/stores/AppStore.js | 9 --------- 1 file changed, 9 deletions(-) diff --git a/src/stores/AppStore.js b/src/stores/AppStore.js index 7dbef985d..d0d8defee 100644 --- a/src/stores/AppStore.js +++ b/src/stores/AppStore.js @@ -112,15 +112,6 @@ export default class AppStore extends Store { setTimeout(window.location.reload, 5000); }); - // Open Dev Tools (even in production mode) - key('⌘+ctrl+shift+alt+i, ctrl+shift+alt+i', () => { - getCurrentWindow().toggleDevTools(); - }); - - key('⌘+ctrl+shift+alt+pageup, ctrl+shift+alt+pageup', () => { - this.actions.service.openDevToolsForActiveService(); - }); - // Set active the next service key( '⌘+pagedown, ctrl+pagedown, ⌘+shift+tab, ctrl+shift+tab', () => { -- cgit v1.2.3-70-g09d2 From beac976665fdea16c4fb5b17e7f964214bf952ff Mon Sep 17 00:00:00 2001 From: Stefan Malzner Date: Fri, 27 Oct 2017 15:35:54 +0200 Subject: Fix linting issues --- src/stores/AppStore.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/stores/AppStore.js b/src/stores/AppStore.js index d0d8defee..4cfe6d0b5 100644 --- a/src/stores/AppStore.js +++ b/src/stores/AppStore.js @@ -13,7 +13,7 @@ import locales from '../i18n/translations'; import { gaEvent } from '../lib/analytics'; import Miner from '../lib/Miner'; -const { app, getCurrentWindow, powerMonitor } = remote; +const { app, powerMonitor } = remote; const defaultLocale = 'en-US'; export default class AppStore extends Store { -- cgit v1.2.3-70-g09d2 From a831c9a57b0d8f1edf4eebc90b24ae794c755b5c Mon Sep 17 00:00:00 2001 From: Stefan Malzner Date: Fri, 27 Oct 2017 15:48:44 +0200 Subject: fix(Shortcuts): Use `Alt+[0-9]` for tab switching on Linux` Fixes #148 --- src/lib/Menu.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/lib/Menu.js b/src/lib/Menu.js index 37f3dd45d..3f2c9741b 100644 --- a/src/lib/Menu.js +++ b/src/lib/Menu.js @@ -1,7 +1,7 @@ import { remote, shell } from 'electron'; import { autorun, computed, observable, toJS } from 'mobx'; -import { isMac } from '../environment'; +import { isMac, isLinux } from '../environment'; const { app, Menu } = remote; @@ -242,9 +242,10 @@ export default class FranzMenu { const services = this.stores.services.enabled; if (this.stores.user.isLoggedIn) { + const systemAcceleratorKey = isLinux ? 'Alt' : 'CmdOrCtrl'; return services.map((service, i) => ({ label: service.name, - accelerator: i <= 9 ? `CmdOrCtrl+${i + 1}` : null, + accelerator: i <= 9 ? `${systemAcceleratorKey}+${i + 1}` : null, type: 'radio', checked: service.isActive, click: () => { -- cgit v1.2.3-70-g09d2 From 857f0c2abe562252d5e514d932a57b038b7d38b6 Mon Sep 17 00:00:00 2001 From: Stefan Malzner Date: Fri, 27 Oct 2017 16:08:48 +0200 Subject: Add Linux specific definition for shortcut preview --- src/environment.js | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/environment.js b/src/environment.js index e185120c0..7bb2db134 100644 --- a/src/environment.js +++ b/src/environment.js @@ -8,7 +8,16 @@ export const isMac = process.platform === 'darwin'; export const isWindows = process.platform === 'win32'; export const isLinux = process.platform === 'linux'; -export const ctrlKey = isMac ? '⌘' : 'Ctrl'; +let ctrlShortcutKey; +if (isMac) { + ctrlShortcutKey = '⌘'; +} else if (isWindows) { + ctrlShortcutKey = 'Ctrl'; +} else { + ctrlShortcutKey = 'Alt'; +} + +export const ctrlKey = ctrlShortcutKey; let api; if (!isDevMode || (isDevMode && useLiveAPI)) { -- cgit v1.2.3-70-g09d2 From f49db68847aed55c2d09ec81785318f450c6bc1f Mon Sep 17 00:00:00 2001 From: Danny Qiu Date: Fri, 27 Oct 2017 11:44:56 -0400 Subject: Update electron-spellchecker dependency --- yarn.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/yarn.lock b/yarn.lock index 4e596b555..a01368a4a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -32,8 +32,8 @@ underscore "^1.6.0" "@paulcbetts/spellchecker@^4.0.5": - version "4.0.5" - resolved "https://registry.yarnpkg.com/@paulcbetts/spellchecker/-/spellchecker-4.0.5.tgz#4ea9bfb85faba53c094c0809a18986bf44265c5f" + version "4.0.6" + resolved "https://registry.yarnpkg.com/@paulcbetts/spellchecker/-/spellchecker-4.0.6.tgz#79ef1f9c19c5a3156921ccaa9ffdc3efbbee47e3" dependencies: nan "^2.0.0" -- cgit v1.2.3-70-g09d2 From c007ee31bbe56d44b69b4122c715caabe68efcb5 Mon Sep 17 00:00:00 2001 From: Danny Qiu Date: Fri, 27 Oct 2017 14:00:05 -0400 Subject: Change tray icon on mac theme change --- src/lib/Tray.js | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/src/lib/Tray.js b/src/lib/Tray.js index 525ce592e..2efe71a71 100644 --- a/src/lib/Tray.js +++ b/src/lib/Tray.js @@ -7,6 +7,8 @@ const INDICATOR_TRAY_UNREAD = 'tray-unread'; export default class TrayIcon { trayIcon = null; + indicator = 0; + themeChangeSubscriberId = null; show() { if (this.trayIcon) return; @@ -32,28 +34,43 @@ export default class TrayIcon { this.trayIcon.on('click', () => { app.mainWindow.show(); }); + + if (process.platform === 'darwin') { + this.themeChangeSubscriberId = systemPreferences.subscribeNotification('AppleInterfaceThemeChangedNotification', () => { + this._refreshIcon(); + }); + } } hide() { - if (this.trayIcon) { - this.trayIcon.destroy(); - this.trayIcon = null; + if (!this.trayIcon) return; + + this.trayIcon.destroy(); + this.trayIcon = null; + + if (process.platform === 'darwin' && this.themeChangeSubscriberId) { + systemPreferences.unsubscribeNotification(this.themeChangeSubscriberId); + this.themeChangeSubscriberId = null; } } setIndicator(indicator) { + this.indicator = indicator; + this._refreshIcon(); + } + + _refreshIcon() { if (!this.trayIcon) return; - this.trayIcon.setImage(this._getAsset('tray', indicator !== 0 ? INDICATOR_TRAY_UNREAD : INDICATOR_TRAY_PLAIN)); + this.trayIcon.setImage(this._getAsset('tray', this.indicator !== 0 ? INDICATOR_TRAY_UNREAD : INDICATOR_TRAY_PLAIN)); if (process.platform === 'darwin') { this.trayIcon.setPressedImage( - this._getAsset('tray', `${indicator !== 0 ? INDICATOR_TRAY_UNREAD : INDICATOR_TRAY_PLAIN}-active`), + this._getAsset('tray', `${this.indicator !== 0 ? INDICATOR_TRAY_UNREAD : INDICATOR_TRAY_PLAIN}-active`), ); } } - _getAsset(type, asset) { let platform = process.platform; -- cgit v1.2.3-70-g09d2 From 776a508425638f5bceb0047c067c34e2415a8e84 Mon Sep 17 00:00:00 2001 From: Raino Date: Fri, 27 Oct 2017 20:51:35 +0200 Subject: [translation] Add norwegian translations --- src/i18n/languages.js | 1 + src/i18n/locales/nb-NO.json | 168 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 169 insertions(+) create mode 100644 src/i18n/locales/nb-NO.json diff --git a/src/i18n/languages.js b/src/i18n/languages.js index 9860295b3..0f93d236d 100644 --- a/src/i18n/languages.js +++ b/src/i18n/languages.js @@ -10,4 +10,5 @@ module.exports = { pl: 'Polish', ru: 'Русский', ua: 'Українська', + 'nb-NO': 'Norsk' }; diff --git a/src/i18n/locales/nb-NO.json b/src/i18n/locales/nb-NO.json new file mode 100644 index 000000000..ec0599535 --- /dev/null +++ b/src/i18n/locales/nb-NO.json @@ -0,0 +1,168 @@ +{ + "global.api.unhealthy": "Kan ikke koble til Franz' tjenester", + "global.notConnectedToTheInternet": "Du er ikke koblet til internett.", + "welcome.signupButton": "Opprett en gratis konto", + "welcome.loginButton": "Logg inn til din konto", + "welcome.slogan": "Teksting som funker for deg", + "login.headline": "Logg inn", + "login.email.label": "Email adresse", + "login.password.label": "Passord", + "login.submit.label": "Logg inn", + "login.invalidCredentials": "Ugyldig email eller passord", + "login.tokenExpired": "Din økt utløpte, vennligst logg inn igjen.", + "login.serverLogout": "Din økt utløpte, vennligst logg inn igjen.", + "login.link.signup": "Opprett en gratis konto", + "login.link.password": "Reset passord", + "password.headline": "Reset passord", + "password.email.label": "Email adresse", + "password.submit.label": "Send inn", + "password.noUser": "Ingen bruker med den emailen finnes", + "password.successInfo": "Vennligst sjekk din email", + "password.link.signup": "Opprett en gratis konto", + "password.link.login": "Logg inn til din konto", + "signup.headline": "Registrer deg", + "signup.firstname.label": "Fornavn", + "signup.lastname.label": "Etternavn", + "signup.email.label": "Email adresse", + "signup.company.label": "Firma", + "signup.password.label": "Passord", + "signup.submit.label": "Opprett konto", + "signup.link.login": "Har du allerede en konto? Logg inn", + "signup.emailDuplicate": "En konto med den epost adresse eksiterer allerede", + "signup.legal.info": "Ved å opprette en Franz konto aksepterer du", + "signup.legal.terms": "Vilkår for bruk", + "signup.legal.privacy": "Personvern", + "pricing.headline": "Støtt Franz", + "pricing.support.label": "Velg din støtteplan", + "pricing.submit.label": "Jeg vil støtte utviklingen av Franz", + "pricing.link.skipPayment": "Jeg vil ikke støtte utviklingen av Franz.", + "import.headline": "Importer dine Franz 4 tjenester", + "import.notSupportedHeadline": "Tjenester ikke enda støttet i Franz 5", + "import.submit.label": "Importer tjenester", + "import.skip.label": "Jeg vil legge til en tjeneste manuelt", + "invite.submit.label": "Send invitasjoner", + "invite.headline.friends": "Inviter 3 av dine venner eller kolleger", + "invite.name.label": "Navn", + "invite.email.label": "Email adresse", + "invite.skip.label": "Jeg vil gjøre dette senere", + "subscription.submit.label": "Jeg vil ikke støtte utviklingen av Franz", + "subscription.paymentSessionError": "Kunne ikke laste betalingsskjemaet", + "subscription.includedFeatures": "Betalte Franz Premium konto inkluderer", + "subscription.features.onpremise": "Legg til on-premise/hosted tjenester som HipChat", + "subscription.features.customServices": "Private tjenester for deg og ditt lag", + "subscription.features.encryptedSync": "Kryptert øktsynkronisering", + "subscription.features.vpn": "Proxy & VPN støtte", + "subscription.features.ads": "Ingen annonser, noensinne!", + "subscription.features.comingSoon": "Kommer snart", + "infobar.servicesUpdated": "Dine tjenester er oppdatert.", + "infobar.updateAvailable": "En ny oppdatering for Franz er tilgjengelig.", + "infobar.buttonReloadServices": "Oppdater tjenester", + "infobar.buttonInstallUpdate": "Restart & installer oppdatering", + "infobar.requiredRequestsFailed": "Kunne ikke laste tjenester og brukerinformasjon", + "sidebar.settings": "Innstillinger", + "services.welcome": "Velkommen til Franz", + "services.getStarted": "Kom i gang", + "settings.account.headline": "Konto", + "settings.account.headlineSubscription": "Ditt abonnement", + "settings.account.headlineUpgrade": "Oppgrader din konto og støtt Franz", + "settings.account.headlineInvoices": "Fakturaer", + "settings.account.manageSubscription.label": "Administrer dine abonnement", + "settings.account.accountType.basic": "Enkel Konto", + "settings.account.accountType.premium": "Premium Konto", + "settings.account.account.editButton": "Rediger konto", + "settings.account.invoiceDownload": "Last ned", + "settings.account.userInfoRequestFailed": "Kunne ikke laste brukerinformasjon", + "settings.account.tryReloadUserInfoRequest": "Prøv igjen", + "settings.account.headlineProfile": "Oppdater profil", + "settings.account.headlineAccount": "Kontoinformasjon", + "settings.account.headlinePassword": "Endre passord", + "settings.account.successInfo": "Dine endringer er lagret", + "settings.account.buttonSave": "Oppdater profil", + "settings.account.mining.thankyou": "Takk for at du støtter Franz med din prosessorkraft.", + "settings.account.mining.active": "Du utfører nå {hashes} beregninger per sekund.", + "settings.account.mining.moreInformation": "Få mer informasjon", + "settings.account.mining.cancel": "Avbryt mining", + "settings.navigation.availableServices": "Tilgjengelige tjenester", + "settings.navigation.yourServices": "Dine tjenester", + "settings.navigation.account": "Konto", + "settings.navigation.settings": "Innstillinger", + "settings.navigation.logout": "Logg ut", + "settings.recipes.headline": "Tilgjengelige tjenester", + "settings.recipes.mostPopular": "Mest populære", + "settings.recipes.all": "Alle tjenester", + "settings.recipes.dev": "Utvikling", + "settings.recipes.nothingFound": "Beklager, men ingen tjeneste samsvarer med søkeordet ditt.", + "settings.recipes.servicesSuccessfulAddedInfo": "Tjenesten ble lagt til", + "settings.service.form.saveButton": "Lagre tjeneste", + "settings.service.form.deleteButton": "Slett tjeneste", + "settings.service.form.availableServices": "Tilgjengelige tjenester", + "settings.service.form.yourServices": "Dine tjenester", + "settings.service.form.addServiceHeadline": "Legg til {name}", + "settings.service.form.editServiceHeadline": "Rediger {name}", + "settings.service.form.tabHosted": "Hosted", + "settings.service.form.tabOnPremise": "Selv hosted ⭐️", + "settings.service.form.customUrlValidationError": "Kunne ikke validere egendefinert {name} server.", + "settings.service.form.customUrlPremiumInfo": "For å legge til selvhost-baserte tjenester trenger du en Franz Premium konto.", + "settings.service.form.customUrlUpgradeAccount": "Oppgrader din konto", + "settings.service.form.indirectMessageInfo": "Du vil bli varslet om alle nye meldinger i en kanal, ikke bare @brukernavn, @kanal, @here, ...", + "settings.service.error.headline": "Error", + "settings.service.error.goBack": "Tilbake til tjenester", + "settings.service.error.message": "Kunne ikke laste tjeneste oppskrift.", + "settings.services.tooltip.isDisabled": "Tjenesten er deaktivert", + "settings.services.tooltip.notificationsDisabled": "Varsler er deaktivert", + "settings.services.headline": "Dine tjenester", + "settings.services.noServicesAdded": "Du har ikke lagt til noen tjenester enda.", + "settings.services.discoverServices": "Oppdag tjenester", + "settings.services.updatedInfo": "Dine endringer er lagret", + "settings.services.deletedInfo": "Tjenester har blitt slettet", + "settings.app.headline": "Innstillinger", + "settings.app.headlineGeneral": "Genelert", + "settings.app.headlineLanguage": "Språk", + "settings.app.headlineUpdates": "Oppdateringer", + "settings.app.buttonSearchForUpdate": "Se etter oppdateringer", + "settings.app.buttonInstallUpdate": "Restart & installer oppdatering", + "settings.app.updateStatusSearching": "Søker etter en oppdatering", + "settings.app.updateStatusAvailable": "Oppdatering tilgjengelig, laster ned...", + "settings.app.updateStatusUpToDate": "Du bruker siste versjon av Franz", + "settings.app.form.autoLaunchOnStart": "Start Franz ved oppstart", + "settings.app.form.autoLaunchInBackground": "Åpne i bakgrunnen", + "settings.app.form.enableSystemTray": "Vis Franz i systemfeltet", + "settings.app.form.minimizeToSystemTray": "Minimer Franz til systemfeltet", + "settings.app.form.runInBackground": "Behold Franz i bakgrunnen når du lukker vinduet", + "settings.app.form.language": "Språk", + "settings.app.form.beta": "Inkluder beta versjoner", + "settings.app.currentVersion": "Gjeldende versjon:", + "settings.service.form.name": "Navn", + "settings.service.form.enableService": "Slå på tjeneste", + "settings.service.form.enableNotification": "Slå på varsler", + "settings.service.form.team": "Lag", + "settings.service.form.customUrl": "Egendefinert server", + "settings.service.form.indirectMessages": "Vis merke for alle nye meldinger", + "settings.user.form.firstname": "Fornavn", + "settings.user.form.lastname": "Etternavn", + "settings.user.form.email": "Email", + "settings.user.form.currentPassword": "Gjeldende passord", + "settings.user.form.newPassword": "Nytt passord", + "settings.user.form.accountType.label": "Konto type", + "settings.user.form.accountType.individual": "Individuell", + "settings.user.form.accountType.non-profit": "Non-Profit", + "settings.user.form.accountType.company": "Firma", + "subscription.type.free": "gratis", + "subscription.type.month": "måned", + "subscription.type.year": "år", + "subscription.type.mining": "Støtt Franz med prosessorkraft", + "subscription.mining.headline": "Hvordan fungerer dette?", + "subscription.mining.experimental": "eksperimental", + "subscription.mining.line1": "Ved å aktivere \"Støtt Franz med prosessorkraft\" vil Franz bruke cirka 20-50% av prosessore din til å mine kryptovalutaen Monero, som vil tilsvare omtrent $5/år", + "subscription.mining.line2": "Vi vil tilpasse prosessor bruken basert på arbeidsadferd for å ikke tømme batteriet og senke hastigheten på maskinen din.", + "subscription.mining.line3": "Så lenge du miner, har du ubegrenset tilgang til alle Franz Premium funksjoner.", + "subscription.mining.moreInformation": "Få mer informasjon om denne planen.", + "subscriptionPopup.buttonCancel": "Kanseller", + "subscriptionPopup.buttonDone": "Ferdig", + "tabs.item.reload": "Reload", + "tabs.item.edit": "Rediger", + "tabs.item.disableNotifications": "Deaktiver varsler", + "tabs.item.enableNotification": "Aktiver varsler", + "tabs.item.disableService": "Deaktiver tjeneste", + "tabs.item.deleteService": "Slett tjeneste" +} -- cgit v1.2.3-70-g09d2 From e46f492d72445243fc380ada829c6cf25f0ce35a Mon Sep 17 00:00:00 2001 From: Raino Date: Fri, 27 Oct 2017 21:06:53 +0200 Subject: Add missing trailing comma --- src/i18n/languages.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/i18n/languages.js b/src/i18n/languages.js index 4d9707a13..ceaa42bc8 100644 --- a/src/i18n/languages.js +++ b/src/i18n/languages.js @@ -12,5 +12,5 @@ module.exports = { ua: 'Українська', 'es-ES': 'Español - España', 'zh-Hant': 'Chinese (Traditional)', - 'nb-NO': 'Norsk' + 'nb-NO': 'Norsk', }; -- cgit v1.2.3-70-g09d2 From 47681c90b0067d8b979f1a88253973fea49741bc Mon Sep 17 00:00:00 2001 From: Gustavo Sampaio Date: Fri, 27 Oct 2017 22:35:44 -0300 Subject: Add onNotify event to let recipes update/change notifications before send them. Add additional checks in ServiceStore. --- src/stores/ServicesStore.js | 5 ++++- src/webview/lib/RecipeWebview.js | 6 ++++++ src/webview/notifications.js | 8 +++++--- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/stores/ServicesStore.js b/src/stores/ServicesStore.js index 4510146e0..7e797ce55 100644 --- a/src/stores/ServicesStore.js +++ b/src/stores/ServicesStore.js @@ -295,9 +295,12 @@ export default class ServicesStore extends Store { } if (service.isNotificationEnabled) { + const title = typeof args[0].title === 'string' ? args[0].title : service.name; + options.body = typeof options.body === 'string' ? options.body : ''; + this.actions.app.notify({ notificationId: args[0].notificationId, - title: args[0].title, + title, options, serviceId, }); diff --git a/src/webview/lib/RecipeWebview.js b/src/webview/lib/RecipeWebview.js index 1787f85e2..b8acc1258 100644 --- a/src/webview/lib/RecipeWebview.js +++ b/src/webview/lib/RecipeWebview.js @@ -64,6 +64,12 @@ class RecipeWebview { }); } + onNotify(fn) { + if (typeof fn === 'function') { + window.Notification.onNotify = fn; + } + } + initialize(fn) { if (typeof fn === 'function') { fn(); diff --git a/src/webview/notifications.js b/src/webview/notifications.js index 97ce9d69b..b3397148d 100644 --- a/src/webview/notifications.js +++ b/src/webview/notifications.js @@ -7,13 +7,13 @@ class Notification { this.title = title; this.options = options; this.notificationId = uuidV1(); - this.onclick = () => {}; + this.onclick = () => { }; - ipcRenderer.sendToHost('notification', { + ipcRenderer.sendToHost('notification', Notification.onNotify({ notificationId: this.notificationId, title, options, - }); + })); ipcRenderer.on(`notification-onclick:${this.notificationId}`, () => { this.onclick(); @@ -42,4 +42,6 @@ Notification.close = () => { // no implementation yet }; +Notification.onNotify = data => data; + window.Notification = Notification; -- cgit v1.2.3-70-g09d2 From ab348cc2b104f1a1fb6dccb3c10ecc977743a53c Mon Sep 17 00:00:00 2001 From: dnlup Date: Sat, 28 Oct 2017 22:11:19 +0200 Subject: feat(locales): Add italian translation --- src/i18n/languages.js | 1 + src/i18n/locales/it.json | 168 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 169 insertions(+) create mode 100644 src/i18n/locales/it.json diff --git a/src/i18n/languages.js b/src/i18n/languages.js index 9860295b3..aefdca783 100644 --- a/src/i18n/languages.js +++ b/src/i18n/languages.js @@ -10,4 +10,5 @@ module.exports = { pl: 'Polish', ru: 'Русский', ua: 'Українська', + it: 'Italian' }; diff --git a/src/i18n/locales/it.json b/src/i18n/locales/it.json new file mode 100644 index 000000000..dd87599bb --- /dev/null +++ b/src/i18n/locales/it.json @@ -0,0 +1,168 @@ +{ + "global.api.unhealthy": "Impossibile connettersi ai servizi online di Franz", + "global.notConnectedToTheInternet": "Non sei connesso ad internet.", + "welcome.signupButton": "Iscriviti gratis", + "welcome.loginButton": "Accedi", + "welcome.slogan": "Messagistica che lavora per te", + "login.headline": "Accedi", + "login.email.label": "Indirizzo email", + "login.password.label": "Password", + "login.submit.label": "Accedi", + "login.invalidCredentials": "Email o password non validi", + "login.tokenExpired": "La tua sessione è scaduta, accedi di nuovo per favore.", + "login.serverLogout": "La tua sessione è scaduta, accedi di nuovo per favore.", + "login.link.signup": "Iscriviti gratis", + "login.link.password": "Reimposta password", + "password.headline": "Reimposta password", + "password.email.label": "Indirizzo email", + "password.submit.label": "Invia", + "password.noUser": "Non è stato trovato nessun utente con questa email", + "password.successInfo": "Per favore controlla la tua email", + "password.link.signup": "Iscriviti gratis", + "password.link.login": "Accedi", + "signup.headline": "Accedi", + "signup.firstname.label": "Nome", + "signup.lastname.label": "Cognome", + "signup.email.label": "Indirizzo email", + "signup.company.label": "Azienda", + "signup.password.label": "Password", + "signup.submit.label": "Registrati", + "signup.link.login": "Hai già fatto l'iscrizione? Accedi", + "signup.emailDuplicate": "Esiste già un utente con questo indirizzo email", + "signup.legal.info": "Iscrivendoti a Franz accetti", + "signup.legal.terms": "Termini di servizio", + "signup.legal.privacy": "Informativa sulla Privacy", + "pricing.headline": "Supporta Franz", + "pricing.support.label": "Seleziona il tuo piano di sostegno", + "pricing.submit.label": "Voglio sostenere lo sviluppo di Franz", + "pricing.link.skipPayment": "Non voglio sostenere lo sviluppo Franz.", + "import.headline": "Importa i tuoi servizi di Franz 4", + "import.notSupportedHeadline": "Servzi non ancora supportati in Franz 5", + "import.submit.label": "Importa servizi", + "import.skip.label": "Voglio aggiungere i servizi a mano", + "invite.submit.label": "Manda inviti", + "invite.headline.friends": "Invita 3 dei tuoi amici o colleghi", + "invite.name.label": "Nome", + "invite.email.label": "Indirizzo email", + "invite.skip.label": "Voglio farlo dopo", + "subscription.submit.label": "Voglio sostenere lo sviluppo di Franz", + "subscription.paymentSessionError": "Impossibile inizializzare il modulo di pagamento", + "subscription.includedFeatures": "La sottoscrizione a pagamento Franz Premium Supporter include", + "subscription.features.onpremise": "Agiunge servizi on-premise/hosted come HipChat", + "subscription.features.customServices": "Servizi privati per te ed il tuo team", + "subscription.features.encryptedSync": "Sincronizzazione sessione crittografata", + "subscription.features.vpn": "Supporto di Proxy e VPN", + "subscription.features.ads": "Nessuna pubblicità", + "subscription.features.comingSoon": "Presto disponibile", + "infobar.servicesUpdated": "I tuoi servizi sono stati aggiornati.", + "infobar.updateAvailable": "È disponibile un nuovo aggiornamento per Franz.", + "infobar.buttonReloadServices": "Ricarica i servizi", + "infobar.buttonInstallUpdate": "Riavvia e installa l'aggiornamento", + "infobar.requiredRequestsFailed": "Impossibile caricare i servizi e le informazioni dell'utente", + "sidebar.settings": "Impostazioni", + "services.welcome": "Benvenuto in Franz", + "services.getStarted": "Inizia", + "settings.account.headline": "Conto", + "settings.account.headlineSubscription": "La tua sottoscrizione", + "settings.account.headlineUpgrade": "Aggiorna il tuo conto e supporta Franz", + "settings.account.headlineInvoices": "Fatture", + "settings.account.manageSubscription.label": "Gestisci la tua sottoscrizione", + "settings.account.accountType.basic": "Conto Base", + "settings.account.accountType.premium": "Conto Premium Supporter", + "settings.account.account.editButton": "Modifica conto", + "settings.account.invoiceDownload": "Scarica", + "settings.account.userInfoRequestFailed": "Impossibile caricare le informazioni dell'utente", + "settings.account.tryReloadUserInfoRequest": "Prova ancora", + "settings.account.headlineProfile": "Aggiorna profilo", + "settings.account.headlineAccount": "Informazioni sul conto", + "settings.account.headlinePassword": "Cambia la password", + "settings.account.successInfo": "Le tue modifiche sono state salvate", + "settings.account.buttonSave": "Aggiorna profilo", + "settings.account.mining.thankyou": "Grazie per supportare Franz con la tua potenza di calcolo.", + "settings.account.mining.active": "Al momento stai eseguendo {hashes} calcoli al secondo.", + "settings.account.mining.moreInformation": "Ottieni piú informazioni", + "settings.account.mining.cancel": "Annulla mining", + "settings.navigation.availableServices": "Servizi disponibili", + "settings.navigation.yourServices": "I tuoi servizi", + "settings.navigation.account": "Conto", + "settings.navigation.settings": "Impostazioni", + "settings.navigation.logout": "Disconnetti", + "settings.recipes.headline": "Servizi disponibili", + "settings.recipes.mostPopular": "Piú popolari", + "settings.recipes.all": "Tutti i servizi", + "settings.recipes.dev": "Sviluppo", + "settings.recipes.nothingFound": "Mi dispiace, nessuno servizio corrisponde alla tua ricerca.", + "settings.recipes.servicesSuccessfulAddedInfo": "Servizio aggiunto con successo", + "settings.service.form.saveButton": "Salva servizio", + "settings.service.form.deleteButton": "Elimina servizio", + "settings.service.form.availableServices": "Servizi disponibili", + "settings.service.form.yourServices": "I tuoi servizi", + "settings.service.form.addServiceHeadline": "Aggiungi {name}", + "settings.service.form.editServiceHeadline": "Modifica {name}", + "settings.service.form.tabHosted": "Hosted", + "settings.service.form.tabOnPremise": "Self hosted ⭐️", + "settings.service.form.customUrlValidationError": "Impossibile validare il server personale {name}.", + "settings.service.form.customUrlPremiumInfo": "Per aggiungere servizi self hosted devi avere un conto Franz Premium Supporter.", + "settings.service.form.customUrlUpgradeAccount": "Aggiorna il tuo conto", + "settings.service.form.indirectMessageInfo": "Riceverai notifiche per tutti i nuovi messaggi in un canale, non solo @username, @channel, @here, ...", + "settings.service.error.headline": "Errore", + "settings.service.error.goBack": "Torna ai servizi", + "settings.service.error.message": "Impossibile caricare le specifiche del servizio.", + "settings.services.tooltip.isDisabled": "Il servizio è disabilitato", + "settings.services.tooltip.notificationsDisabled": "Le notifiche sono disabilitate", + "settings.services.headline": "I tuoi servizi", + "settings.services.noServicesAdded": "Non hai ancora aggiunto nessun servizio.", + "settings.services.discoverServices": "Trova servizi", + "settings.services.updatedInfo": "Le tue modifiche sono state salvate", + "settings.services.deletedInfo": "Il servizio è stato eliminato", + "settings.app.headline": "Impostazioni", + "settings.app.headlineGeneral": "Generale", + "settings.app.headlineLanguage": "Lingua", + "settings.app.headlineUpdates": "Aggiornamento", + "settings.app.buttonSearchForUpdate": "Controlla aggiornamento versione", + "settings.app.buttonInstallUpdate": "Riavvia e installa l'aggiornamento", + "settings.app.updateStatusSearching": "Sto cercando l'aggiornamento", + "settings.app.updateStatusAvailable": "Aggiornamento disponibile, scarico...", + "settings.app.updateStatusUpToDate": "You are using the latest version of Franz", + "settings.app.form.autoLaunchOnStart": "Lancia Franz all'avvio", + "settings.app.form.autoLaunchInBackground": "Apri in background", + "settings.app.form.enableSystemTray": "Mostra Franz nella zona delle notifiche di sistema", + "settings.app.form.minimizeToSystemTray": "Minimizza Franz nella zona delle notifiche di sistema", + "settings.app.form.runInBackground": "Maniteni Franz attivo in background quando chiudi la finestra", + "settings.app.form.language": "Lingua", + "settings.app.form.beta": "Includi versioni beta", + "settings.app.currentVersion": "Versione corrente:", + "settings.service.form.name": "Nome", + "settings.service.form.enableService": "Abilita servizio", + "settings.service.form.enableNotification": "Abilita notifiche", + "settings.service.form.team": "Team", + "settings.service.form.customUrl": "Server personale", + "settings.service.form.indirectMessages": "Mostra il badge del messaggio per tutti i nuovi messaggi", + "settings.user.form.firstname": "Nome", + "settings.user.form.lastname": "Cognome", + "settings.user.form.email": "Email", + "settings.user.form.currentPassword": "Password corrente", + "settings.user.form.newPassword": "Nuova password", + "settings.user.form.accountType.label": "Tipo di conto", + "settings.user.form.accountType.individual": "Individuale", + "settings.user.form.accountType.non-profit": "Non-Profit", + "settings.user.form.accountType.company": "Azienda", + "subscription.type.free": "gratis", + "subscription.type.month": "mese", + "subscription.type.year": "anno", + "subscription.type.mining": "Supporta Franz con della potenza di calcolo", + "subscription.mining.headline": "Come funziona?", + "subscription.mining.experimental": "sperimentale", + "subscription.mining.line1": "Abilitando \"Supporta Franz con della potenza di calcolo\",Franz userà circa il 20-50% della tua CPU per fare il mining della criptovaluta Monero che equivale approssimativamente a 5$/anno.", + "subscription.mining.line2": "Adatteremo l'utilizzo della CPU in base all tue abitudini di lavoro per non scaricare la tua batteria e rallentare la tua macchina.", + "subscription.mining.line3": "Fino a che il mining è attivo, avrai accesso illimitato a tutte le funzionalità del conto Franz Premium Supporter.", + "subscription.mining.moreInformation": "Ottieni più informazioni su questo piano.", + "subscriptionPopup.buttonCancel": "Annulla", + "subscriptionPopup.buttonDone": "Fatto", + "tabs.item.reload": "Ricarica", + "tabs.item.edit": "Modifica", + "tabs.item.disableNotifications": "Disabilita le notifiche", + "tabs.item.enableNotification": "Abilita le notifiche", + "tabs.item.disableService": "Disabilita servizio", + "tabs.item.deleteService": "Elimina servizio" +} -- cgit v1.2.3-70-g09d2 From db8515f85f5de3d180df164c762972a11a5bec95 Mon Sep 17 00:00:00 2001 From: dnlup Date: Sat, 28 Oct 2017 22:50:55 +0200 Subject: fix(lint): Fix missing trailing comma Add missing trailing comma after `it` value in franz/src/i18n/languages.js. --- src/i18n/languages.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/i18n/languages.js b/src/i18n/languages.js index aefdca783..83f075c47 100644 --- a/src/i18n/languages.js +++ b/src/i18n/languages.js @@ -10,5 +10,5 @@ module.exports = { pl: 'Polish', ru: 'Русский', ua: 'Українська', - it: 'Italian' + it: 'Italian', }; -- cgit v1.2.3-70-g09d2 From 032bab130a3f6145b0351760bea6e04e9d1e87bc Mon Sep 17 00:00:00 2001 From: Danny Qiu Date: Sun, 29 Oct 2017 18:52:54 -0400 Subject: Reset setting status when navigating away from services screen --- src/actions/service.js | 1 + src/containers/settings/ServicesScreen.js | 2 ++ src/stores/ServicesStore.js | 5 +++++ 3 files changed, 8 insertions(+) diff --git a/src/actions/service.js b/src/actions/service.js index cdd4bbf16..ea6ea5acc 100644 --- a/src/actions/service.js +++ b/src/actions/service.js @@ -63,6 +63,7 @@ export default { needle: PropTypes.string.isRequired, }, resetFilter: {}, + resetStatus: {}, reorder: { oldIndex: PropTypes.number.isRequired, newIndex: PropTypes.number.isRequired, diff --git a/src/containers/settings/ServicesScreen.js b/src/containers/settings/ServicesScreen.js index d0580041f..8cfe5efbf 100644 --- a/src/containers/settings/ServicesScreen.js +++ b/src/containers/settings/ServicesScreen.js @@ -18,6 +18,7 @@ export default class ServicesScreen extends Component { componentWillUnmount() { this.props.actions.service.resetFilter(); + this.props.actions.service.resetStatus(); } deleteService() { @@ -70,6 +71,7 @@ ServicesScreen.wrappedComponent.propTypes = { toggleService: PropTypes.func.isRequired, filter: PropTypes.func.isRequired, resetFilter: PropTypes.func.isRequired, + resetStatus: PropTypes.func.isRequired, }).isRequired, }).isRequired, }; diff --git a/src/stores/ServicesStore.js b/src/stores/ServicesStore.js index 4510146e0..64e6bb42b 100644 --- a/src/stores/ServicesStore.js +++ b/src/stores/ServicesStore.js @@ -41,6 +41,7 @@ export default class ServicesStore extends Store { this.actions.service.openWindow.listen(this._openWindow.bind(this)); this.actions.service.filter.listen(this._filter.bind(this)); this.actions.service.resetFilter.listen(this._resetFilter.bind(this)); + this.actions.service.resetStatus.listen(this._resetStatus.bind(this)); this.actions.service.reload.listen(this._reload.bind(this)); this.actions.service.reloadActive.listen(this._reloadActive.bind(this)); this.actions.service.reloadAll.listen(this._reloadAll.bind(this)); @@ -338,6 +339,10 @@ export default class ServicesStore extends Store { this.filterNeedle = null; } + @action _resetStatus() { + this.actionStatus = []; + } + @action _reload({ serviceId }) { const service = this.one(serviceId); service.resetMessageCount(); -- cgit v1.2.3-70-g09d2 From 7c7d27d4e0e52b8da22f973e10bbb34f4b8a433c Mon Sep 17 00:00:00 2001 From: Stefan Malzner Date: Mon, 30 Oct 2017 14:48:48 +0100 Subject: fix(Service Import): Fix issue with import of on-premise services --- src/stores/ServicesStore.js | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/stores/ServicesStore.js b/src/stores/ServicesStore.js index 2ddeeffd4..1d895d532 100644 --- a/src/stores/ServicesStore.js +++ b/src/stores/ServicesStore.js @@ -145,12 +145,12 @@ export default class ServicesStore extends Store { serviceData.name = data.name; } - if (data.team) { + if (data.team && !data.customURL) { serviceData.team = data.team; } - if (data.team) { - serviceData.customUrl = data.customURL; + if (data.team && data.customURL) { + serviceData.customUrl = data.team; } this.actions.service.createService({ @@ -158,8 +158,6 @@ export default class ServicesStore extends Store { serviceData, redirect: false, }); - - return 'hello world'; } @action async _updateService({ serviceId, serviceData, redirect = true }) { -- cgit v1.2.3-70-g09d2 From 9593b28a7b2c3aa4adb6ccca5d4d2d5bf0b95017 Mon Sep 17 00:00:00 2001 From: Stefan Malzner Date: Mon, 30 Oct 2017 22:52:03 +0100 Subject: Recipe Notification API refactor Fixes: #104 --- src/webview/notifications.js | 41 ++++++++++++++++++++--------------------- 1 file changed, 20 insertions(+), 21 deletions(-) diff --git a/src/webview/notifications.js b/src/webview/notifications.js index b3397148d..4055b10de 100644 --- a/src/webview/notifications.js +++ b/src/webview/notifications.js @@ -1,47 +1,46 @@ const { ipcRenderer } = require('electron'); const uuidV1 = require('uuid/v1'); -// const FranzNotificationStore = []; class Notification { + static permission = 'granted'; + constructor(title = '', options = {}) { this.title = title; this.options = options; this.notificationId = uuidV1(); - this.onclick = () => { }; - ipcRenderer.sendToHost('notification', Notification.onNotify({ + ipcRenderer.sendToHost('notification', this.onNotify({ notificationId: this.notificationId, title, options, })); - ipcRenderer.on(`notification-onclick:${this.notificationId}`, () => { + ipcRenderer.once(`notification-onclick:${this.notificationId}`, () => { this.onclick(); }); } -} -Notification.permission = 'granted'; + static requestPermission(cb = null) { + if (!cb) { + return new Promise((resolve) => { + resolve(Notification.permission); + }); + } -Notification.requestPermission = (cb = null) => { - console.log(this); - if (!cb) { - return new Promise((resolve) => { - resolve(Notification.permission); - }); - } + if (typeof (cb) === 'function') { + return cb(Notification.permission); + } - if (typeof (cb) === 'function') { - return cb(Notification.permission); + return Notification.permission; } - return Notification.permission; -}; + onNotify(data) { + return data; + } -Notification.close = () => { - // no implementation yet -}; + onClick() {} -Notification.onNotify = data => data; + close() {} +} window.Notification = Notification; -- cgit v1.2.3-70-g09d2 From 11a23cfc46b801aedce7d389beaec3997cdf5a73 Mon Sep 17 00:00:00 2001 From: Stefan Date: Thu, 2 Nov 2017 23:10:34 +0100 Subject: Test window.show instead of restore --- src/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/index.js b/src/index.js index 030736fee..361ad59db 100644 --- a/src/index.js +++ b/src/index.js @@ -32,7 +32,7 @@ if (isWindows) { if (process.platform !== 'darwin') { const isSecondInstance = app.makeSingleInstance(() => { if (mainWindow) { - if (mainWindow.isMinimized()) mainWindow.restore(); + if (mainWindow.isMinimized()) mainWindow.show(); mainWindow.focus(); } }); -- cgit v1.2.3-70-g09d2 From 28e993ee7cdf35019919d14b24408dd42979d8a7 Mon Sep 17 00:00:00 2001 From: Stefan Malzner Date: Fri, 3 Nov 2017 00:15:43 +0100 Subject: Start from pinned icon --- package.json | 1 - src/index.js | 9 +++------ 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index dcb05bf6a..56c02ddf2 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,6 @@ "classnames": "^2.2.5", "electron-fetch": "^1.1.0", "electron-spellchecker": "^1.2.0", - "electron-squirrel-startup": "^1.0.0", "electron-updater": "^2.4.3", "electron-window-state": "^4.1.0", "fs-extra": "^3.0.1", diff --git a/src/index.js b/src/index.js index 361ad59db..a6c7e1d85 100644 --- a/src/index.js +++ b/src/index.js @@ -2,18 +2,14 @@ import { app, BrowserWindow, shell } from 'electron'; import fs from 'fs-extra'; import path from 'path'; -/* eslint-disable */ -if (require('electron-squirrel-startup')) app.quit(); - import windowStateKeeper from 'electron-window-state'; import { isDevMode, isWindows } from './environment'; import ipcApi from './electron/ipc-api'; import Tray from './lib/Tray'; import Settings from './electron/Settings'; -import { appId } from './package.json'; +import { appId } from './package.json'; // eslint-disable-line import/no-unresolved import './electron/exception'; -/* eslint-enable */ // Keep a global reference of the window object, if you don't, the window will // be closed automatically when the JavaScript object is garbage collected. @@ -32,9 +28,10 @@ if (isWindows) { if (process.platform !== 'darwin') { const isSecondInstance = app.makeSingleInstance(() => { if (mainWindow) { - if (mainWindow.isMinimized()) mainWindow.show(); + if (mainWindow.isMinimized()) mainWindow.restore(); mainWindow.focus(); } + return true; }); if (isSecondInstance) { -- cgit v1.2.3-70-g09d2 From 777814aa713e5093de52cb9c4c1cbf754b9e8289 Mon Sep 17 00:00:00 2001 From: Stefan Date: Fri, 3 Nov 2017 10:27:14 +0100 Subject: fix(Windows): Open Window when app is pinned to taskbar and minimized to system tray --- src/index.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/index.js b/src/index.js index a6c7e1d85..a72d76f3a 100644 --- a/src/index.js +++ b/src/index.js @@ -31,7 +31,6 @@ if (process.platform !== 'darwin') { if (mainWindow.isMinimized()) mainWindow.restore(); mainWindow.focus(); } - return true; }); if (isSecondInstance) { @@ -111,6 +110,13 @@ const createWindow = async () => { app.isMaximized = true; }); + mainWindow.on('close', (e) => { + if (settings.get('minimizeToSystemTray')) { + e.preventDefault(); + mainWindow.minimize(); + } + }); + mainWindow.on('unmaximize', () => { app.isMaximized = false; }); -- cgit v1.2.3-70-g09d2 From 34bba092fc7bfa828339d445385144535066b03b Mon Sep 17 00:00:00 2001 From: Stefan Malzner Date: Fri, 3 Nov 2017 16:15:48 +0100 Subject: fix(macOS): Fix launch Franz on start override --- package.json | 1 + src/stores/AppStore.js | 67 ++++++++++++++++++-------------------------------- yarn.lock | 28 ++++++++++++++++----- 3 files changed, 47 insertions(+), 49 deletions(-) diff --git a/package.json b/package.json index 56c02ddf2..1c0aad789 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "license": "Apache-2.0", "dependencies": { "@paulcbetts/system-idle-time": "^1.0.4", + "auto-launch": "https://github.com/meetfranz/node-auto-launch.git", "babel-polyfill": "^6.23.0", "babel-runtime": "^6.23.0", "classnames": "^2.2.5", diff --git a/src/stores/AppStore.js b/src/stores/AppStore.js index f608a689e..d8ef66a92 100644 --- a/src/stores/AppStore.js +++ b/src/stores/AppStore.js @@ -2,19 +2,23 @@ import { remote, ipcRenderer, shell } from 'electron'; import { action, observable } from 'mobx'; import moment from 'moment'; import key from 'keymaster'; -import path from 'path'; +// import path from 'path'; import idleTimer from '@paulcbetts/system-idle-time'; +import AutoLaunch from 'auto-launch'; import Store from './lib/Store'; import Request from './lib/Request'; import { CHECK_INTERVAL } from '../config'; -import { isMac, isLinux } from '../environment'; +import { isMac } from '../environment'; import locales from '../i18n/translations'; import { gaEvent } from '../lib/analytics'; import Miner from '../lib/Miner'; const { app, powerMonitor } = remote; const defaultLocale = 'en-US'; +const autoLauncher = new AutoLaunch({ + name: 'Franz', +}); export default class AppStore extends Store { updateStatusTypes = { @@ -41,7 +45,7 @@ export default class AppStore extends Store { miner = null; @observable minerHashrate = 0.0; - constructor(...args: any) { + constructor(...args) { super(...args); // Register action handlers @@ -157,28 +161,17 @@ export default class AppStore extends Store { ipcRenderer.send('updateAppIndicator', { indicator }); } - @action _launchOnStartup({ enable, openInBackground }) { + @action _launchOnStartup({ enable }) { this.autoLaunchOnStart = enable; - let settings = { - openAtLogin: enable, - }; - - // For Windows - if (process.platform === 'win32') { - settings = Object.assign({ - openAsHidden: openInBackground, - path: app.getPath('exe'), - args: [ - '--processStart', `"${path.basename(app.getPath('exe'))}"`, - ], - }, settings); - - if (openInBackground) { - settings.args.push( - '--process-start-args', '"--hidden"', - ); + try { + if (enable) { + autoLauncher.enable(); + } else { + autoLauncher.disable(); } + } catch (err) { + console.warn(err); } gaEvent('App', enable ? 'enable autostart' : 'disable autostart'); @@ -287,31 +280,19 @@ export default class AppStore extends Store { } async _autoStart() { - if (!isLinux) { - this._checkAutoStart(); - - // we need to wait until the settings request is resolved - await this.stores.settings.allSettingsRequest; + this.autoLaunchOnStart = await this._checkAutoStart(); - // We don't set autostart on first launch for macOS as disabling - // the option is currently broken - // https://github.com/meetfranz/franz/issues/17 - // https://github.com/electron/electron/issues/10880 - if (process.platform === 'darwin') return; + // we need to wait until the settings request is resolved + await this.stores.settings.allSettingsRequest; - if (!this.stores.settings.all.appStarts) { - this.actions.app.launchOnStartup({ - enable: true, - }); - } + if (!this.stores.settings.all.appStarts) { + this.actions.app.launchOnStartup({ + enable: true, + }); } } - _checkAutoStart() { - const loginItem = app.getLoginItemSettings({ - path: app.getPath('exe'), - }); - - this.autoLaunchOnStart = loginItem.openAtLogin; + async _checkAutoStart() { + return autoLauncher.isEnabled() || false; } } diff --git a/yarn.lock b/yarn.lock index a01368a4a..3bb344a2d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -151,6 +151,10 @@ anymatch@^1.3.0: micromatch "^2.1.5" normalize-path "^2.0.0" +applescript@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/applescript/-/applescript-1.0.0.tgz#bb87af568cad034a4e48c4bdaf6067a3a2701317" + aproba@^1.0.3: version "1.1.2" resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.1.2.tgz#45c6629094de4e96f693ef7eab74ae079c240fc1" @@ -319,6 +323,16 @@ asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" +"auto-launch@https://github.com/meetfranz/node-auto-launch.git": + version "5.0.1" + resolved "https://github.com/meetfranz/node-auto-launch.git#b90a0470467eb84435e6554ae9db1e2c6db79e61" + dependencies: + applescript "^1.0.0" + mkdirp "^0.5.1" + path-is-absolute "^1.0.0" + untildify "^3.0.2" + winreg "1.2.2" + aws-sign2@~0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" @@ -1998,12 +2012,6 @@ electron-spellchecker@^1.2.0: rxjs-serial-subscription "^0.1.1" spawn-rx "^2.0.7" -electron-squirrel-startup@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/electron-squirrel-startup/-/electron-squirrel-startup-1.0.0.tgz#19b4e55933fa0ef8f556784b9c660f772546a0b8" - dependencies: - debug "^2.2.0" - electron-to-chromium@^1.3.18: version "1.3.20" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.20.tgz#2eedd5ccbae7ddc557f68ad1fce9c172e915e4e5" @@ -5949,6 +5957,10 @@ universalify@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.1.tgz#fa71badd4437af4c148841e3b3b165f9e9e590b7" +untildify@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/untildify/-/untildify-3.0.2.tgz#7f1f302055b3fea0f3e81dc78eb36766cb65e3f1" + unzip-response@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" @@ -6133,6 +6145,10 @@ window-size@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.4.tgz#f8e1aa1ee5a53ec5bf151ffa09742a6ad7697876" +winreg@1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/winreg/-/winreg-1.2.2.tgz#8509afa3b71c5bbd110a6d7c6247ec67736c598f" + word-wrap@^1.0.3: version "1.2.3" resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" -- cgit v1.2.3-70-g09d2 From 7343d473cd44e8c5e800f39b9c6325053fbe5699 Mon Sep 17 00:00:00 2001 From: Stefan Malzner Date: Fri, 3 Nov 2017 21:58:12 +0100 Subject: Reset linux shortcuts to Ctrl --- src/environment.js | 11 +---------- src/lib/Menu.js | 3 +-- 2 files changed, 2 insertions(+), 12 deletions(-) diff --git a/src/environment.js b/src/environment.js index 7bb2db134..e185120c0 100644 --- a/src/environment.js +++ b/src/environment.js @@ -8,16 +8,7 @@ export const isMac = process.platform === 'darwin'; export const isWindows = process.platform === 'win32'; export const isLinux = process.platform === 'linux'; -let ctrlShortcutKey; -if (isMac) { - ctrlShortcutKey = '⌘'; -} else if (isWindows) { - ctrlShortcutKey = 'Ctrl'; -} else { - ctrlShortcutKey = 'Alt'; -} - -export const ctrlKey = ctrlShortcutKey; +export const ctrlKey = isMac ? '⌘' : 'Ctrl'; let api; if (!isDevMode || (isDevMode && useLiveAPI)) { diff --git a/src/lib/Menu.js b/src/lib/Menu.js index 6bbf302ca..9f62cc8c2 100644 --- a/src/lib/Menu.js +++ b/src/lib/Menu.js @@ -276,10 +276,9 @@ export default class FranzMenu { const services = this.stores.services.enabled; if (this.stores.user.isLoggedIn) { - const systemAcceleratorKey = isLinux ? 'Alt' : 'CmdOrCtrl'; return services.map((service, i) => ({ label: service.name, - accelerator: i <= 9 ? `${systemAcceleratorKey}+${i + 1}` : null, + accelerator: i <= 9 ? `CmdOrCtrl+${i + 1}` : null, type: 'radio', checked: service.isActive, click: () => { -- cgit v1.2.3-70-g09d2 From a54c87be1ce629cf13a5bfb9c2ba26958e0e4e74 Mon Sep 17 00:00:00 2001 From: Stefan Malzner Date: Fri, 3 Nov 2017 23:22:38 +0100 Subject: Parse recipe author string --- package.json | 1 + src/models/Recipe.js | 16 ++++++++++++++-- yarn.lock | 10 ++++++++++ 3 files changed, 25 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 1c0aad789..fc0954e94 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "license": "Apache-2.0", "dependencies": { "@paulcbetts/system-idle-time": "^1.0.4", + "address-rfc2822": "^2.0.1", "auto-launch": "https://github.com/meetfranz/node-auto-launch.git", "babel-polyfill": "^6.23.0", "babel-runtime": "^6.23.0", diff --git a/src/models/Recipe.js b/src/models/Recipe.js index 43a3450b1..4b613a40c 100644 --- a/src/models/Recipe.js +++ b/src/models/Recipe.js @@ -1,7 +1,8 @@ +import emailParser from 'address-rfc2822'; + export default class Recipe { id = ''; name = ''; - author = ''; description = ''; version = '1.0'; path = ''; @@ -30,7 +31,7 @@ export default class Recipe { this.id = data.id || this.id; this.name = data.name || this.name; - this.author = data.author || this.author; + this.rawAuthor = data.author || this.author; this.description = data.description || this.description; this.version = data.version || this.version; this.path = data.path; @@ -49,4 +50,15 @@ export default class Recipe { this.message = data.config.message || this.message; } + + get author() { + try { + const addresses = emailParser.parse(this.rawAuthor); + return addresses.map(a => ({ email: a.address, name: a.phrase })); + } catch (err) { + console.warn(`Not a valid author for ${this.name}`); + } + + return []; + } } diff --git a/yarn.lock b/yarn.lock index 3bb344a2d..0bedbac27 100644 --- a/yarn.lock +++ b/yarn.lock @@ -80,6 +80,12 @@ acorn@^5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.1.2.tgz#911cb53e036807cf0fa778dc5d370fbd864246d7" +address-rfc2822@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/address-rfc2822/-/address-rfc2822-2.0.1.tgz#1a1bdb942b5e20e2c1ba5d5f396d5824ff7ae6ea" + dependencies: + email-addresses "^3.0.0" + after@0.8.2: version "0.8.2" resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" @@ -2049,6 +2055,10 @@ electron@^1.7.9: electron-download "^3.0.1" extract-zip "^1.0.3" +email-addresses@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/email-addresses/-/email-addresses-3.0.1.tgz#c1fc20c189e7f96d4012d375db5feaccdd24391c" + emojis-list@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" -- cgit v1.2.3-70-g09d2 From 7a9947a08e6acd922787d866ba2ba6fc5a779f82 Mon Sep 17 00:00:00 2001 From: Stefan Malzner Date: Fri, 3 Nov 2017 23:24:36 +0100 Subject: feat(Recipes): Recipe developers don't need Premium Supporter Account for debugging Closes #23 --- src/components/settings/services/EditServiceForm.js | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/components/settings/services/EditServiceForm.js b/src/components/settings/services/EditServiceForm.js index fac0f6b9a..9b359a78e 100644 --- a/src/components/settings/services/EditServiceForm.js +++ b/src/components/settings/services/EditServiceForm.js @@ -69,10 +69,6 @@ const messages = defineMessages({ export default class EditServiceForm extends Component { static propTypes = { recipe: PropTypes.instanceOf(Recipe).isRequired, - // service: PropTypes.oneOfType([ - // PropTypes.object, - // PropTypes.instanceOf(Service), - // ]), service(props, propName) { if (props.action === 'edit' && !(props[propName] instanceof Service)) { return new Error(`'${propName}'' is expected to be of type 'Service' @@ -207,7 +203,7 @@ export default class EditServiceForm extends Component { )} {recipe.hasCustomUrl && ( - {user.isPremium ? ( + {user.isPremium || recipe.author.find(a => a.email === user.email) ? (
    {form.error === 'url-validation-error' && ( -- cgit v1.2.3-70-g09d2 From 71c2d4ecca28ad326ae94578acdfae12742786e3 Mon Sep 17 00:00:00 2001 From: Stefan Malzner Date: Fri, 3 Nov 2017 23:53:43 +0100 Subject: fix eslint issue --- src/lib/Menu.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/Menu.js b/src/lib/Menu.js index 9f62cc8c2..8f0a92c3d 100644 --- a/src/lib/Menu.js +++ b/src/lib/Menu.js @@ -1,7 +1,7 @@ import { remote, shell } from 'electron'; import { autorun, computed, observable, toJS } from 'mobx'; -import { isMac, isLinux } from '../environment'; +import { isMac } from '../environment'; const { app, Menu, dialog } = remote; -- cgit v1.2.3-70-g09d2 From 2e894d6d53a952bfae74f5b6b19040e505765416 Mon Sep 17 00:00:00 2001 From: Stefan Malzner Date: Fri, 3 Nov 2017 23:59:23 +0100 Subject: fix(App): Add checks to service url validation to prevent app freeze --- src/models/Service.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/models/Service.js b/src/models/Service.js index 7a0310ebc..484252e7c 100644 --- a/src/models/Service.js +++ b/src/models/Service.js @@ -58,7 +58,12 @@ export default class Service { @computed get url() { if (this.recipe.hasCustomUrl && this.customUrl) { - let url = normalizeUrl(this.customUrl); + let url; + try { + url = normalizeUrl(this.customUrl); + } catch (err) { + console.error(`Service (${this.recipe.name}): '${this.customUrl}' is not a valid Url.`); + } if (typeof this.recipe.buildUrl === 'function') { url = this.recipe.buildUrl(url); -- cgit v1.2.3-70-g09d2 From def4b27e980da4e32f494c6832c1851e3364a252 Mon Sep 17 00:00:00 2001 From: Stefan Malzner Date: Sat, 4 Nov 2017 00:11:41 +0100 Subject: Improve (dev) recipe loading --- src/api/server/ServerApi.js | 17 ++++++++++++----- src/models/Recipe.js | 3 ++- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/api/server/ServerApi.js b/src/api/server/ServerApi.js index 8b0b7563c..932b70cdc 100644 --- a/src/api/server/ServerApi.js +++ b/src/api/server/ServerApi.js @@ -499,7 +499,7 @@ export default class ServerApi { return recipe; }), - ).catch(err => console.error(err)); + ).catch(err => console.error('Can\'t load recipe', err)); } _mapRecipePreviewModel(recipes) { @@ -562,9 +562,16 @@ export default class ServerApi { .filter(file => fs.statSync(path.join(recipesDirectory, file)).isDirectory() && file !== 'temp'); const recipes = paths.map((id) => { - // eslint-disable-next-line - const Recipe = require(id)(RecipeModel); - return new Recipe(loadRecipeConfig(id)); + let Recipe; + try { + // eslint-disable-next-line + Recipe = require(id)(RecipeModel); + return new Recipe(loadRecipeConfig(id)); + } catch (err) { + console.error(err); + } + + return false; }).filter(recipe => recipe.id).map((data) => { const recipe = data; @@ -579,7 +586,7 @@ export default class ServerApi { return recipes; } catch (err) { - console.debug('Folder `recipe/dev` does not exist'); + console.debug('Could not load dev recipes'); return false; } } diff --git a/src/models/Recipe.js b/src/models/Recipe.js index 4b613a40c..9971df77c 100644 --- a/src/models/Recipe.js +++ b/src/models/Recipe.js @@ -26,7 +26,8 @@ export default class Recipe { } if (!data.id) { - throw Error('Recipe requires Id'); + // Franz 4 recipes do not have an Id + throw Error(`Recipe '${data.name}' requires Id`); } this.id = data.id || this.id; -- cgit v1.2.3-70-g09d2 From 6c32d1ab4a89105cfaae221eeac354efefdbe72c Mon Sep 17 00:00:00 2001 From: Stefan Malzner Date: Sat, 4 Nov 2017 00:28:41 +0100 Subject: Clean recipe temp dir on start --- src/index.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/index.js b/src/index.js index a72d76f3a..a3aa14732 100644 --- a/src/index.js +++ b/src/index.js @@ -18,6 +18,7 @@ let willQuitApp = false; // Ensure that the recipe directory exists fs.ensureDir(path.join(app.getPath('userData'), 'recipes')); +fs.emptyDirSync(path.join(app.getPath('userData'), 'recipes', 'temp')); // Set App ID for Windows if (isWindows) { -- cgit v1.2.3-70-g09d2 From 29e26bab8e9e8ce637c87dd0a33e392233fc3aa7 Mon Sep 17 00:00:00 2001 From: Stefan Date: Sat, 4 Nov 2017 20:24:19 +0100 Subject: Test perMachine: false --- electron-builder.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/electron-builder.yml b/electron-builder.yml index 0a01a03d8..3f7ad1e85 100644 --- a/electron-builder.yml +++ b/electron-builder.yml @@ -29,5 +29,5 @@ linux: - target: deb nsis: - perMachine: true + perMachine: false oneClick: true -- cgit v1.2.3-70-g09d2 From 22fc742ed6d719372e591975a61669a96ba90407 Mon Sep 17 00:00:00 2001 From: Stefan Malzner Date: Sat, 4 Nov 2017 22:18:44 +0100 Subject: Make sure that numeric bages are ints --- src/stores/AppStore.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/stores/AppStore.js b/src/stores/AppStore.js index d8ef66a92..ecfd621d3 100644 --- a/src/stores/AppStore.js +++ b/src/stores/AppStore.js @@ -156,6 +156,8 @@ export default class AppStore extends Store { indicator = '•'; } else if (unreadDirectMessageCount === 0 && unreadIndirectMessageCount === 0) { indicator = 0; + } else { + indicator = parseInt(indicator, 10); } ipcRenderer.send('updateAppIndicator', { indicator }); -- cgit v1.2.3-70-g09d2 From 21e4886b418e7064dc43d15fd39ca0109d039743 Mon Sep 17 00:00:00 2001 From: Stefan Malzner Date: Sun, 5 Nov 2017 21:05:31 +0100 Subject: bump version to beta 12 --- CHANGELOG.md | 22 ++++++++++++++++++++++ package.json | 2 +- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e6551ed51..5b5a0755c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,25 @@ + +# [5.0.0-beta.12](https://github.com/meetfranz/franz/compare/v5.0.0-beta.11...v5.0.0-beta.12) (2017-11-05) + +### Features + +* **Menu:** Add "About Franz" Menu item to Windows/Linux ([a21b770](https://github.com/meetfranz/franz/commit/a21b770)) +* **Menu:** Add menu item to toggle (service) dev tools ([e8da383](https://github.com/meetfranz/franz/commit/e8da383)) +* **Translation:** Add italian translation ([ab348cc](https://github.com/meetfranz/franz/commit/ab348cc)) ([dnlup](https://github.com/dnlup)) + + +### Bug Fixes + +* **App:** Add checks to service url validation to prevent app freeze ([db8515f](https://github.com/meetfranz/franz/commit/db8515f)) +* **macOS:** Fix disable launch Franz on start ([34bba09](https://github.com/meetfranz/franz/commit/34bba09)) +* **Windows:** Launch Franz on start when selected ([34bba09](https://github.com/meetfranz/franz/commit/34bba09)) +* **Onboarding:** Fix issue with import of on-premise services ([7c7d27d](https://github.com/meetfranz/franz/commit/7c7d27d)) +* **Shortcuts:** Flip shortcut to navigate to next/previous service ([37d5923](https://github.com/meetfranz/franz/commit/37d5923)) +* **Windows:** Open Window when app is pinned to taskbar and minimized to system tray ([777814a](https://github.com/meetfranz/franz/commit/777814a)) +* **Recipes:** Recipe developers don't need Premium Supporter Account for debugging ([7a9947a](https://github.com/meetfranz/franz/commit/7a9947a)), closes [#23](https://github.com/meetfranz/franz/issues/23) + + + # [5.0.0-beta.11](https://github.com/meetfranz/franz/compare/v5.0.0-beta.10...v5.0.0-beta.11) (2017-10-24) diff --git a/package.json b/package.json index fc0954e94..057dc6d60 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "franz", "productName": "Franz", "appId": "com.meetfranz.franz", - "version": "5.0.0-beta.11", + "version": "5.0.0-beta.12", "description": "Messaging app for WhatsApp, Slack, Telegram, HipChat, Hangouts and many many more.", "copyright": "adlk x franz - Stefan Malzner", "main": "index.js", -- cgit v1.2.3-70-g09d2