Code Monkey home page Code Monkey logo

browse-everything's People

Contributors

atz avatar awead avatar banurekha avatar bmquinn avatar botimer avatar carolyncole avatar cbeer avatar cjcolvar avatar dchandekstark avatar derekmorr avatar dlpierce avatar escowles avatar flyingzumwalt avatar hackartisan avatar hectorcorrea avatar jcoyne avatar jenlindner avatar jeremyf avatar jkeck avatar jrgriffiniii avatar jrochkind avatar mark-dce avatar mbklein avatar mjgiarlo avatar narogers avatar randalldfloyd avatar scherztc avatar tpendragon avatar xiaoming 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  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  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  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  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

browse-everything's Issues

Implement a driver for the pydio API

This is basically a "host your own dropbox" integration platform. According to Simon Fraser University, (Canadian) national and provincial legislation inhibits the adoption of dropbox, box, google drive and other cloud storage that would locate or replicate PII research data outside Canada. So Pydio is an attractive option.

See: https://pyd.io/

It may be that this doesn't align technically with the Gem, or constitutes too much of a replacement of it, but I wanted to suggest it was worth some attention.

Create trigger code

Write a wrapper that will

  • Instantiate a modal with content from browse_everything_engine.root_path
  • Assign the browse_everything post URL to the desired route

Error in instructions under "Using the Generator"

Hope I'm not out of line adding this (new to github), but in the instructions under "Using the Generator" it documents "rails g browse_anything:config" where I think it should say "rails g browse_everything:config"

Regards,

Gordon Leacock, University of Michigan ([email protected])

OAuth Frame-work

Add authorized? and auth_link to drive base
create controller call back to handle OAuth response, and store in session
initialize driver with session information

Undefined mixin 'content-columns'

ActionView::Template::Error (Undefined mixin 'content-columns')
  browse-everything (0.4.3) app/assets/stylesheets/_browse_everything.css.scss:70:in `content-columns'

This mixin is from bootstrap-sass:
https://github.com/twbs/bootstrap-sass/blob/eec14dac762d0bcf83f9c767fb23927ba37c9a12/vendor/assets/stylesheets/bootstrap/mixins/_vendor-prefixes.scss#L81

And it's deprecated.
"All vendor mixins are deprecated as of v3.2 due to the introduction of
Autoprefixer in our Gruntfile. They will be removed in v4."

Fail gracefully when not configured

Right now, a missing browse_everything_providers.yml generates a 500 error. It would be better to return a friendlier page warning that browse-everything is not configured with any providers.

Extra .css in SCSS file is unnecessary

I get this deprecation warning when running rails 4.2:
DEPRECATION WARNING: Extra .css in SCSS file is unnecessary. Rename /home/travis/build/projecthydra/sufia/vendor/bundle/ruby/2.1.0/gems/browse-everything-0.7.0/app/assets/stylesheets/browse_everything.css.scss

Support Export Formats for Native Google Drive Documents

The current Google Drive driver will exclude Google Drive native formats because they don't have a download URL.

I believe the API will respond w/ download URLs for the various available export formats however the UI doesn't have the facility to allow the user to choose which format to download from (so we ignore them altogether). If we could add this facility in the UI we could get more file formats from the Google Drive API.

Add a helper to draw the button

suggestion:

<%= browse_everything "Browse!", class: "btn btn-large btn-success" %>

would render:

<button type="button" data-toggle="browse-everything" data-route="<%=browse_everything_engine.root_path%>" 
  data-target="#myForm" class="btn btn-large btn-success" id="browse">Browse!</button>

Unwanted '+' symbols in file path

When uploading a file named something like '/Archived Files/Batch 27/DVD 4/Image From Collection 4.png' spaces in the base file path are replaced with '+' symbols - ie '/Archived Files/Batch 27/DVD 4/Image+From+Collection+4.png'. The issue can be duplicated by uploading files with spaces in the path then viewing the element's (updated) source in the browser's inspector.

Add BrowseEverything::Retriever

Add a BrowseEverything::Retriever convenience module that can download or stream a file from a provider given the hash returned by the engine.

Fails to @extend ".icon-check"

       "#browse-everything .fa3 .ev-selected .indenter" failed to @extend ".icon-check".
       The selector ".icon-check" was not found.
       Use "@extend .icon-check !optional" if the extend should be able to fail.

User gets a strange blank page when the refresh token expires

I'm logging this as an issue. The user sees a blank list of files and no errors on the front end, and on the back end we get the following error in the logs:

2015-10-20 13:41:59 -0400 (26550) AuthError occured when checking token. Exception RubyBox::AuthError : no data returned. token as expired and need to refresh it
2015-10-20 13:41:59 -0400 (26550)
ActionView::Template::Error (invalid_grant: Refresh token has expired
{"error":"invalid_grant","error_description":"Refresh token has expired"}):
13: Modified
14:
15:
16: <% provider.contents(browse_path).each_with_index do |file,index| %>
17: <% if is_acceptable?(file) %>
18: <%= render :partial => 'file', :locals => { :file => file, :index => index,
19: :path => browse_everything_engine.contents_path(provider_name,file.id), :parent => params[:parent] } %>
oauth2 (0.9.4) lib/oauth2/client.rb:113:in request' oauth2 (0.9.4) lib/oauth2/client.rb:138:inget_token'
oauth2 (0.9.4) lib/oauth2/access_token.rb:86:in refresh!' ruby-box (1.15.0) lib/ruby-box/session.rb:40:inrefresh_token'
/opt/heracles/deploy/scholarsphere/shared/bundle/ruby/2.2.0/bundler/gems/browse-everything-e7c83be25ebc/lib/browse_everything/driver/box.rb:102:in refresh_token' /opt/heracles/deploy/scholarsphere/shared/bundle/ruby/2.2.0/bundler/gems/browse-everything-e7c83be25ebc/lib/browse_everything/driver/box.rb:107:inbox_client'
/opt/heracles/deploy/scholarsphere/shared/bundle/ruby/2.2.0/bundler/gems/browse-everything-e7c83be25ebc/lib/browse_everything/driver/box.rb:28:in `contents'

Can't modify frozen assets path

https://github.com/projecthydra-labs/browse-everything/blob/master/lib/browse_everything/engine.rb#L4

can't modify frozen Array
/home/travis/build/psu-stewardship/sufia/vendor/bundle/ruby/2.2.0/gems/browse-everything-0.8.1/lib/browse_everything/engine.rb:4:in `block in <class:Engine>'
/home/travis/build/psu-stewardship/sufia/vendor/bundle/ruby/2.2.0/gems/railties-4.2.1/lib/rails/initializable.rb:30:in `instance_exec'
/home/travis/build/psu-stewardship/sufia/vendor/bundle/ruby/2.2.0/gems/railties-4.2.1/lib/rails/initializable.rb:30:in `run'
/home/travis/build/psu-stewardship/sufia/vendor/bundle/ruby/2.2.0/gems/railties-4.2.1/lib/rails/initializable.rb:55:in `block in run_initializers'
/home/travis/build/psu-stewardship/sufia/vendor/bundle/ruby/2.2.0/gems/railties-4.2.1/lib/rails/initializable.rb:54:in `run_initializers'
/home/travis/build/psu-stewardship/sufia/vendor/bundle/ruby/2.2.0/gems/railties-4.2.1/lib/rails/application.rb:352:in `initialize!'
/home/travis/build/psu-stewardship/sufia/spec/internal/config/environment.rb:5:in `<top (required)>'
/home/travis/build/psu-stewardship/sufia/vendor/bundle/ruby/2.2.0/gems/activesupport-4.2.1/lib/active_support/dependencies.rb:274:in `require'
/home/travis/build/psu-stewardship/sufia/vendor/bundle/ruby/2.2.0/gems/activesupport-4.2.1/lib/active_support/dependencies.rb:274:in `block in require'
/home/travis/build/psu-stewardship/sufia/vendor/bundle/ruby/2.2.0/gems/activesupport-4.2.1/lib/active_support/dependencies.rb:240:in `load_dependency'
/home/travis/build/psu-stewardship/sufia/vendor/bundle/ruby/2.2.0/gems/activesupport-4.2.1/lib/active_support/dependencies.rb:274:in `require'
/home/travis/build/psu-stewardship/sufia/vendor/bundle/ruby/2.2.0/gems/railties-4.2.1/lib/rails/application.rb:328:in `require_environment!'
/home/travis/build/psu-stewardship/sufia/vendor/bundle/ruby/2.2.0/gems/railties-4.2.1/lib/rails/application.rb:457:in `block in run_tasks_blocks'
/home/travis/build/psu-stewardship/sufia/vendor/bundle/ruby/2.2.0/bin/ruby_executable_hooks:15:in `eval'
/home/travis/build/psu-stewardship/sufia/vendor/bundle/ruby/2.2.0/bin/ruby_executable_hooks:15:in `<main>'

NoMethodError for google drive

NoMethodError in BrowseEverything#show

Showing /opt/boxen/rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/browse-everything-0.2.0/app/views/browse_everything/_files.html.erb where line #3 raised:

private method `select' called for nil:NilClass

Error when token revoked

Would expect to treat a revoked token like a new user and ask to be authorized, instead fails with error message.
In ualbertalib/hydranorth based on projecthydra/sufia with browse-everything configured, visiting the Upload Cloud Provider Google Drive authorize the app, then editing your Google Account Permissions to revoke access to the app will result in the failure.

image

Javascript error with turbolinks, when not on turbolinks page.

Uncaught TypeError: Cannot read property 'callback_proxy' of undefined behavior.js?body=1:63
$.fn.browseEverything behavior.js?body=1:63
(anonymous function) VM4392:4
fire jquery.js?body=1:3100
self.add jquery.js?body=1:3146
jQuery.fn.ready jquery.js?body=1:3380
(anonymous function) VM4392:3
executeScriptTags turbolinks.js?body=1:174
changePage turbolinks.js?body=1:150
xhr.onload

Not Accessible to screen readers

Currently the screen reader will access the dialog, but does not get to any of the buttons or links in the dynamic content.

That means that the user can not authorize with oauth, and even after that happens they have no way of selecting or interacting with the file list.

I have noted in my updates with sufia that you can add a tab-index to items to make the screen reader find them, but have not gotten a chance to test it in this instance.

Browse everything should not include Bootstrap

Browse Everything should be bootstrap compatable, but should not include bootstrap as a dependency. This resulted in an application using Bootstrap having its css squashed by browse everything.

@danhorst and I believe this to be the problem.

  spec.add_dependency "sass-rails"
  spec.add_dependency "bootstrap-sass"
  spec.add_dependency "font-awesome-rails"

SCSS warning: `.indenter" failed to @extend ".icon-check"`

WARNING on line 91 of /Users/justin/.rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/browse-everything-0.6.3/app/assets/stylesheets/browse_everything.css.scss: "#browse-everything .fa3 .ev-selected .indenter" failed to @extend ".icon-check".
  The selector ".icon-check" was not found.
  This will be an error in future releases of Sass.
  Use "@extend .icon-check !optional" if the extend should be able to fail.

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.