Merge branch 'master' into ux-tweak

This commit is contained in:
Danny Coates 2017-07-25 11:31:13 -07:00 committed by GitHub
commit e7688a62c6
11 changed files with 2205 additions and 374 deletions

View File

@ -144,12 +144,15 @@ $(document).ready(function() {
cd6: err
});
document.l10n.formatValue('expiredPageHeader').then(translated => {
if (err.message === 'notfound') {
location.reload();
} else {
document.l10n.formatValue('errorPageHeader').then(translated => {
$('.title').text(translated);
});
$('#download-btn').attr('hidden', true);
$('#expired-img').removeAttr('hidden');
console.log('The file has expired, or has already been deleted.');
}
return;
})
.then(([decrypted, fname]) => {

View File

@ -20,7 +20,7 @@ class FileReceiver extends EventEmitter {
xhr.onload = function(event) {
if (xhr.status === 404) {
reject(
new Error('The file has expired, or has already been deleted.')
new Error('notfound')
);
return;
}

View File

@ -306,6 +306,11 @@ $(document).ready(function() {
});
})
.catch(err => {
// err is 0 when coming from a cancel upload event
if (err === 0) {
return;
}
// only show error page when the error is anything other than user cancelling the upload
Raven.captureException(err);
$('#page-one').attr('hidden', true);
$('#upload-progress').attr('hidden', true);
@ -462,10 +467,8 @@ $(document).ready(function() {
popupDiv.classList.add('popup');
const $popupMessage = $('<div>', { class: 'popup-message' });
$popupMessage.attr('data-l10n-id', 'deletePopupText');
const $popupDelSpan = $('<span>', { class: 'popup-yes' });
$popupDelSpan.attr('data-l10n-id', 'deletePopupYes');
const $popupNvmSpan = $('<span>', { class: 'popup-no' });
$popupNvmSpan.attr('data-l10n-id', 'deletePopupCancel');

12
l10n.toml Normal file
View File

@ -0,0 +1,12 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
basepath = "."
[env]
l = "{l10n_base}/public/locales/{locale}/"
[[paths]]
reference = "public/locales/en-US/**"
l10n = "{l}**"

2398
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,95 +1,95 @@
// Firefox Send is a brand name and should not be localized.
title = Firefox Send
siteSubtitle = web experiment
siteFeedback = Feedback
uploadPageHeader = Private, Encrypted File Sharing
uploadPageExplainer = Send files through a safe, private, and encrypted link that automatically expires to ensure your stuff does not remain online forever.
uploadPageLearnMore = Learn more
uploadPageDropMessage = Drop your file here to start uploading
uploadPageSizeMessage = For the most reliable operation, its best to keep your file under 1GB
uploadPageBrowseButton = Select a file on your computer
.title = {uploadPageBrowseButtonTitle}
.title = Select a file on your computer
uploadPageMultipleFilesAlert = Uploading multiple files or a folder is currently not supported.
uploadPageBrowseButtonTitle = Upload file
uploadingPageHeader = Uploading Your File
importingFile = Importing...
verifyingFile = Verifying...
encryptingFile = Encrypting...
decryptingFile = Decrypting...
importingFile = Importing…
verifyingFile = Verifying…
encryptingFile = Encrypting…
decryptingFile = Decrypting…
notifyUploadDone = Your upload has finished.
uploadingPageMessage = Once your file uploads you will be able to set expiry options.
uploadingPageCancel = Cancel upload
.title = {uploadingPageCancel}
.title = Cancel upload
uploadCancelNotification = Your upload was cancelled.
uploadingPageLargeFileMessage = This file is large and may take awhile to upload. Sit tight!
uploadingPageLargeFileMessage = This file is large and may take a while to upload. Sit tight!
uploadingFileNotification = Notify me when the upload is complete.
uploadSuccessConfirmHeader = Ready to Send
uploadSvgAlt.alt = Upload
//Note the spec suggests that this string is editable. That feature will not appear at Launch
uploadSvgAlt
.alt = Upload
uploadSuccessTimingHeader = The link to your file will expire after 1 download or in 24 hours.
copyUrlFormLabel = Copy and share the link to send your file:
copyUrlFormLabelWithName = Copy and share the link to send your file: { $filename }
// Note: Title text for button should be the same
// Note: Title text for button should be the same.
copyUrlFormButton = Copy to clipboard
.title = {copyUrlFormButton}
.title = Copy to clipboard
copiedUrl = Copied!
// Note: Title text for button should be the same.
deleteFileButton = Delete file
.title = {deleteFileButton}
.title = Delete file
// Note: Title text for button should be the same.
sendAnotherFileLink = Send another file
.title = {sendAnotherFileLink}
downloadAltText.alt = Download
.title = Send another file
// Alternative text used on the download link/button (indicates an action).
downloadAltText
.alt = Download
downloadFileName = Download { $filename }
downloadFileSize = ({ $size })
// Firefox Send is a brand name and should not be localized.
downloadMessage = Your friend is sending you a file with Firefox Send, a service that allows you to share files with a safe, private, and encrypted link that automatically expires to ensure your stuff does not remain online forever.
// Text and title used on the download link/button (indicates an action).
downloadButtonLabel = Download
.title = {downloadButtonLabel}
.title = Download
downloadNotification = Your download has completed.
downloadFinish = Download Complete
// Firefox Send is a brand name and should not be localized. Title text for button should be the same.
sendYourFilesLink = Try Firefox Send
.title = {sendYourFilesLink}
.title = Try Firefox Send
downloadingPageProgress = Downloading { $filename } ({ $size })
downloadingPageMessage = Please leave this tab open while we fetch your file and decrypt it.
errorAltText.alt = Upload error
errorAltText
.alt = Upload error
errorPageHeader = Something went wrong!
errorPageMessage = There has been an error uploading the file.
errorPageLink = Send another file
fileTooBig = That file is too big to upload. It should be less than { $size }.
linkExpiredAlt.alt = Link expired
linkExpiredAlt
.alt = Link expired
expiredPageHeader = This link has expired or never existed in the first place!
notSupportedHeader = Your browser is not supported.
notSupportedDetail = Unfortunately this browser does not support the web technology that powers Firefox Send. You'll need to try another browser. We recommend Firefox!
// Firefox Send is a brand name and should not be localized.
notSupportedDetail = Unfortunately this browser does not support the web technology that powers Firefox Send. Youll need to try another browser. We recommend Firefox!
downloadFirefoxButtonSub = Free Download
sentFilesTitle1 = File
sentFilesTitle2 = Copy URL
sentFilesTitle3 = Expires In
sentFilesTitle4 = Delete
uploadedFile = File
copyFileList = Copy URL
// expiryFileList is used as a column header
expiryFileList = Expires In
deleteFileList = Delete
nevermindButton = Never mind
deleteButtonHover
.title = Delete
copyUrlHover
.title = Copy URL
legalHeader = Terms & Privacy
legalNoticeTestPilot = Firefox Send is currently a Test Pilot experiment, and subject to the Test Pilot <a>Terms of Service</a> and <a>Privacy Notice</a>. You can learn more about this experiment and its data collection <a>here</a>.
legalNoticeMozilla = Use of the Firefox Send website is also subject to Mozillas <a>Websites Privacy Notice</a> and <a>Websites Terms of Use</a>.
deletePopupText = Delete this file?
deletePopupYes = Yes
deletePopupCancel = Cancel
deleteButtonHover.title = {sentFilesTitle4}
copyUrlHover.title = {sentFilesTitle2}
deleteButtonHover
.title = Delete
copyUrlHover
.title = Copy URL
footerLinkLegal = Legal
// Test Pilot is a proper name and should not be localized.
footerLinkAbout = About Test Pilot
footerLinkPrivacy = Privacy
footerLinkTerms = Terms

View File

@ -0,0 +1 @@
importingFile = Importazione in corso…

View File

@ -45,20 +45,19 @@ app.use(
connectSrc: [
"'self'",
'https://sentry.prod.mozaws.net',
'https://www.google-analytics.com',
'https://ssl.google-analytics.com'
'https://www.google-analytics.com'
],
imgSrc: [
"'self'",
'https://www.google-analytics.com',
'https://ssl.google-analytics.com'
'https://www.google-analytics.com'
],
scriptSrc: ["'self'", 'https://ssl.google-analytics.com'],
scriptSrc: ["'self'"],
styleSrc: ["'self'", 'https://code.cdn.mozilla.net'],
fontSrc: ["'self'", 'https://code.cdn.mozilla.net'],
formAction: ["'none'"],
frameAncestors: ["'none'"],
objectSrc: ["'none'"]
objectSrc: ["'none'"],
reportUri: '/__cspreport__'
}
})
);
@ -80,6 +79,10 @@ app.get('/unsupported', (req, res) => {
res.render('unsupported');
});
app.get('/legal', (req, res) => {
res.render('legal');
});
app.get('/jsconfig.js', (req, res) => {
res.set('Content-Type', 'application/javascript');
res.render('jsconfig', {

View File

@ -21,10 +21,10 @@
<thead>
<tr>
<!-- htmllint attr-bans="false" -->
<th width="35%" data-l10n-id="sentFilesTitle1"></th>
<th width="25%" data-l10n-id="sentFilesTitle2"></th>
<th width="21%" data-l10n-id="sentFilesTitle3"></th>
<th width="12%" data-l10n-id="sentFilesTitle4"></th>
<th width="35%" data-l10n-id="uploadedFile"></th>
<th width="25%" data-l10n-id="copyFileList"></th>
<th width="21%" data-l10n-id="expiryFileList"></th>
<th width="12%" data-l10n-id="deleteFileList"></th>
<!-- htmllint tag-bans="$previous" -->
</tr>
</thead>
@ -55,7 +55,7 @@
<div id="share-link" hidden="true">
<div class="title" data-l10n-id="uploadSuccessTimingHeader"></div>
<div id="share-window">
<div id="copy-text" data-l10n-id="copyUrlFormLabel"></div>
<div id="copy-text"></div>
<div id="copy">
<input id="link" type="url" value="" readonly/>
<button id="copy-btn" data-l10n-id="copyUrlFormButton"></button>

View File

@ -9,8 +9,9 @@
<meta name="defaultLanguage" content="en-US">
<meta name="availableLanguages" content="en-US">
<link rel="localization" href="/locales/send.{locale}.ftl">
<link rel="icon" type="image/png" href="/resources/favicon-32x32.png" sizes="32x32" />
<link rel="localization" href="/locales/{locale}/send.ftl">
<script defer src="/l20n.min.js"></script>
</head>
<body>
@ -34,8 +35,8 @@
<a href="https://www.mozilla.org"><img class="mozilla-logo" src="/resources/mozilla-logo.svg"/></a>
<a href="https://www.mozilla.org/about/legal" data-l10n-id="footerLinkLegal"></a>
<a href="https://testpilot.firefox.com/about" data-l10n-id="footerLinkAbout"></a>
<a href="https://testpilot.firefox.com/privacy" data-l10n-id="footerLinkPrivacy"></a>
<a href="https://testpilot.firefox.com/terms" data-l10n-id="footerLinkTerms"></a>
<a href="/legal" data-l10n-id="footerLinkPrivacy"></a>
<a href="/legal" data-l10n-id="footerLinkTerms"></a>
<a href="https://www.mozilla.org/en-US/privacy/websites/#cookies" data-l10n-id="footerLinkCookies"></a>
</div>
<div class="social-links">

12
views/legal.handlebars Normal file
View File

@ -0,0 +1,12 @@
<div id="legal">
<div class="title" data-l10n-id="legalHeader"></div>
<div class="description" data-l10n-id="legalNoticeTestPilot">
<a href="https://testpilot.firefox.com/terms"></a>
<a href="https://testpilot.firefox.com/privacy"></a>
<a href="https://testpilot.firefox.com/experiments/send"></a>
</div>
<div class="description" data-l10n-id="legalNoticeMozilla">
<a href="https://www.mozilla.org/privacy/websites/"></a>
<a href="https://www.mozilla.org/about/legal/terms/mozilla/"></a>
</div>
</div>