When attempting to upload a file on Firefox mobile, an error
"item.webkitRelativePath is undefined" prevents the client from
proceeding with the upload after the file is selected. This commit
contains a small check to protect against this issue.
Additionally, in Firefox (desktop, maybe mobile), links in the file
browser to enter subfolders, exit subfolders, or navigate out of folders
via breadcrumbs has default behavior of navigating the user to an empty
page that only displays "null". This changes adds `@click.prevent` in
some key locations to prevent this undesired behavior.
Change-Id: I83ee6fcc5a7d0ce9996dacc3f966e38a4936a9fe
Added new feature flag.
Reworked vuex logic to work properly with project level passphrase.
Implemented new simple set project level passphrase modal.
Issue:
https://github.com/storj/storj/issues/5280
Change-Id: I6a15e90ee9fa7aa8a09c67022466787090120f9c
added to replace vuex in future
buckets, projects and users modules pinia analogues created
have no pretty and straight-forward ways to work with option api + ts files so it is better to use with composition api components
Change-Id: Ia8acc491c0e76e01bf6d533747d186257680e5c9
Reworked new Add coupon modal to use common VModal component to improve UX.
Issue:
https://github.com/storj/storj/issues/5104
Change-Id: Idd186ffd30a529761d15052bee4fac7cee4f5814
Reworked old Add coupon code modal to use common VModal component to improve UX.
Issue:
https://github.com/storj/storj/issues/5104
Change-Id: I4e1b38cfa2a88bacb4bcc58b837bc5b4319aca3d
Reworked delete bucket modal to use common VModal component to improve UX.
Issue:
https://github.com/storj/storj/issues/5104
Change-Id: I74acd07a0cb3f7e0231f88bf1255de9ac000ace5
Reworked share object modal to use common VModal component to improve UX.
ISSUE:
https://github.com/storj/storj/issues/5104
Change-Id: Ie07550bb3e116651b08721298994eb0c867cf6f4
This change adds AB testing for a new upgrade banner and sends a hit event when "Upgrade" is clicked.
Change-Id: Ie463e224af5b0cb74a601b68eedb2b34f9089fd7
problem: when uploading large files we face a problem with session expire while waiting for file to upload
solution: added callback to progress event to reset session timer
timer is refreshed only when less than 3 min left
Change-Id: Ieab9250be61757762a884165902cd48f90048409
this change clears the stored wallet, coupon and priceSummaryForSelectedProject on logout.
see: https://github.com/storj/storj/issues/5252
Change-Id: I2f51d727be97af9a0f26163bb3e93affa35dd2ee
Add getSalt to projects api. Add action, GET_SALT, on Store
Projects module to make the api request and return the salt
string everywhere in the web app that generates an access grant.
The Wasm code which is used to create the access grant has been
changed to decode the salt as a base64 encoded string. The names
of the function calls in the changed Wasm code have also been
changed to ensure that access grant creation fails if JS access
grant worker code and Wasm code are not the same version.
https://github.com/storj/storj-private/issues/64
Change-Id: Ia2bc4cbadad84b066ca1882b042a3f0bb13c783a
Made modals to close on background click.
Refactored new folder and object details modals to use VModal component.
Change-Id: Ib7c6ecb576507f2088c0c90fab262113ac7c0760
This change lists token payment histories from storjscan/coinpayments on the "Payment Methods > Storj Tokens" page
see: https://github.com/storj/storj/issues/4941
Change-Id: I178ba7940c4cb132f05673607030725a4c4b3e1c
Basically, I reverted this change with some modifications.
https://review.dev.storj.io/c/storj/storj/+/6731
We don't use signed requests anymore because its usage was not really affective and caused some UX problems like too long video loading/buffering.
We don't use presigned URLs as well because they are not really compatible (I think) with video streaming. So long videos (> 1 min long) constantly failed to buffer.
Instead of presigned URLs we just use STORJ linksharing. We generate new access grant which is valid for one day to render preview and object map.
Issue:
https://github.com/storj/storj/issues/5025
Change-Id: I0313f2c6b78811f1058c25fdf5b94dc5d563c15d
Implemented share bucket feature.
Refactored share object modal a bit (has to be refactored entirely).
Issue:
https://github.com/storj/storj/issues/4945
Change-Id: Icefd4bfe3eef9173ae824eea44d30450acde8044
Sessions now expire after a much shorter amount of time, requiring
clients to issue API requests for session extension. This is handled
behind the scenes as the user interacts with the page, but once session
expiration is imminent, a modal appears which informs the user of his
inactivity and presents him with the choice of loging out or preserving
his session.
Change-Id: I68008d45859c814a835d65d882ad5ad2199d618e
This change moves the top-level Billing navigation item into the
My Account dropdown menu. A notification has been added that
informs users of this change.
Change-Id: I641b0e5ad0a6de0206f6cde9d3022033c419215a
Created new modal which shows user their native STORJ token wallet address.
There are QR and copy buttons.
It will be used only in new billing screen.
Change-Id: Icef3c8668c548b779c07fe2b85eb5761cd1221a3
Added error notification when user tries to upload object after storage limit is exceeded.
Slightly changed error handling on failed preview/map request.
Issue: https://github.com/storj/storj/issues/5003
Change-Id: Iee91c1037b5c6de7b9718adcdfcea850fd3056ca
Refactored MFA, project members, profile and change password modals to use common VModal component.
Didn't touch access grant modals.
Change-Id: I9af5277496a99ec907fbee57a84127064ca9c02b
Implemented new modal to open bucket.
This is a part of new objects flow.
It is hidden by feature flag.
Change-Id: I3839126933b8804c8adbd8949a29ac75771fab4a
Reworked "add payment method" and "create project prompt" modals to use new common VModal component.
Change-Id: I73039e5d30077e35f05501a48f39142b799da875
old bucket creation flow removed
new flow added
name and passphrase splitted into separate views
demo bucket will not be created automatically
bucket creation progress bar added
Change-Id: I2a1d7d77c3038caaafb3c06bdb0ac5dd1ad17599
Added new modal when free tier user tries to create new project.
This modal prompts to upgrade account.
Change-Id: I0e787e35b099387a08186c7df7fc080092d2366c
This reverts commit 2e3e5547e2.
The S3 client is returning an error related to region with the new
changes.
Change-Id: I989b8a46c0e97c1278517e1de07fe42d5950cf54
While there isn't a significant win neither the prod javascript size nor
the number of dependencies, it does reduce the number of deprecated
packages.
Change-Id: Ib8edeb6916844500d74ae067464be9f28f542605
This contains also multiple fixes to make it work.
The following is a non-exhaustive list.
When @Prop default value is a callback, then it is called
instead of set verbatim. This means, when you want a default
value to be a callback, then it needs to be `default: () => () => X`.
jest does not yet properly support WebWorkers, hence the code introduces
an indirection to provide the worker URL.
This in turn required removing the global "store" dependency from
the tests. As a consequence the new NotificatorPlugin takes store
as a dependency. And many of the tests are adjusted to not import
store directly.
Moved StoreModule definition to avoid initializing the global store.
Some of the router code was moved into store. We can later figure out
how to structure it better and move it back.
bip39 needs explicit fallbacks for some of the dependencies.
Fixes to timer mocking. jest supports it natively.
Remove sinon dependency. jest provides all the functionality we need.
Change-Id: I7af3599390c63ce9f99dbd0b1e0870e9f8ca994d
In case user requests account deletion access grant is being created when user visits buckets screen.
With this fix access grant won't be created if user deletes all the buckets first and then deletes all the access grants.
Change-Id: I9a348bcf35a050838dbf6e1e7c682499d2f0a278
Store selected os tab during onboarding flow.
Use stored value to show correct tab during all the CLI steps.
Change-Id: I82e9af7e5dd3a7eaf503ed4f38789b7b0fb4aa84
This change makes the files store fully type-safe. It builds with `npm run build` and lints with `npm run lint`, displaying no errors or warnings.
There was an issue where I was unable to use the newer web APIs for filesystem operations, I think TypesScript (and Vue?) may need to be updated - I already tried updating `@types/web`. To mitigate this, I added slim type definitions for only the parts we use. The definitions are exactly as they appear on MDN and even include links to the relevant documentation. In future they can be removed with no compatibility issues.
Change-Id: I7b8b4a5f95caabdb546157c65e9f2f42c5132a6f
download performed without adding link to address bar
added warning to not share link with external people
Change-Id: Ifa79582c51c77c000342c1e03e752dd157912975
There is a sev-2 issue to add more browser caching.
In this PR I made object map and object preview to be fetched by signed request with non-public credentials using AWS SignatureV4 package.
Change-Id: Ib5013fa6d6af3faa97eed5168c11a13f9629cd87
Implemented endpoint and query to get bandwidth chart data for new project dashboard.
Connected backend with frontend.
Storage chart data is mocked right now.
Change-Id: Ib24d28614dc74bcc31b81ee3b8aa68b9898fa87b
Users signing up through a url containing a promo code will have that code applied to their stripe account instead of the free tier coupon.
Change-Id: I071041b0934648ef3f5bdb05b6ec97c400f89ae4
Transitioned all functions into typescript code and changed the vue component to be a class component.
Change-Id: I5ffcca5abb1595d53e880d4ccdfa26e23b1a214d
Transitioning all browser components and the browser files vuex store into typescript code and fixing all linting errors.
Change-Id: I91d166153fcba82a06cdccb04ded963141855239
Created common VDateRangePicker component to be reused.
Reworked it's styling.
Added date range selection logic for new project dashboard.
Change-Id: Ie9bdd173527514924e437ca5bcc9cfbf7793e4dd