Coder Social home page Coder Social logo

thecacophonyproject / cacophony-browse Goto Github PK

View Code? Open in Web Editor NEW
9.0 9.0 22.0 10.61 MB

The web interface for the Cacophony Project API

Home Page: https://browse.cacophony.org.nz/

JavaScript 13.40% Vue 77.57% Shell 0.06% CSS 0.15% TypeScript 7.98% SCSS 0.62% EJS 0.23%
server

cacophony-browse's People

Contributors

adbs1 avatar arthurmcgregor avatar cameronrp avatar clare avatar dependabot[bot] avatar greig-hamilton avatar hardiesoft avatar jackodsteel avatar jimmykl avatar leslie-alldridge avatar marknikora avatar mike3o8 avatar mjs avatar mtsale avatar saracoutinho avatar simonm2000 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

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

cacophony-browse's Issues

Cacophony Project logo is missing

The logo which should appear at the top left is missing at browse-test-beta.cacophony.org.nz. This is probably related to some recent webpack changes.

New prev/next icons generating Vue error

Unknown custom element: <font-awesome-layers> - did you register the component correctly? 
found in
---> <PrevNext> at src\components\Video\PrevNext.vue
       <RecordingView> at src\views\RecordingView.vue
         <App> at src\App.vue
           <Root>

#69 @jimmykl

User can be logged in without valid connection to API and no warnings show

So I realised this when I was reviewing the last PR. The app booted up fine and I could navigate to the Groups page, but it never went beyond 'Loading...' This was because I hadn't updated the app.config.js file (which is an easy fix no trouble)

However, it made me realise that if there is a problem with the API or the user's internet connection, they will still be logged in (because the data is in local storage) but the app will not work. I'm sure there is a way that this is usually dealt with, but I don't know what it is! Perhaps it is to implement better error handling every time the API is accessed, or perhaps it is part of the router authentication check...?? @adbs1

Recordings page continually polls /api/v1/devices

There are continual requests like this:

:authority: api-test.cacophony.org.nz
:method: GET
:path: /api/v1/devices
:scheme: https
accept: */*
accept-encoding: gzip, deflate, br
accept-language: en-GB,en-US;q=0.9,en;q=0.8
authorization: JWT ...
origin: http://localhost:8080
referer: http://localhost:8080/recordings
user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/68.0.3440.106 Chrome/68.0.3440.106 Safari/537.36

With empty responses like this:

{"devices":{"count":0,"rows":[]},"success":true,"messages":["Completed get devices query."]}

Implement functionality of query recordings view

  • Add ability to search for group of devices
  • Fix bug where pagination number shows above menu (see screenshot below)
  • Add loading wheel (or similar) when query is running
  • Fix false positive search

bug

Make requiresAuth:true the default in router.index.js

{requiresAuth: false} is currently the default but should be the exception, change the following accordingly:

} else if(to.matched.some(record => record.meta.requiresAuth)) {
return next({
path: '/login',
params: { nextUrl: to.fullPath }
});
}

Implement functionality on view video page

  • Display devicename and date/time
  • Display and auto-play video
  • Populate tag table
    • Fix animal image not showing
    • Add 'Me!' if tag added by user
    • Add background colour to AI IDs
    • Activate delete button
  • Quick tag buttons
    • Add new tag when animal button clicked
    • Add false positive event when fp button clicked
    • Display AddObservation component when + clicked
  • Prev/next buttons
    • Bug - prev*/next* buttons returning server error
  • Processing status
  • Display comment
  • Update comment
  • Download buttons
  • Delete button
  • Add animal observation
    • Set time start / end / current buttons
  • Set tag stop time to duration - 10s (??)
  • Confirm responsive / mobile views
  • Handle no recording at URL

Better title

The title is currently "cacophony-web-vue". "Cacophony Browser" or "Cacophony Project" would be better.

Users list on GroupView.vue page is not populating

Screenshot compares new/Vuex on the left and old version on the right. As you can see, no user showing in user table when there should be.

groupcompare

I think the problem is groupData() computed property in GroupView.vue -> group.GroupUsers (which populates the b-table) doesn't exit. I think it should just use group.Users (group.Users.GroupUsers exists but doesn't have any useful info)

Adding custom tags fails

When the custom tag entry field is used (via the + button) the addition of the tag fails. It's then not possible to add any more tags, even using the quick tag buttons.

Support both audio & video recordings on recordings pages

Similar to TheCacophonyProject/cacophony-web#113

  • Search returns video and audio files
  • Allow for filter by type (audio, video or both)
  • Display type (audio or video) in the table
  • Add support for audio on the view recording page

Improve error message overlays

  1. Need to improve the layout (CSS) for the error message so they look nicish
  2. Split uses of error message between two classes:
    a. Actual error messages that need to stay visible until dismissed
    b. Warming messages that appear for a while and then disappear.

Include easy way to change groups when viewing a single group

Screenshot compares new/Vuex on the left and old version on the right. I like how it was easy to change groups in the old version. It was a bit clunky and didn't work so well on mobile, but I think it would be good to have similar in the new version also. If there isn't space for a full list of devices, perhaps a 'choose a different group' type button, or back-ish button, or maybe hide the groups list behind a \/ arrow or something....

groupcompare

Include favicons in builds

index.template.ejs currently refers to the favicons in src/assets/favicon which only works when the frontend is run in dev mode. Figure out how to get them included in the build and refer to them in the dist output instead. I'm pretty sure there's a way to get webpack to treat the favicons as dependencies so they get handled correctly.

JavaScript error when viewing a recording

This error is reliably seen the developer console when viewing a recording:

vendors~prod~staging.bundle.js:38 TypeError: Cannot read property 'devicename' of undefined
    at a.r (prod~staging.bundle.js:1)
    at a.t._render (vendors~prod~staging.bundle.js:38)
    at a.<anonymous> (vendors~prod~staging.bundle.js:38)
    at Te.get (vendors~prod~staging.bundle.js:38)
    at new Te (vendors~prod~staging.bundle.js:38)
    at vendors~prod~staging.bundle.js:38
    at a.pn.$mount (vendors~prod~staging.bundle.js:38)
    at a.pn.$mount (vendors~prod~staging.bundle.js:38)
    at init (vendors~prod~staging.bundle.js:38)
    at vendors~prod~staging.bundle.js:38

Recordings page calls signedUrl?jwt=null

When the recordings page loads it calls the signedUrl API with a null jwt argument. It seems that it's acting before the recording details have been set.

The page then goes on to load the recording correctly. All this isn't really visible to the user.

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.