GithubHelp home page GithubHelp logo

arablocks / ara-file-manager Goto Github PK

View Code? Open in Web Editor NEW
26.0 26.0 4.0 160.23 MB

Electron-based desktop app to publish and purchase content with ARA

Home Page: https://ara.one/app

License: GNU Lesser General Public License v3.0

JavaScript 95.86% CSS 1.28% HTML 2.00% Shell 0.87%

ara-file-manager's People

Contributors

bplaster avatar cckelly avatar ijl0322 avatar jwerle avatar madelinecameron avatar mahjiang avatar markgeeromano avatar vipyne avatar zootella avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ara-file-manager's Issues

opening multiple "Open package" windows borks; hamburger menus too

steps to repro:

  • purchase two files
  • download both (hamburger menus show options Copy Link, Seed, & Open Package
  • choose Open Package for one file
  • Export modal pops up
  • choose Open Package for second file

new Export modal does not open. But hamburger menu for second file now only shows Copy Link.

Count global download start and finish in analytics

How many downloads get started in the File Manager? How many finish successfully? Anonymized away from user and file identity, having those two simple counts will still let us see how much Ara is used to transfer files, and how well the file transfer works.

'Close' item on hamburger menu

Currently, Quit removes the window from the screen and exits the process.

An additional menu item, Close, would let the user hide the window, but still seed files and earn rewards. Clicking the icon in the desktop OS notification area, or attempting to run a second process, would restore the window.

issue close

Reads metadata improperly

Currently only reads in metadata properly if it is double stringified, which is v bad. Need to make sure data is not dbl stringified, and make sure the readFileMetadata helper function accounts for this.

Close `Account` window when logout

Steps to repro:
create new account
open Account window from top right menu
logout

Expected - Account window closes or shows new information
Actual - Account window remains open and shows an AraID and Wallet Address (for which it is not longer logged in)

logs:

$ DEBUG=acm*,af*,ara-contract* Ara\ Content\ Manager.app/Contents/MacOS/Ara\ Content\ Manager
  acm:boot:main .ararc exists, not writing file +0ms
  acm:boot:main App initialzed +66ms
  acm:boot:tray Building tray +0ms
  acm:boot:main Creating menu +24ms
  acm:boot:main Loading Dependencies +3ms
Window login doesn't exist!
Window "login" was created
(node:52642) Warning: N-API is an experimental feature and could change at any time.
Window registration doesn't exist!
Window "registration" was created
Window "login" was closed
  acm:kernel:lib:actionCreators:register REGISTER heard. load: c +0ms
  acm:kernel:lib:lsWindowManager Pinging registration with REGISTERING +0ms
  acm:kernel:lib:actions:araContractsManager Getting account address +0ms
  acm:kernel:lib:actionCreators:register Dispatching LOGIN +10s
  acm:kernel:lib:lsWindowManager Pinging registration with REGISTERED +10s
Window "araIDWarning" was created
Window "registration" was closed
Window "mnemonicWarning" was created
Window "araIDWarning" was closed
Window filemanager doesn't exist!
Window "filemanager" was created
Window "mnemonicWarning" was closed
Window accountInfo doesn't exist!
Window "accountInfo" was created
  acm:kernel:lib:actions:farmerManager Stopping DCDN broadcast +0ms
Window publishFileView doesn't exist!
Window login doesn't exist!
Window "login" was created
Window "filemanager" was closed

Multiple modals?

Is there a reason there are different window sizes for each modal? Multiple modals?

The buttons are too much fun

I spend all my time watching the animations and admiring the zippy response. Please make it less enjoyable to click buttons. ;P

Make a welcome window

When starting the file manager for the first time, no windows appear by default. A user must go to the small top icon and click to bring up a pull down menu with register/login options. I think those links / options should be available in a window that pops up automatically when launching the app.

Handle content with mal-formed and no metadata

Steps to repro:
login with existing AraID with 2 items in library (privatenet)
araid: did:ara:59f8d01325a3c40e0cd9aa35fd40f8bcb5bf5faa4b466ee6447d2c71a87987ef
pw: c

Expected - Ask Lyndsay/Vanessa/Logan how content without metadata should display
Actual - window immediately closes (crash)

  • same result when recovering ID with mnemonic

logs:

$ cd Ara\ Content\ Manager-darwin-x64/ && DEBUG=acm*,af*,ara-contract* Ara\ Content\ Manager.app/Contents/MacOS/Ara\ Content\ Manager
-bash: cd: Ara Content Manager-darwin-x64/: No such file or directory
   acm:boot:main .ararc exists, not writing file +0ms
  acm:boot:main App initialzed +73ms
  acm:boot:tray Building tray +0ms
  acm:boot:main Creating menu +23ms
  acm:boot:main Loading Dependencies +2ms
Window login doesn't exist!
Window "login" was created
(node:41699) Warning: N-API is an experimental feature and could change at any time.
  acm:kernel:lib:actionCreators:login LOGIN heard +0ms
Window "login" was closed
Window filemanager doesn't exist!
Window "filemanager" was created
  acm:kernel:lib:actions:araContractsManager Getting account address +0ms
  acm:kernel:lib:actions:araContractsManager Getting account balance +1s
(node:41699) DeprecationWarning: `web3.ethify` is deprecated, use `transform.toHexString`
  acm:kernel:lib:actions:araContractsManager Balance is 98 ARA +32ms
  acm:kernel:lib:actions:araContractsManager Ether balance is 19.831243332 +4ms
  acm:kernel:lib:actions:farmerManager Creating Farmer +0ms
  acm:kernel:lib:actions:farmerManager loading dcdn farm store +2ms
  afd initializing afs of did 4ec1b1435891995158c8b0c5dfb732a6b31f3f8a01a87b090e04708b46b927ac +0ms
  acm:kernel:lib:actions:araContractsManager Got 2 lib items +72ms
  afd:metadata Current version: 5 +0ms
  afd:metadata Replicating metadata for:  4ec1b1435891995158c8b0c5dfb732a6b31f3f8a01a87b090e04708b46b927ac +2ms
  afd:farmer Seeding:  4ec1b1435891995158c8b0c5dfb732a6b31f3f8a01a87b090e04708b46b927ac +0ms
  acm:kernel:lib:actions:util No metadata for 1ef845490306f83d3bc8fe0efa03b1f55ae30624c14290af50b431726a45814c +0ms
  acm:kernel:lib:actions:util No metadata for 238d6ff0ec89c4bb57f48a86d24e5d1a562c97a7eee79241c189b99c6bc801f3 +483ms
  acm:kernel:lib:actions:acmManager Retrieved 1 published items +0ms
Window "filemanager" was closed

Feedback from Ubuntu test

  • Tray icon is black, which makes it seem disabled
  • Tray menu doesn't exist (It only contains "Ara File Manager", which doesn't do anything)
  • X icon is white and blends into background
  • Clicking on amount should open account access (request)
  • Ara File Manager behaves oddly on i3wm (windows spawn between workspaces, don't tile, i3wm doesn't have tray by default)

Integrate basic media player

Add ability to play .mp3 and .mp4 files in FM. So someone could download a link of .mp3s from their friend and listen to them without having to leave FM app.

Crash when publish content with no Eth/Ara

Steps to repro:
register a new araid in the file manager (privatenet)
publish a file (there is no eth or ara associated with the account)

Expected - A warning tells me I don't have Ara (or Eth) and need those things to publish
Actual - all windows close (crash)

logs:

$ DEBUG=acm*,af*,ara-contract* Ara\ Content\ Manager.app/Contents/MacOS/Ara\ Content\ Manager
   acm:boot:main .ararc exists, not writing file +0ms
  acm:boot:main App initialzed +60ms
  acm:boot:tray Building tray +0ms
  acm:boot:main Creating menu +25ms
  acm:boot:main Loading Dependencies +2ms
Window login doesn't exist!
Window "login" was created
(node:41876) Warning: N-API is an experimental feature and could change at any time.
Window registration doesn't exist!
Window "registration" was created
Window "login" was closed
  acm:kernel:lib:actionCreators:register REGISTER heard. load: c +0ms
  acm:kernel:lib:lsWindowManager Pinging registration with REGISTERING +0ms
  acm:kernel:lib:actions:araContractsManager Getting account address +0ms
  acm:kernel:lib:actionCreators:register Dispatching LOGIN +4s
  acm:kernel:lib:lsWindowManager Pinging registration with REGISTERED +4s
Window "araIDWarning" was created
Window "registration" was closed
Window "mnemonicWarning" was created
Window "araIDWarning" was closed
Window filemanager doesn't exist!
Window "filemanager" was created
Window "mnemonicWarning" was closed
2018-11-21 19:29:50.245 Ara Content Manager[41876:2991614] IMKInputSession presentFunctionRowItemTextInputViewWithEndpoint:completionHandler: : [self textInputContext]=0x0 *NO* NSRemoteViewController to client, NSError=Error Domain=NSCocoaErrorDomain Code=4099 "The connection from pid 0 was invalidated from this process." UserInfo={NSDebugDescription=The connection from pid 0 was invalidated from this process.}, com.apple.inputmethod.EmojiFunctionRowItem
Window publishFileView doesn't exist!
Window "publishFileView" was created
  acm:kernel:lib:actionCreators:publish PUBLISH heard +0ms
  acm:kernel:lib:actionCreators:transaction CHANGE_PENDING_TRANSACTION_STATE heard +0ms
  acm:kernel:lib:lsWindowManager Pinging filemanager with REFRESH +7m
  acm:kernel:lib:lsWindowManager Pinging publishFileView with REFRESH +0ms
  acm:kernel:lib:lsWindowManager Pinging manageFileView with REFRESH +1ms
Window manageFileView doesn't exist!
  acm:kernel:lib:lsWindowManager Pinging accountInfo with REFRESH +0ms
Window accountInfo doesn't exist!
  acm:kernel:lib:lsWindowManager OPEN_MODAL heard +0ms
Window generalPleaseWaitModal doesn't exist!
Window "generalPleaseWaitModal" was created
  acm:kernel:lib:actions:util Adding file metadata for fa44791aacdfaac128cebbf0739b482f2f2b9315f607ccc56822b7328257e92e +0ms
  acm:kernel:lib:actionCreators:publish Deploying proxy +11s
  ara-contracts:registry creating tx to deploy proxy for fa44791aacdfaac128cebbf0739b482f2f2b9315f607ccc56822b7328257e92e +0ms
Window "filemanager" was closed
Window "publishFileView" was closed
Window "generalPleaseWaitModal" was closed

Hide context menu on mouseout

For the context menu in the main view, it will hide only if you mouse in and then mouse out. It should hide when moving mouse away (back or up) upon rendering.

#415 Should be completed first

Portable edition

Many desktop apps feature an installation-free, portable edition.

Portable apps are easier to debug and test, as different versions on the same machine keep their own files and settings. An app can design for portable first, and then the install just sets the portable in a standard installed location.

A portable File Manager is after v1, of course, and something I'd like to work on.

issue portable

Validate Password in Register modal

Steps to repro:
open Register Modal
do not enter password
Click on Register

Expected - a warning asking me to enter a password appears
Actual - window hangs in waiting animation state; can't click anything to make it go away or try again

logs:

$ DEBUG=acm*,af*,ara-contract* Ara\ Content\ Manager.app/Contents/MacOS/Ara\ Content\ Manager
   acm:boot:main .ararc exists, not writing file +0ms
  acm:boot:main App initialzed +65ms
  acm:boot:tray Building tray +0ms
  acm:boot:main Creating menu +28ms
  acm:boot:main Loading Dependencies +3ms
Window login doesn't exist!
Window "login" was created
(node:52467) Warning: N-API is an experimental feature and could change at any time.
Window registration doesn't exist!
Window "registration" was created
Window "login" was closed
  acm:kernel:lib:actionCreators:register REGISTER heard. load:  +0ms
  acm:kernel:lib:lsWindowManager Pinging registration with REGISTERING +0ms
  acm:kernel:lib:actions:register TypeError: crypto.blake2b: Buffer at index 0 is empty.
  acm:kernel:lib:actions:register     at Object.blake2b (/Users/vipyne/Desktop/Ara Content Manager-darwin-x64/Ara Content Manager.app/Contents/Resources/app/node_modules/ara-crypto/blake2b.js:39:13)
  acm:kernel:lib:actions:register     at Object.create (/Users/vipyne/Desktop/Ara Content Manager-darwin-x64/Ara Content Manager.app/Contents/Resources/app/node_modules/ara-identity/create.js:90:27)
  acm:kernel:lib:actions:register     at Object.create (/Users/vipyne/Desktop/Ara Content Manager-darwin-x64/Ara Content Manager.app/Contents/Resources/app/kernel/lib/actions/identityManager.js:10:31)
  acm:kernel:lib:actions:register     at EventEmitter.ipcMain.on (/Users/vipyne/Desktop/Ara Content Manager-darwin-x64/Ara Content Manager.app/Contents/Resources/app/kernel/lib/actionCreators/register.js:17:44)
  acm:kernel:lib:actions:register     at emitTwo (events.js:126:13)
  acm:kernel:lib:actions:register     at EventEmitter.emit (events.js:214:7)
  acm:kernel:lib:actions:register     at WebContents.<anonymous> (/Users/vipyne/Desktop/Ara Content Manager-darwin-x64/Ara Content Manager.app/Contents/Resources/electron.asar/browser/api/web-contents.js:286:13)
  acm:kernel:lib:actions:register     at emitTwo (events.js:126:13)
  acm:kernel:lib:actions:register     at WebContents.emit (events.js:214:7) +0ms
  acm:kernel:lib:actions:register Error archiving:  TypeError: Expecting identity to be an object.
    at Object.archive (/Users/vipyne/Desktop/Ara Content Manager-darwin-x64/Ara Content Manager.app/Contents/Resources/app/node_modules/ara-identity/archive.js:30:11)
    at Object.archive (/Users/vipyne/Desktop/Ara Content Manager-darwin-x64/Ara Content Manager.app/Contents/Resources/app/kernel/lib/actions/identityManager.js:20:17)
    at EventEmitter.ipcMain.on (/Users/vipyne/Desktop/Ara Content Manager-darwin-x64/Ara Content Manager.app/Contents/Resources/app/kernel/lib/actionCreators/register.js:18:27)
    at <anonymous>
    at runMicrotasksCallback (internal/process/next_tick.js:121:5)
    at _combinedTickCallback (internal/process/next_tick.js:131:7)
    at process._tickCallback (internal/process/next_tick.js:180:9) +1ms
  acm:kernel:lib:actionCreators:register Error registering: TypeError: Cannot read property 'did' of undefined
  acm:kernel:lib:actionCreators:register     at Object.archive (/Users/vipyne/Desktop/Ara Content Manager-darwin-x64/Ara Content Manager.app/Contents/Resources/app/kernel/lib/actions/identityManager.js:24:18)
  acm:kernel:lib:actionCreators:register     at <anonymous>
  acm:kernel:lib:actionCreators:register     at runMicrotasksCallback (internal/process/next_tick.js:121:5)
  acm:kernel:lib:actionCreators:register     at _combinedTickCallback (internal/process/next_tick.js:131:7)
  acm:kernel:lib:actionCreators:register     at process._tickCallback (internal/process/next_tick.js:180:9) +10ms

`X` to close modal

There should be x at top right of every modal (login, registration...) not just main Filemanager window

Status icon on Windows too dark

On Windows 10, the icon in the system tray (taskbar notification area) is difficult to see. I think this is because the A design in the icon is transparent-on-black, rather than white-on-black.

The application icon is white-on-black and looks fine. Here you can see both:

win10 taskbar notification icon

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.