samvera / browse-everything Goto Github PK
View Code? Open in Web Editor NEWRails engine providing access to files in cloud storage
License: Apache License 2.0
Rails engine providing access to files in cloud storage
License: Apache License 2.0
Limit the wiring of the change
event for checkboxes to only the ones that Browse Everything owns. The current code [1] wires all checkboxed on the page:
$(document).on 'change', 'input:checkbox', (event) ->
Perhaps we could limit the checkboxes by CSS class.
I haven't been able to reproduce this within BrowseEverything, and only encounter this when I'm using the gem within one of our applications, so it could be how we're integrating it that's the problem. Here's a video that shows what happens:
https://dl.dropboxusercontent.com/u/9554743/select-issue.m4v
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.
Write a wrapper that will
Somewhere in the Wiki?
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])
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
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."
When you upgrade to the latest version of the dropbox-sdk-ruby v1.6.5 all the requesting URLs that had include_deleted=false will also have include_media_info=false
This will require a change your to webmock files.
Check out the changes made in this commit in ScholarSphere: psu-libraries/scholarsphere@bc2197b#diff-1295b3f76bf51ff7a50dc16cccad8fbcL41
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.
Hello,
Do you plan to offer the ability to set swift as provider?
Thanks by advance
create a travis.yml to cause travis to build the project
There can be a long wait while navigating between folders resolving links. We need better visual feedback so that users don't go into click-rage.
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
Need to allow the application to define which controller and action the Browse Everything Browser will post the array of file references to.
Declare that this is the supported interface by defining 1.0.0
Clicking a file should
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.
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>
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 a BrowseEverything::Retriever
convenience module that can download or stream a file from a provider given the hash returned by the engine.
https://github.com/attachmentsme/ruby-box looks relatively well maintained.
"#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.
Otherwise it breaks things like bootstrap dropdowns.
//= require bootstrap-sprockets
See the installation instructions: https://github.com/twbs/bootstrap-sass#a-ruby-on-rails
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:in
get_token'
oauth2 (0.9.4) lib/oauth2/access_token.rb:86:in refresh!' ruby-box (1.15.0) lib/ruby-box/session.rb:40:in
refresh_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:in
box_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'
Should stop, clean, generate, and start the app if the app was started
Additionally Rake stop should not fail when the app is not started
Could this also be automatically determined based on which providers have been properly configured for the current rails environment?
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>'
When loading the page with browse_everything button, the modal is not create and need to hard refresh the page. This may be a issue with coffee script but I could not find any solution
Develop a BrowseEverything::Driver::GoogleDrive
using the Ruby google_drive gem
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
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.
Develop a BrowseEverything::Driver::SkyDrive using a Ruby sky_drive gem
Develop a BrowseEverything::Driver::Copy driver.
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
Develop a BrowseEverything::Driver::Dropbox
using the Ruby dropbox-api gem
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.
Should of course be ArgumentError.
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"
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.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.