geoblacklight 0.3.4 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - data/.gitmodules +0 -5
 - data/.travis.yml +3 -0
 - data/README.md +24 -76
 - data/Rakefile +2 -3
 - data/app/assets/javascripts/geoblacklight/downloaders.js +1 -0
 - data/app/assets/javascripts/geoblacklight/downloaders/downloader.js +51 -0
 - data/app/assets/javascripts/geoblacklight/downloaders/hgl_downloader.js +32 -0
 - data/app/assets/javascripts/geoblacklight/modules/download.js +7 -41
 - data/app/controllers/download_controller.rb +19 -1
 - data/app/controllers/wms_controller.rb +1 -1
 - data/app/views/catalog/_show_sidebar.html.erb +25 -13
 - data/app/views/download/hgl.html.erb +25 -0
 - data/config/locales/geoblacklight.en.yml +1 -0
 - data/lib/generators/geoblacklight/install_generator.rb +3 -2
 - data/lib/generators/geoblacklight/templates/geoblacklight.js +1 -0
 - data/lib/geoblacklight.rb +2 -0
 - data/lib/geoblacklight/constants.rb +2 -1
 - data/lib/geoblacklight/download/hgl_download.rb +17 -0
 - data/lib/geoblacklight/engine.rb +1 -0
 - data/lib/geoblacklight/solr_document.rb +4 -0
 - data/lib/geoblacklight/version.rb +1 -1
 - data/lib/geoblacklight/wms_layer.rb +31 -31
 - data/lib/geoblacklight/wms_layer/feature_info_response.rb +26 -24
 - data/lib/tasks/geoblacklight.rake +2 -2
 - data/spec/controllers/download_controller_spec.rb +13 -2
 - data/spec/features/download_layer_spec.rb +18 -3
 - data/spec/features/home_page_spec.rb +3 -3
 - data/spec/features/layer_preview_spec.rb +3 -3
 - data/spec/features/split_view.html.erb_spec.rb +2 -4
 - data/spec/fixtures/solr_documents/actual-papermap1.json +26 -0
 - data/spec/fixtures/solr_documents/actual-point1.json +27 -0
 - data/spec/fixtures/solr_documents/actual-polygon1.json +26 -0
 - data/spec/fixtures/solr_documents/actual-raster1.json +44 -0
 - data/spec/fixtures/{test-dct-references6.json → solr_documents/harvard_raster.json} +2 -6
 - data/spec/fixtures/solr_documents/public_iiif_princeton.json +38 -0
 - data/spec/fixtures/solr_documents/public_polygon_mit.json +47 -0
 - data/spec/fixtures/solr_documents/restricted-line.json +43 -0
 - data/spec/lib/geoblacklight/download/hgl_download_spec.rb +14 -0
 - data/spec/lib/geoblacklight/solr_document_spec.rb +20 -0
 - data/spec/lib/geoblacklight/wms_layer/feature_info_response_spec.rb +5 -5
 - data/spec/lib/geoblacklight/wms_layer_spec.rb +4 -4
 - metadata +25 -22
 - data/spec/features/dct_references_spec.rb +0 -77
 - data/spec/fixtures/test-dct-references1.json +0 -38
 - data/spec/fixtures/test-dct-references2.json +0 -41
 - data/spec/fixtures/test-dct-references3.json +0 -45
 - data/spec/fixtures/test-dct-references4.json +0 -60
 - data/spec/fixtures/test-dct-references5.json +0 -57
 - data/spec/fixtures/test-dct-references7.json +0 -42
 - data/spec/fixtures/test-dct-references8.json +0 -46
 - data/spec/support/dct_references_generate.rb +0 -100
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 969739fdc56829f296f49fdc519cfcd57cdafd7c
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 5e1c94e9c07557e959e787727130109289c5261f
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: bdbc61dc63defcf0b47ede1f235db3498ebaaa6c0c71e31acde2a3f089cf69ef4975f3ec59aad0d19fc3c16d983d04b01c9025dc112430821cf80665d82d48d4
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: b707a45223963f466216cc1b8e4180ebcc1a5175e55c9dc70d30bc028dac7a16e5a2e451c4eb8afb128f807b60a32bb6af87285c4cec7b867d02b71ff8020c8c
         
     | 
    
        data/.gitmodules
    CHANGED
    
    
    
        data/.travis.yml
    CHANGED
    
    
    
        data/README.md
    CHANGED
    
    | 
         @@ -6,88 +6,29 @@ GeoBlacklight is a world-class discovery platform for geospatial (GIS) holdings. 
     | 
|
| 
       6 
6 
     | 
    
         
             
            is an open collaborative project aiming to build off of the successes
         
     | 
| 
       7 
7 
     | 
    
         
             
            of the Blacklight Solr-powered discovery interface and the
         
     | 
| 
       8 
8 
     | 
    
         
             
            multi-institutional OpenGeoportal federated metadata sharing
         
     | 
| 
       9 
     | 
    
         
            -
            communities. We  
     | 
| 
       10 
     | 
    
         
            -
            we're actively looking for community input and development partners.
         
     | 
| 
       11 
     | 
    
         
            -
            More coming soon!
         
     | 
| 
      
 9 
     | 
    
         
            +
            communities. We're actively looking for community input and development partners.
         
     | 
| 
       12 
10 
     | 
    
         | 
| 
       13 
     | 
    
         
            -
             
     | 
| 
      
 11 
     | 
    
         
            +
            ###[Installation](https://github.com/geoblacklight/geoblacklight/wiki/Installation)
         
     | 
| 
       14 
12 
     | 
    
         | 
| 
       15 
     | 
    
         
            -
             
     | 
| 
       16 
     | 
    
         
            -
            * Facet by institution, year, publisher, data type, access, format
         
     | 
| 
       17 
     | 
    
         
            -
            * Facet by place, subject
         
     | 
| 
       18 
     | 
    
         
            -
            * Sort by relevance, year, publisher, title
         
     | 
| 
       19 
     | 
    
         
            -
            * Results list view icons and snippets
         
     | 
| 
       20 
     | 
    
         
            -
            * Detail map view for WMS features
         
     | 
| 
       21 
     | 
    
         
            -
            * Detail map view feature inspection
         
     | 
| 
       22 
     | 
    
         
            -
            * Slugs
         
     | 
| 
       23 
     | 
    
         
            -
            * Results list map view of bounding boxes
         
     | 
| 
       24 
     | 
    
         
            -
            * WMS/WFS/WCS links
         
     | 
| 
       25 
     | 
    
         
            -
            * Download Shapefile
         
     | 
| 
       26 
     | 
    
         
            -
            * Download KML
         
     | 
| 
       27 
     | 
    
         
            -
            * Download Metadata (for Stanford)
         
     | 
| 
       28 
     | 
    
         
            -
            * Built-in sample Solr 4.10 index
         
     | 
| 
       29 
     | 
    
         
            -
            * Search history
         
     | 
| 
      
 13 
     | 
    
         
            +
            Creating a new GeoBlacklight application from the template
         
     | 
| 
       30 
14 
     | 
    
         | 
| 
       31 
     | 
    
         
            -
             
     | 
| 
      
 15 
     | 
    
         
            +
            ```
         
     | 
| 
      
 16 
     | 
    
         
            +
            $ rails new app-name -m https://raw.githubusercontent.com/geoblacklight/geoblacklight/master/template.rb
         
     | 
| 
      
 17 
     | 
    
         
            +
            ```
         
     | 
| 
       32 
18 
     | 
    
         | 
| 
       33 
     | 
    
         
            -
             
     | 
| 
       34 
     | 
    
         
            -
            * See https://github.com/geoblacklight/geoblacklight-schema/issues
         
     | 
| 
      
 19 
     | 
    
         
            +
            To install Solr (with Jetty)
         
     | 
| 
       35 
20 
     | 
    
         | 
| 
       36 
     | 
    
         
            -
             
     | 
| 
      
 21 
     | 
    
         
            +
            ```
         
     | 
| 
      
 22 
     | 
    
         
            +
            $ cd app-name
         
     | 
| 
      
 23 
     | 
    
         
            +
            $ rake jetty:download
         
     | 
| 
      
 24 
     | 
    
         
            +
            $ rake jetty:unzip
         
     | 
| 
      
 25 
     | 
    
         
            +
            $ rake geoblacklight:configure_jetty
         
     | 
| 
      
 26 
     | 
    
         
            +
            ```
         
     | 
| 
       37 
27 
     | 
    
         | 
| 
       38 
     | 
    
         
            -
             
     | 
| 
      
 28 
     | 
    
         
            +
            Or install with [Docker](https://github.com/geoblacklight/geoblacklight-docker)
         
     | 
| 
      
 29 
     | 
    
         
            +
            For more information see the [installation guide](https://github.com/geoblacklight/geoblacklight/wiki/Installation)
         
     | 
| 
       39 
30 
     | 
    
         | 
| 
       40 
     | 
    
         
            -
             
     | 
| 
       41 
     | 
    
         
            -
             
     | 
| 
       42 
     | 
    
         
            -
                git clone --recurse git@github.com:geoblacklight/geoblacklight.git
         
     | 
| 
       43 
     | 
    
         
            -
             
     | 
| 
       44 
     | 
    
         
            -
            Download and configure `jetty` to run Solr
         
     | 
| 
       45 
     | 
    
         
            -
             
     | 
| 
       46 
     | 
    
         
            -
                rake jetty:download jetty:unzip
         
     | 
| 
       47 
     | 
    
         
            -
                rake geoblacklight:configure_jetty
         
     | 
| 
       48 
     | 
    
         
            -
             
     | 
| 
       49 
     | 
    
         
            -
            Create a test app (created at `/spec/internal`)
         
     | 
| 
       50 
     | 
    
         
            -
             
     | 
| 
       51 
     | 
    
         
            -
                rake engine_cart:generate
         
     | 
| 
       52 
     | 
    
         
            -
             
     | 
| 
       53 
     | 
    
         
            -
            Boot `jetty`
         
     | 
| 
       54 
     | 
    
         
            -
             
     | 
| 
       55 
     | 
    
         
            -
                rake jetty:start
         
     | 
| 
       56 
     | 
    
         
            -
             
     | 
| 
       57 
     | 
    
         
            -
            Boot GeoBlacklight test app
         
     | 
| 
       58 
     | 
    
         
            -
             
     | 
| 
       59 
     | 
    
         
            -
                cd spec/internal
         
     | 
| 
       60 
     | 
    
         
            -
                rake geoblacklight:solr:seed # to load sample documents into jetty Solr instance
         
     | 
| 
       61 
     | 
    
         
            -
                rails server
         
     | 
| 
       62 
     | 
    
         
            -
             
     | 
| 
       63 
     | 
    
         
            -
            Run tests
         
     | 
| 
       64 
     | 
    
         
            -
             
     | 
| 
       65 
     | 
    
         
            -
                rake ci
         
     | 
| 
       66 
     | 
    
         
            -
             
     | 
| 
       67 
     | 
    
         
            -
            ## Installation
         
     | 
| 
       68 
     | 
    
         
            -
             
     | 
| 
       69 
     | 
    
         
            -
            To bootstrap a new GeoBlacklight Rails application
         
     | 
| 
       70 
     | 
    
         
            -
             
     | 
| 
       71 
     | 
    
         
            -
                $ rails new app-name -m https://raw.githubusercontent.com/geoblacklight/geoblacklight/master/template.rb
         
     | 
| 
       72 
     | 
    
         
            -
                
         
     | 
| 
       73 
     | 
    
         
            -
            To install Solr (with jetty)
         
     | 
| 
       74 
     | 
    
         
            -
             
     | 
| 
       75 
     | 
    
         
            -
                $ cd app-name
         
     | 
| 
       76 
     | 
    
         
            -
                $ rake jetty:download
         
     | 
| 
       77 
     | 
    
         
            -
                $ rake jetty:unzip
         
     | 
| 
       78 
     | 
    
         
            -
                $ rake geoblacklight:configure_jetty
         
     | 
| 
       79 
     | 
    
         
            -
                
         
     | 
| 
       80 
     | 
    
         
            -
             
     | 
| 
       81 
     | 
    
         
            -
            ## Usage
         
     | 
| 
       82 
     | 
    
         
            -
             
     | 
| 
       83 
     | 
    
         
            -
            For a non-development instance:
         
     | 
| 
       84 
     | 
    
         
            -
             
     | 
| 
       85 
     | 
    
         
            -
            1. Populate a Solr 4.7 index with geoblacklight-schema documents
         
     | 
| 
       86 
     | 
    
         
            -
            2. Configure your GeoBlacklight application's `config/solr.yml` to point to the Solr index
         
     | 
| 
       87 
     | 
    
         
            -
            3. Configure your `config/environments` and `app/controllers/catalog_controller.rb`
         
     | 
| 
       88 
     | 
    
         
            -
            4. `rails server` to run GeoBlacklight
         
     | 
| 
       89 
     | 
    
         
            -
             
     | 
| 
       90 
     | 
    
         
            -
            ## Contributing
         
     | 
| 
      
 31 
     | 
    
         
            +
            ###[Contributing](https://github.com/geoblacklight/geoblacklight/wiki/Contributing)
         
     | 
| 
       91 
32 
     | 
    
         | 
| 
       92 
33 
     | 
    
         
             
            1. Fork it ( http://github.com/my-github-username/geoblacklight/fork )
         
     | 
| 
       93 
34 
     | 
    
         
             
            2. Create your feature branch (`git checkout -b my-new-feature`)
         
     | 
| 
         @@ -95,4 +36,11 @@ For a non-development instance: 
     | 
|
| 
       95 
36 
     | 
    
         
             
            4. Push to the branch (`git push origin my-new-feature`)
         
     | 
| 
       96 
37 
     | 
    
         
             
            5. Create new Pull Request
         
     | 
| 
       97 
38 
     | 
    
         | 
| 
       98 
     | 
    
         
            -
            Also, if you wish to ask questions or participate further, email the [GeoBlacklight Working Group](https://groups.google.com/forum/#!forum/geoblacklight-working-group) at geoblacklight-working-group@googlegroups.com.
         
     | 
| 
      
 39 
     | 
    
         
            +
            Also, if you wish to ask questions or participate further, email the [GeoBlacklight Working Group](https://groups.google.com/forum/#!forum/geoblacklight-working-group) at [geoblacklight-working-group@googlegroups.com](mailto:geoblacklight-working-group@googlegroups.com).
         
     | 
| 
      
 40 
     | 
    
         
            +
             
     | 
| 
      
 41 
     | 
    
         
            +
            ###[Development](https://github.com/geoblacklight/geoblacklight/wiki/Development)
         
     | 
| 
      
 42 
     | 
    
         
            +
             
     | 
| 
      
 43 
     | 
    
         
            +
            See the [development guide](https://github.com/geoblacklight/geoblacklight/wiki/Development) on our wiki for more information about setting up your development environment.
         
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
      
 45 
     | 
    
         
            +
             
     | 
| 
      
 46 
     | 
    
         
            +
            Please see the full documentation hosted on our Wiki [Wiki](https://github.com/geoblacklight/geoblacklight/wiki)
         
     | 
    
        data/Rakefile
    CHANGED
    
    | 
         @@ -43,8 +43,7 @@ end 
     | 
|
| 
       43 
43 
     | 
    
         
             
            namespace :geoblacklight do
         
     | 
| 
       44 
44 
     | 
    
         
             
              desc "Copies the default SOLR config for the bundled Testing Server"
         
     | 
| 
       45 
45 
     | 
    
         
             
              task :configure_jetty do
         
     | 
| 
       46 
     | 
    
         
            -
                 
     | 
| 
       47 
     | 
    
         
            -
             
     | 
| 
       48 
     | 
    
         
            -
                end
         
     | 
| 
      
 46 
     | 
    
         
            +
                system 'curl -o jetty/solr/blacklight-core/conf/schema.xml https://raw.githubusercontent.com/geoblacklight/geoblacklight-schema/master/conf/schema.xml'
         
     | 
| 
      
 47 
     | 
    
         
            +
                system 'curl -o jetty/solr/blacklight-core/conf/solrconfig.xml https://raw.githubusercontent.com/geoblacklight/geoblacklight-schema/master/conf/solrconfig.xml'
         
     | 
| 
       49 
48 
     | 
    
         
             
              end
         
     | 
| 
       50 
49 
     | 
    
         
             
            end
         
     | 
| 
         @@ -0,0 +1 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            //= require_tree ./downloaders
         
     | 
| 
         @@ -0,0 +1,51 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            !(function(global) {
         
     | 
| 
      
 2 
     | 
    
         
            +
              'use strict';
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
              var Downloader = L.Class.extend({
         
     | 
| 
      
 5 
     | 
    
         
            +
                options: {
         
     | 
| 
      
 6 
     | 
    
         
            +
                  spinner: $('<i class="fa fa-spinner fa-spin fa-2x fa-align-center"></i>')
         
     | 
| 
      
 7 
     | 
    
         
            +
                },
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
                initialize: function(el, options) {
         
     | 
| 
      
 10 
     | 
    
         
            +
                  L.Util.setOptions(this, options);
         
     | 
| 
      
 11 
     | 
    
         
            +
                  this.$el = $(el);
         
     | 
| 
      
 12 
     | 
    
         
            +
                  this.configureHandler();
         
     | 
| 
      
 13 
     | 
    
         
            +
                },
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
                configureHandler: function() {
         
     | 
| 
      
 16 
     | 
    
         
            +
                  this.$el.on('click', L.Util.bind(this.download, this));
         
     | 
| 
      
 17 
     | 
    
         
            +
                },
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
                download: function(ev) {
         
     | 
| 
      
 20 
     | 
    
         
            +
                  var url = this.$el.data('downloadPath');
         
     | 
| 
      
 21 
     | 
    
         
            +
                  ev.preventDefault();
         
     | 
| 
      
 22 
     | 
    
         
            +
                  this.$el.closest('.btn-group').append(this.options.spinner);
         
     | 
| 
      
 23 
     | 
    
         
            +
                  $.getJSON(url)
         
     | 
| 
      
 24 
     | 
    
         
            +
                    .done(L.Util.bind(this.complete, this))
         
     | 
| 
      
 25 
     | 
    
         
            +
                    .fail(L.Util.bind(this.error, this));
         
     | 
| 
      
 26 
     | 
    
         
            +
                },
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
                complete: function(data) {
         
     | 
| 
      
 29 
     | 
    
         
            +
                  this.renderMessage(data);
         
     | 
| 
      
 30 
     | 
    
         
            +
                  this.options.spinner.hide();
         
     | 
| 
      
 31 
     | 
    
         
            +
                },
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
                error: function(data) {
         
     | 
| 
      
 34 
     | 
    
         
            +
                  this.options.spinner.hide();
         
     | 
| 
      
 35 
     | 
    
         
            +
                },
         
     | 
| 
      
 36 
     | 
    
         
            +
             
     | 
| 
      
 37 
     | 
    
         
            +
                renderMessage: function(message) {
         
     | 
| 
      
 38 
     | 
    
         
            +
                  $.each(message, function(idx, msg) {
         
     | 
| 
      
 39 
     | 
    
         
            +
                    var flash = '<div class="alert alert-' + msg[0] + '"><button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>' + msg[1] + '</div>';
         
     | 
| 
      
 40 
     | 
    
         
            +
                    $('div.flash_messages').append(flash);
         
     | 
| 
      
 41 
     | 
    
         
            +
                  });
         
     | 
| 
      
 42 
     | 
    
         
            +
                }
         
     | 
| 
      
 43 
     | 
    
         
            +
             
     | 
| 
      
 44 
     | 
    
         
            +
              });
         
     | 
| 
      
 45 
     | 
    
         
            +
             
     | 
| 
      
 46 
     | 
    
         
            +
              global.GeoBlacklight.Downloader = Downloader;
         
     | 
| 
      
 47 
     | 
    
         
            +
              global.GeoBlacklight.downloader = function(el, options) {
         
     | 
| 
      
 48 
     | 
    
         
            +
                return new Downloader(el, options);
         
     | 
| 
      
 49 
     | 
    
         
            +
              };
         
     | 
| 
      
 50 
     | 
    
         
            +
             
     | 
| 
      
 51 
     | 
    
         
            +
            })(this);
         
     | 
| 
         @@ -0,0 +1,32 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            //= require geoblacklight/downloaders/downloader
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            !(function(global) {
         
     | 
| 
      
 4 
     | 
    
         
            +
              'use strict';
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
              var HglDownloader = global.GeoBlacklight.Downloader.extend({
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
                configureHandler: function() {
         
     | 
| 
      
 9 
     | 
    
         
            +
                  this.$el.on('submit', L.Util.bind(this.download, this));
         
     | 
| 
      
 10 
     | 
    
         
            +
                },
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
                download: function(ev) {
         
     | 
| 
      
 13 
     | 
    
         
            +
                  var url, email;
         
     | 
| 
      
 14 
     | 
    
         
            +
                  ev.preventDefault();
         
     | 
| 
      
 15 
     | 
    
         
            +
                  $(this.options.modal).modal('hide');
         
     | 
| 
      
 16 
     | 
    
         
            +
                  email = this.$el.find('#requestEmail').val();
         
     | 
| 
      
 17 
     | 
    
         
            +
                  url = this.$el.find('#requestUrl').val();
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
                  $.get(url, { email: email })
         
     | 
| 
      
 20 
     | 
    
         
            +
                    .done(L.Util.bind(this.complete, this))
         
     | 
| 
      
 21 
     | 
    
         
            +
                    .fail(L.Util.bind(this.error, this));
         
     | 
| 
      
 22 
     | 
    
         
            +
                }
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
              });
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
              global.GeoBlacklight.HglDownloader = HglDownloader;
         
     | 
| 
      
 27 
     | 
    
         
            +
              global.GeoBlacklight.hglDownloader = function(el, options) {
         
     | 
| 
      
 28 
     | 
    
         
            +
                return new HglDownloader(el, options);
         
     | 
| 
      
 29 
     | 
    
         
            +
              };
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
            })(this);
         
     | 
| 
         @@ -1,45 +1,11 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            Blacklight.onLoad(function() {
         
     | 
| 
       2 
     | 
    
         
            -
              var downloads = [];
         
     | 
| 
       3 
2 
     | 
    
         
             
              $('[data-download-path]').each(function(i, element) {
         
     | 
| 
       4 
     | 
    
         
            -
                 
     | 
| 
      
 3 
     | 
    
         
            +
                GeoBlacklight.downloader(element);
         
     | 
| 
       5 
4 
     | 
    
         
             
              });
         
     | 
| 
       6 
     | 
    
         
            -
             
     | 
| 
       7 
     | 
    
         
            -
             
     | 
| 
       8 
     | 
    
         
            -
             
     | 
| 
       9 
     | 
    
         
            -
             
     | 
| 
       10 
     | 
    
         
            -
              _this.element = $(element);
         
     | 
| 
       11 
     | 
    
         
            -
              _this.url = _this.element.data('download-path');
         
     | 
| 
       12 
     | 
    
         
            -
              _this.buttonGroup = _this.element.closest('.btn-group');
         
     | 
| 
       13 
     | 
    
         
            -
              _this.spinner = $('<i class="fa fa-spinner fa-spin fa-2x fa-align-center"></i>');
         
     | 
| 
       14 
     | 
    
         
            -
              _this.buttonGroup.append(_this.spinner.hide());
         
     | 
| 
       15 
     | 
    
         
            -
              _this.setupClickListener();
         
     | 
| 
       16 
     | 
    
         
            -
            };
         
     | 
| 
       17 
     | 
    
         
            -
             
     | 
| 
       18 
     | 
    
         
            -
            GeoBlacklight.Download.prototype = {
         
     | 
| 
       19 
     | 
    
         
            -
              setupClickListener: function() {
         
     | 
| 
       20 
     | 
    
         
            -
                var _this = this;
         
     | 
| 
       21 
     | 
    
         
            -
                _this.element.on('click', function(e) {
         
     | 
| 
       22 
     | 
    
         
            -
                  e.preventDefault();
         
     | 
| 
       23 
     | 
    
         
            -
                  _this.requestDownload();
         
     | 
| 
       24 
     | 
    
         
            -
                });
         
     | 
| 
       25 
     | 
    
         
            -
              },
         
     | 
| 
       26 
     | 
    
         
            -
              requestDownload: function() {
         
     | 
| 
       27 
     | 
    
         
            -
                var _this = this;
         
     | 
| 
       28 
     | 
    
         
            -
                _this.spinner.show();
         
     | 
| 
       29 
     | 
    
         
            -
                $.ajax({
         
     | 
| 
       30 
     | 
    
         
            -
                  url: _this.url,
         
     | 
| 
       31 
     | 
    
         
            -
                  dataType: 'json'
         
     | 
| 
       32 
     | 
    
         
            -
                }).done(function(data) {
         
     | 
| 
       33 
     | 
    
         
            -
                  _this.renderFlashMessage(data);
         
     | 
| 
       34 
     | 
    
         
            -
                  _this.spinner.hide();
         
     | 
| 
       35 
     | 
    
         
            -
                }).fail(function(data, e) {
         
     | 
| 
       36 
     | 
    
         
            -
                  _this.spinner.hide();
         
     | 
| 
       37 
     | 
    
         
            -
                });
         
     | 
| 
       38 
     | 
    
         
            -
              },
         
     | 
| 
       39 
     | 
    
         
            -
              renderFlashMessage: function(response) {
         
     | 
| 
       40 
     | 
    
         
            -
                $.each(response, function(i, val) {
         
     | 
| 
       41 
     | 
    
         
            -
                  var flashHtml = '<div class="alert alert-' + val[0] + '"><button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>' + val[1] + '</div>';
         
     | 
| 
       42 
     | 
    
         
            -
                  $('div.flash_messages').append(flashHtml);
         
     | 
| 
      
 5 
     | 
    
         
            +
              $('#ajax-modal').on('loaded.blacklight.ajax-modal', function() {
         
     | 
| 
      
 6 
     | 
    
         
            +
                var modal = this;
         
     | 
| 
      
 7 
     | 
    
         
            +
                $(this).find('#hglRequest').each(function() {
         
     | 
| 
      
 8 
     | 
    
         
            +
                  GeoBlacklight.hglDownloader(this, { modal: modal });
         
     | 
| 
       43 
9 
     | 
    
         
             
                });
         
     | 
| 
       44 
     | 
    
         
            -
              }
         
     | 
| 
       45 
     | 
    
         
            -
            };
         
     | 
| 
      
 10 
     | 
    
         
            +
              });
         
     | 
| 
      
 11 
     | 
    
         
            +
            });
         
     | 
| 
         @@ -19,6 +19,24 @@ class DownloadController < ApplicationController 
     | 
|
| 
       19 
19 
     | 
    
         
             
                send_file "tmp/cache/downloads/#{params[:id]}.#{params[:format]}", type: 'application/zip', x_sendfile: true
         
     | 
| 
       20 
20 
     | 
    
         
             
              end
         
     | 
| 
       21 
21 
     | 
    
         | 
| 
      
 22 
     | 
    
         
            +
              def hgl
         
     | 
| 
      
 23 
     | 
    
         
            +
                @response, @document = get_solr_response_for_doc_id
         
     | 
| 
      
 24 
     | 
    
         
            +
                if params[:email]
         
     | 
| 
      
 25 
     | 
    
         
            +
                  response = HglDownload.new(@document, params[:email]).get
         
     | 
| 
      
 26 
     | 
    
         
            +
                  if response.nil?
         
     | 
| 
      
 27 
     | 
    
         
            +
                    flash[:danger] = t 'geoblacklight.download.error'
         
     | 
| 
      
 28 
     | 
    
         
            +
                  else
         
     | 
| 
      
 29 
     | 
    
         
            +
                    flash[:success] = t 'geoblacklight.download.hgl_success'
         
     | 
| 
      
 30 
     | 
    
         
            +
                  end
         
     | 
| 
      
 31 
     | 
    
         
            +
                  respond_to do |format|
         
     | 
| 
      
 32 
     | 
    
         
            +
                    format.json { render json: flash, response: response }
         
     | 
| 
      
 33 
     | 
    
         
            +
                    format.html { render json: flash, response: response }
         
     | 
| 
      
 34 
     | 
    
         
            +
                  end
         
     | 
| 
      
 35 
     | 
    
         
            +
                else
         
     | 
| 
      
 36 
     | 
    
         
            +
                  render layout: false
         
     | 
| 
      
 37 
     | 
    
         
            +
                end
         
     | 
| 
      
 38 
     | 
    
         
            +
              end
         
     | 
| 
      
 39 
     | 
    
         
            +
             
     | 
| 
       22 
40 
     | 
    
         
             
              private
         
     | 
| 
       23 
41 
     | 
    
         | 
| 
       24 
42 
     | 
    
         
             
              def check_type
         
     | 
| 
         @@ -49,7 +67,7 @@ class DownloadController < ApplicationController 
     | 
|
| 
       49 
67 
     | 
    
         
             
                  authenticate_user!
         
     | 
| 
       50 
68 
     | 
    
         
             
                end
         
     | 
| 
       51 
69 
     | 
    
         
             
              end
         
     | 
| 
       52 
     | 
    
         
            -
             
     | 
| 
      
 70 
     | 
    
         
            +
             
     | 
| 
       53 
71 
     | 
    
         
             
              def file_name_to_id(file_name)
         
     | 
| 
       54 
72 
     | 
    
         
             
                file_name.split('-')[0..-2].join('-')
         
     | 
| 
       55 
73 
     | 
    
         
             
              end
         
     | 
| 
         @@ -2,7 +2,7 @@ 
     | 
|
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            <div id='geoblacklight-tools'>
         
     | 
| 
       4 
4 
     | 
    
         
             
              <div class="panel panel-default show-tools">
         
     | 
| 
       5 
     | 
    
         
            -
                <div class="panel-heading"> 
     | 
| 
      
 5 
     | 
    
         
            +
                <div class="panel-heading">
         
     | 
| 
       6 
6 
     | 
    
         
             
                  Tools
         
     | 
| 
       7 
7 
     | 
    
         
             
                </div>
         
     | 
| 
       8 
8 
     | 
    
         
             
                <div class="panel-body">
         
     | 
| 
         @@ -13,12 +13,16 @@ 
     | 
|
| 
       13 
13 
     | 
    
         
             
                    <%- end -%>
         
     | 
| 
       14 
14 
     | 
    
         
             
                    <%- if @document.respond_to?( :to_sms_text ) -%>
         
     | 
| 
       15 
15 
     | 
    
         
             
                      <%= link_to sms_helper, sms_catalog_path(:id => @document), {:id => 'smsLink', :data => {:ajax_modal => "trigger"}, :class => 'list-group-item'} %>
         
     | 
| 
       16 
     | 
    
         
            -
                    <%- end -%> 
     | 
| 
      
 16 
     | 
    
         
            +
                    <%- end -%>
         
     | 
| 
       17 
17 
     | 
    
         
             
                  </ul>
         
     | 
| 
       18 
18 
     | 
    
         
             
                  <% if document_downloadable? %>
         
     | 
| 
       19 
19 
     | 
    
         
             
                    <div class='btn-group' itemprop='distribution' itemscope='itemscope' itemtype='http://schema.org/DataDownload'>
         
     | 
| 
       20 
     | 
    
         
            -
                      <%  
     | 
| 
      
 20 
     | 
    
         
            +
                      <% if document.direct_download.present? %>
         
     | 
| 
       21 
21 
     | 
    
         
             
                        <%= link_to(download_text(@document[:dc_format_s]), document.direct_download[:download], class: 'btn btn-default', 'contentUrl' => document.direct_download[:download]) %>
         
     | 
| 
      
 22 
     | 
    
         
            +
                      <% elsif document.hgl_download.present? %>
         
     | 
| 
      
 23 
     | 
    
         
            +
                        <%= link_to(download_text(document.download_types.first[0]),
         
     | 
| 
      
 24 
     | 
    
         
            +
                            download_hgl_path(id: document), data: {ajax_modal: 'trigger'},
         
     | 
| 
      
 25 
     | 
    
         
            +
                            class: 'btn btn-default') %>
         
     | 
| 
       22 
26 
     | 
    
         
             
                      <% else %>
         
     | 
| 
       23 
27 
     | 
    
         
             
                        <%= link_to(download_text(document.download_types.first[0]), '', data: { download_path: "#{download_path(document[:layer_slug_s], type: document.download_types.first[0])}"}, class: 'btn btn-default') %>
         
     | 
| 
       24 
28 
     | 
    
         
             
                      <% end %>
         
     | 
| 
         @@ -27,20 +31,28 @@ 
     | 
|
| 
       27 
31 
     | 
    
         
             
                        <span class='sr-only'>Toggle Download Dropdown</span>
         
     | 
| 
       28 
32 
     | 
    
         
             
                      </button>
         
     | 
| 
       29 
33 
     | 
    
         
             
                      <ul class='dropdown-menu' role='menu'>
         
     | 
| 
       30 
     | 
    
         
            -
                        <%  
     | 
| 
      
 34 
     | 
    
         
            +
                        <% if document.hgl_download.present? %>
         
     | 
| 
       31 
35 
     | 
    
         
             
                          <li role="presentation" class="dropdown-header">Original</li>
         
     | 
| 
       32 
36 
     | 
    
         
             
                          <li>
         
     | 
| 
       33 
     | 
    
         
            -
                            <%= link_to(download_text( 
     | 
| 
      
 37 
     | 
    
         
            +
                            <%= link_to(download_text(document.download_types.first[0]),
         
     | 
| 
      
 38 
     | 
    
         
            +
                            download_hgl_path(id: document), data: {ajax_modal: 'trigger'}) %>
         
     | 
| 
       34 
39 
     | 
    
         
             
                          </li>
         
     | 
| 
       35 
     | 
    
         
            -
                        <%  
     | 
| 
       36 
     | 
    
         
            -
             
     | 
| 
       37 
     | 
    
         
            -
             
     | 
| 
       38 
     | 
    
         
            -
             
     | 
| 
       39 
     | 
    
         
            -
             
     | 
| 
       40 
     | 
    
         
            -
             
     | 
| 
      
 40 
     | 
    
         
            +
                        <% else %>
         
     | 
| 
      
 41 
     | 
    
         
            +
                          <% if document.direct_download.present? %>
         
     | 
| 
      
 42 
     | 
    
         
            +
                            <li role="presentation" class="dropdown-header">Original</li>
         
     | 
| 
      
 43 
     | 
    
         
            +
                            <li>
         
     | 
| 
      
 44 
     | 
    
         
            +
                              <%= link_to(download_text(@document[:dc_format_s]), document.direct_download[:download], 'contentUrl' => document.direct_download[:download]) %>
         
     | 
| 
      
 45 
     | 
    
         
            +
                            </li>
         
     | 
| 
      
 46 
     | 
    
         
            +
                          <% end %>
         
     | 
| 
      
 47 
     | 
    
         
            +
                          <% if document.download_types.present? %>
         
     | 
| 
      
 48 
     | 
    
         
            +
                            <li role="presentation" class="dropdown-header">Generated</li>
         
     | 
| 
      
 49 
     | 
    
         
            +
                            <% document.download_types.each do |type| %>
         
     | 
| 
      
 50 
     | 
    
         
            +
                              <%= content_tag(:li) do %>
         
     | 
| 
      
 51 
     | 
    
         
            +
                                <% link_to(download_text(type[0]), '', data: { download_path: "#{download_path(document[:layer_slug_s], type: type[0])}" }) %>
         
     | 
| 
      
 52 
     | 
    
         
            +
                              <% end %>
         
     | 
| 
       41 
53 
     | 
    
         
             
                            <% end %>
         
     | 
| 
       42 
     | 
    
         
            -
                          <% end %> 
     | 
| 
       43 
     | 
    
         
            -
                        <% end %> 
     | 
| 
      
 54 
     | 
    
         
            +
                          <% end %>
         
     | 
| 
      
 55 
     | 
    
         
            +
                        <% end %>
         
     | 
| 
       44 
56 
     | 
    
         
             
                      </ul>
         
     | 
| 
       45 
57 
     | 
    
         
             
                    </div>
         
     | 
| 
       46 
58 
     | 
    
         
             
                  <% elsif document.restricted? && document.same_institution? %>
         
     | 
| 
         @@ -0,0 +1,25 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            <div class="modal-header">
         
     | 
| 
      
 2 
     | 
    
         
            +
              <button type="button" class="close" data-dismiss="modal">
         
     | 
| 
      
 3 
     | 
    
         
            +
                <span aria-hidden="true">×</span>
         
     | 
| 
      
 4 
     | 
    
         
            +
              </button>
         
     | 
| 
      
 5 
     | 
    
         
            +
              <h4 class="modal-title">Request Layer</h4>
         
     | 
| 
      
 6 
     | 
    
         
            +
            </div>
         
     | 
| 
      
 7 
     | 
    
         
            +
            <div class="modal-body">
         
     | 
| 
      
 8 
     | 
    
         
            +
              <form class="form-horizontal" role="form" id="hglRequest">
         
     | 
| 
      
 9 
     | 
    
         
            +
                <p>Please enter your email address. You will receive a link to download the layer when it is ready.</p>
         
     | 
| 
      
 10 
     | 
    
         
            +
                <div class="form-group">
         
     | 
| 
      
 11 
     | 
    
         
            +
                  <label for="requestEmail" class="col-sm-2 control-label">Email</label>
         
     | 
| 
      
 12 
     | 
    
         
            +
                  <div class="col-sm-6">
         
     | 
| 
      
 13 
     | 
    
         
            +
                    <input class="form-control" type="email" id="requestEmail" />
         
     | 
| 
      
 14 
     | 
    
         
            +
                  </div>
         
     | 
| 
      
 15 
     | 
    
         
            +
                  <input type="hidden" id="requestUrl"
         
     | 
| 
      
 16 
     | 
    
         
            +
                    value="<%= download_hgl_path(id: @document) %>" />
         
     | 
| 
      
 17 
     | 
    
         
            +
                  <div class="col-sm-2">
         
     | 
| 
      
 18 
     | 
    
         
            +
                    <button type="submit" class="btn btn-primary">Request</button>
         
     | 
| 
      
 19 
     | 
    
         
            +
                  </div>
         
     | 
| 
      
 20 
     | 
    
         
            +
                </div>
         
     | 
| 
      
 21 
     | 
    
         
            +
              </form>
         
     | 
| 
      
 22 
     | 
    
         
            +
            </div>
         
     | 
| 
      
 23 
     | 
    
         
            +
            <div class="modal-footer">
         
     | 
| 
      
 24 
     | 
    
         
            +
              <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
         
     | 
| 
      
 25 
     | 
    
         
            +
            </div>
         
     | 
| 
         @@ -3,6 +3,7 @@ en: 
     | 
|
| 
       3 
3 
     | 
    
         
             
                download:
         
     | 
| 
       4 
4 
     | 
    
         
             
                  download: 'Download'
         
     | 
| 
       5 
5 
     | 
    
         
             
                  success: 'Your file %{title} is ready for download'
         
     | 
| 
      
 6 
     | 
    
         
            +
                  hgl_success: 'You should receive an email when your download is ready'
         
     | 
| 
       6 
7 
     | 
    
         
             
                  error: 'Sorry, the requested file could not be downloaded'
         
     | 
| 
       7 
8 
     | 
    
         
             
                home:
         
     | 
| 
       8 
9 
     | 
    
         
             
                  headline: 'Explore and discover...'
         
     |