mirror of
https://gitlab.com/timvisee/send.git
synced 2025-12-06 14:10:53 +03:00
Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ecd61830aa | ||
|
|
da82ef814b | ||
|
|
b840173429 | ||
|
|
e1dc1687fc | ||
|
|
3e6a88d31d | ||
|
|
94714ecb62 |
@@ -1,6 +1,9 @@
|
||||
## Change Log
|
||||
|
||||
### upcoming (2018/03/08 19:27 +00:00)
|
||||
### upcoming (2018/03/12 19:25 +00:00)
|
||||
- [#789](https://github.com/mozilla/send/pull/789) Fixed #775 : Made text not-selectable (@RCMainak)
|
||||
|
||||
### v2.5.0 (2018/03/08 19:31 +00:00)
|
||||
- [#782](https://github.com/mozilla/send/pull/782) updated docs (@dannycoates)
|
||||
- [#781](https://github.com/mozilla/send/pull/781) Don't translate URL-safe chars, b64 is doing it for us (@timvisee)
|
||||
- [#779](https://github.com/mozilla/send/pull/779) implemented crypto polyfills for ms edge (@dannycoates)
|
||||
|
||||
@@ -140,6 +140,7 @@ kenrick95
|
||||
manxmensch
|
||||
mirzet.omerovic.1992
|
||||
ravmn
|
||||
rcmainak
|
||||
reza.habibi2008
|
||||
savemore99.sm
|
||||
shikhar-scs
|
||||
|
||||
@@ -110,21 +110,21 @@ export default function(state, emitter) {
|
||||
}
|
||||
await delay(1000);
|
||||
await fadeOut('.page');
|
||||
openLinksInNewTab(links, false);
|
||||
emitter.emit('pushState', `/share/${ownedFile.id}`);
|
||||
} catch (err) {
|
||||
// eslint-disable-next-line no-console
|
||||
console.error(err);
|
||||
|
||||
if (err.message === '0') {
|
||||
//cancelled. do nothing
|
||||
metrics.cancelledUpload({ size, type });
|
||||
return render();
|
||||
render();
|
||||
} else {
|
||||
// eslint-disable-next-line no-console
|
||||
console.error(err);
|
||||
state.raven.captureException(err);
|
||||
metrics.stoppedUpload({ size, type, err });
|
||||
emitter.emit('pushState', '/error');
|
||||
}
|
||||
state.raven.captureException(err);
|
||||
metrics.stoppedUpload({ size, type, err });
|
||||
emitter.emit('pushState', '/error');
|
||||
} finally {
|
||||
openLinksInNewTab(links, false);
|
||||
state.uploading = false;
|
||||
state.transfer = null;
|
||||
}
|
||||
@@ -188,17 +188,18 @@ export default function(state, emitter) {
|
||||
if (err.message === '0') {
|
||||
// download cancelled
|
||||
state.transfer.reset();
|
||||
return render();
|
||||
render();
|
||||
} else {
|
||||
// eslint-disable-next-line no-console
|
||||
console.error(err);
|
||||
state.transfer = null;
|
||||
const location = err.message === '404' ? '/404' : '/error';
|
||||
if (location === '/error') {
|
||||
state.raven.captureException(err);
|
||||
metrics.stoppedDownload({ size, err });
|
||||
}
|
||||
emitter.emit('pushState', location);
|
||||
}
|
||||
// eslint-disable-next-line no-console
|
||||
console.error(err);
|
||||
state.transfer = null;
|
||||
const location = err.message === '404' ? '/404' : '/error';
|
||||
if (location === '/error') {
|
||||
state.raven.captureException(err);
|
||||
metrics.stoppedDownload({ size, err });
|
||||
}
|
||||
emitter.emit('pushState', location);
|
||||
} finally {
|
||||
openLinksInNewTab(links, false);
|
||||
}
|
||||
|
||||
@@ -78,10 +78,11 @@ export default class FileSender extends Nanobus {
|
||||
this.keychain,
|
||||
p => {
|
||||
this.progress = p;
|
||||
this.emit('progress', p);
|
||||
this.emit('progress');
|
||||
}
|
||||
);
|
||||
this.msg = 'fileSizeProgress';
|
||||
this.emit('progress'); // HACK to kick MS Edge
|
||||
try {
|
||||
const result = await this.uploadRequest.result;
|
||||
const time = Date.now() - start;
|
||||
|
||||
@@ -2,7 +2,7 @@ const html = require('choo/html');
|
||||
const assets = require('../../../common/assets');
|
||||
|
||||
module.exports = function(state) {
|
||||
return html`<footer class="footer">
|
||||
const footer = html`<footer class="footer">
|
||||
<div class="legalSection">
|
||||
<a
|
||||
href="https://www.mozilla.org"
|
||||
@@ -61,4 +61,11 @@ module.exports = function(state) {
|
||||
</a>
|
||||
</div>
|
||||
</footer>`;
|
||||
// HACK
|
||||
// We only want to render this once because we
|
||||
// toggle the targets of the links with utils/openLinksInNewTab
|
||||
footer.isSameNode = function(target) {
|
||||
return target && target.nodeName && target.nodeName === 'FOOTER';
|
||||
};
|
||||
return footer;
|
||||
};
|
||||
|
||||
@@ -15,24 +15,32 @@ const browser = browserName();
|
||||
|
||||
module.exports = function(state) {
|
||||
const feedbackUrl = `https://qsurvey.mozilla.com/s3/txp-firefox-send?ver=${version}&browser=${browser}`;
|
||||
return html`<header class="header">
|
||||
<div class="logo">
|
||||
<a class="logo__link" href="/">
|
||||
<img
|
||||
src="${assets.get('send_logo.svg')}"
|
||||
alt="Send"/>
|
||||
<h1 class="logo__title">Send</h1>
|
||||
</a>
|
||||
<div class="logo__subtitle">
|
||||
<a class="logo__subtitle-link" href="https://testpilot.firefox.com">Firefox Test Pilot</a>
|
||||
<div>${state.translate('siteSubtitle')}</div>
|
||||
const header = html`
|
||||
<header class="header">
|
||||
<div class="logo">
|
||||
<a class="logo__link" href="/">
|
||||
<img
|
||||
src="${assets.get('send_logo.svg')}"
|
||||
alt="Send"/>
|
||||
<h1 class="logo__title">Send</h1>
|
||||
</a>
|
||||
<div class="logo__subtitle">
|
||||
<a class="logo__subtitle-link" href="https://testpilot.firefox.com">Firefox Test Pilot</a>
|
||||
<div>${state.translate('siteSubtitle')}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<a href="${feedbackUrl}"
|
||||
rel="noreferrer noopener"
|
||||
class="feedback"
|
||||
target="_blank">${state.translate('siteFeedback')}</a>
|
||||
</header>`;
|
||||
<a href="${feedbackUrl}"
|
||||
rel="noreferrer noopener"
|
||||
class="feedback"
|
||||
target="_blank">${state.translate('siteFeedback')}</a>
|
||||
</header>`;
|
||||
// HACK
|
||||
// We only want to render this once because we
|
||||
// toggle the targets of the links with utils/openLinksInNewTab
|
||||
header.isSameNode = function(target) {
|
||||
return target && target.nodeName && target.nodeName === 'HEADER';
|
||||
};
|
||||
return header;
|
||||
};
|
||||
|
||||
function browserName() {
|
||||
|
||||
@@ -7,6 +7,10 @@ const oDiameter = oRadius * 2;
|
||||
const circumference = 2 * Math.PI * radius;
|
||||
|
||||
module.exports = function(progressRatio, indefinite = false) {
|
||||
// HACK - never indefinite for MS Edge
|
||||
if (/edge/i.test(navigator.userAgent)) {
|
||||
indefinite = false;
|
||||
}
|
||||
const p = indefinite ? 0.2 : progressRatio;
|
||||
const dashOffset = (1 - p) * circumference;
|
||||
const progressPercent = html`
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
line-height: 23px;
|
||||
cursor: pointer;
|
||||
color: var(--lightTextColor);
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.checkbox__label::before {
|
||||
|
||||
2
package-lock.json
generated
2
package-lock.json
generated
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "firefox-send",
|
||||
"version": "2.5.0",
|
||||
"version": "2.5.1",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "firefox-send",
|
||||
"description": "File Sharing Experiment",
|
||||
"version": "2.5.0",
|
||||
"version": "2.5.1",
|
||||
"author": "Mozilla (https://mozilla.org)",
|
||||
"repository": "mozilla/send",
|
||||
"homepage": "https://github.com/mozilla/send/",
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// Firefox Send is a brand name and should not be localized.
|
||||
# Firefox Send is a brand name and should not be localized.
|
||||
title = Firefox Send
|
||||
siteSubtitle = un experimento web
|
||||
siteFeedback = Reaction
|
||||
@@ -39,29 +39,29 @@ copyUrlFormButton = Copiar al area de transferentia
|
||||
copiedUrl = Copiate!
|
||||
deleteFileButton = Deler le file
|
||||
sendAnotherFileLink = Inviar un altere file
|
||||
// Alternative text used on the download link/button (indicates an action).
|
||||
# Alternative text used on the download link/button (indicates an action).
|
||||
downloadAltText = Discargar
|
||||
downloadsFileList = Discargamentos
|
||||
// Used as header in a column indicating the amount of time left before a
|
||||
// download link expires (e.g. "10h 5m")
|
||||
# Used as header in a column indicating the amount of time left before a
|
||||
# download link expires (e.g. "10h 5m")
|
||||
timeFileList = Tempore
|
||||
// Used as header in a column indicating the number of times a file has been
|
||||
// downloaded
|
||||
# Used as header in a column indicating the number of times a file has been
|
||||
# downloaded
|
||||
downloadFileName = Discargar { $filename }
|
||||
downloadFileSize = ({ $size })
|
||||
unlockInputLabel = Insere le contrasigno
|
||||
unlockInputPlaceholder = Contrasigno
|
||||
unlockButtonLabel = Disblocar
|
||||
downloadFileTitle = Discargar le file cryptate
|
||||
// Firefox Send is a brand name and should not be localized.
|
||||
# Firefox Send is a brand name and should not be localized.
|
||||
downloadMessage = Tu amico te invia un file per Firefox Send, un servicio que te permitte de compartir files per un ligamine secur, private e cryptate, que expira automaticamente pro te assecurar que tu datos non resta online per sempre.
|
||||
// Text and title used on the download link/button (indicates an action).
|
||||
# Text and title used on the download link/button (indicates an action).
|
||||
downloadButtonLabel = Discargar
|
||||
downloadNotification = Tu discargamento es completate.
|
||||
downloadFinish = Discargamento completate
|
||||
// This message is displayed when uploading or downloading a file, e.g. "(1,3 MB of 10 MB)".
|
||||
# This message is displayed when uploading or downloading a file, e.g. "(1,3 MB of 10 MB)".
|
||||
fileSizeProgress = ({ $partialSize } de { $totalSize })
|
||||
// Firefox Send is a brand name and should not be localized.
|
||||
# Firefox Send is a brand name and should not be localized.
|
||||
sendYourFilesLink = Proba Firefox Send
|
||||
downloadingPageProgress = Discargamento de { $filename } ({ $size })
|
||||
downloadingPageMessage = Per favor lassa iste scheda aperte durante que nos prende tu file e lo decifra.
|
||||
@@ -73,7 +73,7 @@ fileTooBig = Iste file es troppo grande pro lo cargar. Illo debe ser inferior a
|
||||
linkExpiredAlt = Ligamine expirate
|
||||
expiredPageHeader = Iste ligamine expirava o illo non existeva jammais!
|
||||
notSupportedHeader = Tu navigator non es supportate
|
||||
// Firefox Send is a brand name and should not be localized.
|
||||
# Firefox Send is a brand name and should not be localized.
|
||||
notSupportedDetail = Infelicemente iste navigator non supporta le nove technologias web que move Firefox Send. Tu besonia de probar un altere navigator. Nos recommenda Firefox!
|
||||
notSupportedLink = Perque iste navigator non es supportate?
|
||||
notSupportedOutdatedDetail = Infelicemente iste version de Firefox non supporta le nove technologias web que move Firefox Send. Tu besonia de actualisar tu navigator.
|
||||
@@ -81,7 +81,7 @@ updateFirefox = Actualisar Firefox
|
||||
downloadFirefoxButtonSub = Discargamento gratuite
|
||||
uploadedFile = File
|
||||
copyFileList = Copiar le URL
|
||||
// expiryFileList is used as a column header
|
||||
# expiryFileList is used as a column header
|
||||
expiryFileList = Expira in
|
||||
deleteFileList = Deler
|
||||
nevermindButton = No, gratias
|
||||
@@ -94,7 +94,7 @@ deletePopupCancel = Cancellar
|
||||
deleteButtonHover = Deler
|
||||
copyUrlHover = Copiar le URL
|
||||
footerLinkLegal = Legal
|
||||
// Test Pilot is a proper name and should not be localized.
|
||||
# Test Pilot is a proper name and should not be localized.
|
||||
footerLinkAbout = Re Test Pilot
|
||||
footerLinkPrivacy = Confidentialitate
|
||||
footerLinkTerms = Terminos
|
||||
@@ -103,13 +103,17 @@ requirePasswordCheckbox = Requirer un contrasigno pro discargar iste file
|
||||
addPasswordButton = Adder contrasigno
|
||||
changePasswordButton = Cambiar
|
||||
passwordTryAgain = Contrasigno incorrecte. Retenta.
|
||||
// This label is followed by the password needed to download a file
|
||||
passwordResult = Contrasigno: { $password }
|
||||
reportIPInfringement = Reportar un violation de proprietate intellectual
|
||||
javascriptRequired = Firefox Send require JavaScript
|
||||
whyJavascript = Proque Firefox Send require JavaScript?
|
||||
enableJavascript = Por favor activa JavaScript e tenta novemente.
|
||||
// A short representation of a countdown timer containing the number of hours and minutes remaining as digits, example "13h 47m"
|
||||
# A short representation of a countdown timer containing the number of hours and minutes remaining as digits, example "13h 47m"
|
||||
expiresHoursMinutes = { $hours }h { $minutes }m
|
||||
// A short representation of a countdown timer containing the number of minutes remaining as digits, example "56m"
|
||||
# A short representation of a countdown timer containing the number of minutes remaining as digits, example "56m"
|
||||
expiresMinutes = { $minutes }m
|
||||
# A short status message shown when a password is successfully set
|
||||
passwordIsSet = Configuration del contrasigno
|
||||
# A short status message shown when the user enters a long password
|
||||
maxPasswordLength = Maxime longor del contrasigno: { $length }
|
||||
# A short status message shown when there was an error setting the password
|
||||
passwordSetError = Iste contrasigno non pote ser definite
|
||||
|
||||
Reference in New Issue
Block a user