blacklight 6.11.0 → 6.11.1
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/VERSION +1 -1
 - data/app/assets/javascripts/blacklight/ajax_modal.js +53 -63
 - data/app/controllers/concerns/blacklight/catalog.rb +5 -4
 - data/app/helpers/blacklight/catalog_helper_behavior.rb +5 -1
 - data/app/helpers/blacklight/component_helper_behavior.rb +11 -1
 - data/app/helpers/blacklight/configuration_helper_behavior.rb +8 -1
 - data/app/helpers/blacklight/url_helper_behavior.rb +2 -2
 - data/app/models/concerns/blacklight/document.rb +6 -7
 - data/app/models/concerns/blacklight/document/semantic_fields.rb +5 -3
 - data/app/views/catalog/_show_tools.html.erb +26 -24
 - data/app/views/catalog/_view_type_group.html.erb +1 -1
 - data/lib/blacklight/utils.rb +1 -1
 - data/spec/helpers/catalog_helper_spec.rb +1 -1
 - data/spec/helpers/configuration_helper_spec.rb +12 -0
 - data/spec/helpers/url_helper_spec.rb +3 -3
 - data/spec/models/blacklight/solr/document_spec.rb +9 -3
 - data/spec/views/catalog/_show_tools.html.erb_spec.rb +12 -0
 - metadata +2 -2
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 8a72b5c9469391daec118e8cfef69fd9960cf687
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 1a9a6c9147a770fa9ffaa107d789618b39b2c2fd
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 286d8992abd602981c3603da27a5fe7aa9d7f5796b1b32c4ee63f1afdd66ca3ea50d7a5b15ebf2ea03102b3460a19e5f4ebf0a5a12f2b36772f6971a08cc7f3c
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 9d8b1df273e758854c4e79407cd4817a8561e6b1879100855a1db2400d43fc54219e9ef4c41ba5c69074897915328dd54876f252ba702bc5b6734516c7e32f9e
         
     | 
    
        data/VERSION
    CHANGED
    
    | 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            6.11. 
     | 
| 
      
 1 
     | 
    
         
            +
            6.11.1
         
     | 
| 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            //= require blacklight/core
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
     | 
    
         
            -
            /* 
     | 
| 
      
 3 
     | 
    
         
            +
            /*
         
     | 
| 
       4 
4 
     | 
    
         
             
              The ajax_modal plugin can display some interactions inside a Bootstrap
         
     | 
| 
       5 
     | 
    
         
            -
              modal window, including some multi-page interactions. 
     | 
| 
      
 5 
     | 
    
         
            +
              modal window, including some multi-page interactions.
         
     | 
| 
       6 
6 
     | 
    
         | 
| 
       7 
7 
     | 
    
         
             
              It supports unobtrusive Javascript, where a link or form that would have caused
         
     | 
| 
       8 
8 
     | 
    
         
             
              a new page load is changed to display it's results inside a modal dialog,
         
     | 
| 
       9 
9 
     | 
    
         
             
              by this plugin.  The plugin assumes there is a Bootstrap modal div
         
     | 
| 
       10 
10 
     | 
    
         
             
              on the page with id #ajax-modal to use as the modal -- the standard Blacklight
         
     | 
| 
       11 
     | 
    
         
            -
              layout provides this. 
     | 
| 
      
 11 
     | 
    
         
            +
              layout provides this.
         
     | 
| 
       12 
12 
     | 
    
         | 
| 
       13 
13 
     | 
    
         
             
              To make a link or form have their results display inside a modal, add
         
     | 
| 
       14 
14 
     | 
    
         
             
              `data-ajax-modal="trigger"` to the link or form. (Note, form itself not submit input)
         
     | 
| 
         @@ -23,18 +23,18 @@ 
     | 
|
| 
       23 
23 
     | 
    
         
             
              the layout when a JS AJAX request is detected, OR the response
         
     | 
| 
       24 
24 
     | 
    
         
             
              can include a `<div data-ajax-modal="container">` -- only the contents
         
     | 
| 
       25 
25 
     | 
    
         
             
              of the container will be placed inside the modal, the rest of the
         
     | 
| 
       26 
     | 
    
         
            -
              page will be ignored. 
     | 
| 
      
 26 
     | 
    
         
            +
              page will be ignored.
         
     | 
| 
       27 
27 
     | 
    
         | 
| 
       28 
28 
     | 
    
         
             
              If you'd like to have a link or button that closes the modal,
         
     | 
| 
       29 
29 
     | 
    
         
             
              you can just add a `data-dismiss="modal"` to the link,
         
     | 
| 
       30 
30 
     | 
    
         
             
              standard Bootstrap convention. But you can also have
         
     | 
| 
       31 
31 
     | 
    
         
             
              an href on this link for non-JS contexts, we'll make sure
         
     | 
| 
       32 
     | 
    
         
            -
              inside the modal it closes the modal and the link is NOT followed. 
     | 
| 
      
 32 
     | 
    
         
            +
              inside the modal it closes the modal and the link is NOT followed.
         
     | 
| 
       33 
33 
     | 
    
         | 
| 
       34 
34 
     | 
    
         
             
              Link or forms inside the modal will ordinarily cause page loads
         
     | 
| 
       35 
35 
     | 
    
         
             
              when they are triggered. However, if you'd like their results
         
     | 
| 
       36 
36 
     | 
    
         
             
              to stay within the modal, just add `data-ajax-modal="preserve"`
         
     | 
| 
       37 
     | 
    
         
            -
              to the link or form. 
     | 
| 
      
 37 
     | 
    
         
            +
              to the link or form.
         
     | 
| 
       38 
38 
     | 
    
         | 
| 
       39 
39 
     | 
    
         
             
              Here's an example of what might be returned, demonstrating most of the devices available:
         
     | 
| 
       40 
40 
     | 
    
         | 
| 
         @@ -43,7 +43,7 @@ 
     | 
|
| 
       43 
43 
     | 
    
         
             
                    <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
         
     | 
| 
       44 
44 
     | 
    
         
             
                    <h3 class="modal-title">Request Placed</h3>
         
     | 
| 
       45 
45 
     | 
    
         
             
                  </div>
         
     | 
| 
       46 
     | 
    
         
            -
             
     | 
| 
      
 46 
     | 
    
         
            +
             
     | 
| 
       47 
47 
     | 
    
         
             
                  <div class="modal-body">
         
     | 
| 
       48 
48 
     | 
    
         
             
                    <p>Some message</p>
         
     | 
| 
       49 
49 
     | 
    
         
             
                    <%= link_to "This result will still be within modal", some_link, :data => {:ajax_modal => "preserve"} %>
         
     | 
| 
         @@ -59,22 +59,22 @@ 
     | 
|
| 
       59 
59 
     | 
    
         
             
              One additional feature. If the content returned from the AJAX modal load
         
     | 
| 
       60 
60 
     | 
    
         
             
              has an element with `data-ajax-modal=close`, that will trigger the modal
         
     | 
| 
       61 
61 
     | 
    
         
             
              to be closed. And if this element includes a node with class "flash_messages",
         
     | 
| 
       62 
     | 
    
         
            -
              the flash-messages node will be added to the main page inside #main-flahses. 
     | 
| 
      
 62 
     | 
    
         
            +
              the flash-messages node will be added to the main page inside #main-flahses.
         
     | 
| 
       63 
63 
     | 
    
         | 
| 
       64 
64 
     | 
    
         
             
              == Events
         
     | 
| 
       65 
65 
     | 
    
         | 
| 
       66 
66 
     | 
    
         
             
              We'll send out an event 'loaded.blacklight.ajax-modal' with the #ajax-modal
         
     | 
| 
       67 
67 
     | 
    
         
             
              dialog as the target, right after content is loaded into the modal but before
         
     | 
| 
       68 
     | 
    
         
            -
              it is shown (if not already a shown modal).  In an event handler, you can 
     | 
| 
      
 68 
     | 
    
         
            +
              it is shown (if not already a shown modal).  In an event handler, you can
         
     | 
| 
       69 
69 
     | 
    
         
             
              inspect loaded content by looking inside $(this).  If you call event.preventDefault(),
         
     | 
| 
       70 
70 
     | 
    
         
             
              we won't 'show' the dialog (although it may already have been shown, you may want to
         
     | 
| 
       71 
     | 
    
         
            -
              $(this).modal("hide") if you want to ensure hidden/closed. 
     | 
| 
      
 71 
     | 
    
         
            +
              $(this).modal("hide") if you want to ensure hidden/closed.
         
     | 
| 
       72 
72 
     | 
    
         | 
| 
       73 
     | 
    
         
            -
              The data-ajax-modal=close behavior is implemented with this event, see for example. 
     | 
| 
      
 73 
     | 
    
         
            +
              The data-ajax-modal=close behavior is implemented with this event, see for example.
         
     | 
| 
       74 
74 
     | 
    
         
             
            */
         
     | 
| 
       75 
75 
     | 
    
         | 
| 
       76 
     | 
    
         
            -
            // We keep all our data in Blacklight.ajaxModal object. 
     | 
| 
       77 
     | 
    
         
            -
            // Create lazily if someone else created first. 
     | 
| 
      
 76 
     | 
    
         
            +
            // We keep all our data in Blacklight.ajaxModal object.
         
     | 
| 
      
 77 
     | 
    
         
            +
            // Create lazily if someone else created first.
         
     | 
| 
       78 
78 
     | 
    
         
             
            if (Blacklight.ajaxModal === undefined) {
         
     | 
| 
       79 
79 
     | 
    
         
             
              Blacklight.ajaxModal = {};
         
     | 
| 
       80 
80 
     | 
    
         
             
            }
         
     | 
| 
         @@ -104,67 +104,57 @@ Blacklight.ajaxModal.modalCloseSelector   = "[data-ajax-modal~=close], span.ajax 
     | 
|
| 
       104 
104 
     | 
    
         | 
| 
       105 
105 
     | 
    
         
             
            // Called on fatal failure of ajax load, function returns content
         
     | 
| 
       106 
106 
     | 
    
         
             
            // to show to user in modal.  Right now called only for extreme
         
     | 
| 
       107 
     | 
    
         
            -
            // network errors. 
     | 
| 
      
 107 
     | 
    
         
            +
            // network errors.
         
     | 
| 
       108 
108 
     | 
    
         
             
            Blacklight.ajaxModal.onFailure = function(data) {
         
     | 
| 
       109 
109 
     | 
    
         
             
              var contents =  "<div class='modal-header'>" +
         
     | 
| 
       110 
110 
     | 
    
         
             
                       "<button type='button' class='close' data-dismiss='modal' aria-hidden='true'>×</button>" +
         
     | 
| 
       111 
111 
     | 
    
         
             
                       "Network Error</div>";
         
     | 
| 
       112 
112 
     | 
    
         
             
              $(Blacklight.ajaxModal.modalSelector).find('.modal-content').html(contents);
         
     | 
| 
       113 
     | 
    
         
            -
              $(Blacklight.ajaxModal.modalSelector).modal('show'); 
     | 
| 
      
 113 
     | 
    
         
            +
              $(Blacklight.ajaxModal.modalSelector).modal('show');
         
     | 
| 
       114 
114 
     | 
    
         
             
            }
         
     | 
| 
       115 
115 
     | 
    
         | 
| 
       116 
     | 
    
         
            -
            Blacklight.ajaxModal.receiveAjax = function ( 
     | 
| 
       117 
     | 
    
         
            -
             
     | 
| 
       118 
     | 
    
         
            -
             
     | 
| 
       119 
     | 
    
         
            -
             
     | 
| 
       120 
     | 
    
         
            -
             
     | 
| 
       121 
     | 
    
         
            -
                   
     | 
| 
       122 
     | 
    
         
            -
             
     | 
| 
       123 
     | 
    
         
            -
                  
         
     | 
| 
       124 
     | 
    
         
            -
             
     | 
| 
       125 
     | 
    
         
            -
             
     | 
| 
       126 
     | 
    
         
            -
             
     | 
| 
       127 
     | 
    
         
            -
             
     | 
| 
       128 
     | 
    
         
            -
             
     | 
| 
       129 
     | 
    
         
            -
             
     | 
| 
       130 
     | 
    
         
            -
             
     | 
| 
       131 
     | 
    
         
            -
             
     | 
| 
       132 
     | 
    
         
            -
             
     | 
| 
       133 
     | 
    
         
            -
             
     | 
| 
       134 
     | 
    
         
            -
             
     | 
| 
       135 
     | 
    
         
            -
                    // send custom event with the modal dialog div as the target
         
     | 
| 
       136 
     | 
    
         
            -
                    var e    = $.Event('loaded.blacklight.ajax-modal')
         
     | 
| 
       137 
     | 
    
         
            -
                    $(Blacklight.ajaxModal.modalSelector).trigger(e);
         
     | 
| 
       138 
     | 
    
         
            -
                    // if they did preventDefault, don't show the dialog
         
     | 
| 
       139 
     | 
    
         
            -
                    if (e.isDefaultPrevented()) return;
         
     | 
| 
       140 
     | 
    
         
            -
             
     | 
| 
       141 
     | 
    
         
            -
                    $(Blacklight.ajaxModal.modalSelector).modal('show');      
         
     | 
| 
       142 
     | 
    
         
            -
                  }
         
     | 
| 
      
 116 
     | 
    
         
            +
            Blacklight.ajaxModal.receiveAjax = function (contents) {
         
     | 
| 
      
 117 
     | 
    
         
            +
                // does it have a data- selector for container?
         
     | 
| 
      
 118 
     | 
    
         
            +
                // important we don't execute script tags, we shouldn't.
         
     | 
| 
      
 119 
     | 
    
         
            +
                // code modelled off of JQuery ajax.load. https://github.com/jquery/jquery/blob/master/src/ajax/load.js?source=c#L62
         
     | 
| 
      
 120 
     | 
    
         
            +
                var container =  $("<div>").
         
     | 
| 
      
 121 
     | 
    
         
            +
                  append( jQuery.parseHTML(contents) ).find( Blacklight.ajaxModal.containerSelector ).first();
         
     | 
| 
      
 122 
     | 
    
         
            +
                if (container.length !== 0) {
         
     | 
| 
      
 123 
     | 
    
         
            +
                  contents = container.html();
         
     | 
| 
      
 124 
     | 
    
         
            +
                }
         
     | 
| 
      
 125 
     | 
    
         
            +
             
     | 
| 
      
 126 
     | 
    
         
            +
                $(Blacklight.ajaxModal.modalSelector).find('.modal-content').html(contents);
         
     | 
| 
      
 127 
     | 
    
         
            +
             
     | 
| 
      
 128 
     | 
    
         
            +
                // send custom event with the modal dialog div as the target
         
     | 
| 
      
 129 
     | 
    
         
            +
                var e    = $.Event('loaded.blacklight.blacklight-modal')
         
     | 
| 
      
 130 
     | 
    
         
            +
                $(Blacklight.ajaxModal.modalSelector).trigger(e);
         
     | 
| 
      
 131 
     | 
    
         
            +
                // if they did preventDefault, don't show the dialog
         
     | 
| 
      
 132 
     | 
    
         
            +
                if (e.isDefaultPrevented()) return;
         
     | 
| 
      
 133 
     | 
    
         
            +
             
     | 
| 
      
 134 
     | 
    
         
            +
                $(Blacklight.ajaxModal.modalSelector).modal('show');
         
     | 
| 
       143 
135 
     | 
    
         
             
            };
         
     | 
| 
       144 
136 
     | 
    
         | 
| 
       145 
137 
     | 
    
         | 
| 
       146 
138 
     | 
    
         
             
            Blacklight.ajaxModal.modalAjaxLinkClick = function(e) {
         
     | 
| 
       147 
139 
     | 
    
         
             
              e.preventDefault();
         
     | 
| 
       148 
140 
     | 
    
         | 
| 
       149 
     | 
    
         
            -
               
     | 
| 
       150 
     | 
    
         
            -
                url: $(this).attr('href') 
     | 
| 
       151 
     | 
    
         
            -
             
     | 
| 
       152 
     | 
    
         
            -
               
     | 
| 
       153 
     | 
    
         
            -
             
     | 
| 
       154 
     | 
    
         
            -
              jqxhr.always( Blacklight.ajaxModal.receiveAjax );
         
     | 
| 
      
 141 
     | 
    
         
            +
              $.ajax({
         
     | 
| 
      
 142 
     | 
    
         
            +
                url: $(this).attr('href')
         
     | 
| 
      
 143 
     | 
    
         
            +
              })
         
     | 
| 
      
 144 
     | 
    
         
            +
              .fail(Blacklight.ajaxModal.onFailure)
         
     | 
| 
      
 145 
     | 
    
         
            +
              .done(Blacklight.ajaxModal.receiveAjax)
         
     | 
| 
       155 
146 
     | 
    
         
             
            };
         
     | 
| 
       156 
147 
     | 
    
         | 
| 
       157 
148 
     | 
    
         
             
            Blacklight.ajaxModal.modalAjaxFormSubmit = function(e) {
         
     | 
| 
       158 
     | 
    
         
            -
             
     | 
| 
       159 
     | 
    
         
            -
             
     | 
| 
       160 
     | 
    
         
            -
              var jqxhr = $.ajax({
         
     | 
| 
       161 
     | 
    
         
            -
                url: $(this).attr('action'),
         
     | 
| 
       162 
     | 
    
         
            -
                data: $(this).serialize(),
         
     | 
| 
       163 
     | 
    
         
            -
                type: $(this).attr('method'), //POST',
         
     | 
| 
       164 
     | 
    
         
            -
                dataType: 'script'
         
     | 
| 
       165 
     | 
    
         
            -
             });
         
     | 
| 
      
 149 
     | 
    
         
            +
                e.preventDefault();
         
     | 
| 
       166 
150 
     | 
    
         | 
| 
       167 
     | 
    
         
            -
             
     | 
| 
      
 151 
     | 
    
         
            +
                $.ajax({
         
     | 
| 
      
 152 
     | 
    
         
            +
                  url: $(this).attr('action'),
         
     | 
| 
      
 153 
     | 
    
         
            +
                  data: $(this).serialize(),
         
     | 
| 
      
 154 
     | 
    
         
            +
                  type: $(this).attr('method') // POST
         
     | 
| 
      
 155 
     | 
    
         
            +
                })
         
     | 
| 
      
 156 
     | 
    
         
            +
                .fail(Blacklight.ajaxModal.onFailure)
         
     | 
| 
      
 157 
     | 
    
         
            +
                .done(Blacklight.ajaxModal.receiveAjax)
         
     | 
| 
       168 
158 
     | 
    
         
             
            }
         
     | 
| 
       169 
159 
     | 
    
         | 
| 
       170 
160 
     | 
    
         | 
| 
         @@ -172,14 +162,14 @@ Blacklight.ajaxModal.modalAjaxFormSubmit = function(e) { 
     | 
|
| 
       172 
162 
     | 
    
         
             
            Blacklight.ajaxModal.setup_modal = function() {
         
     | 
| 
       173 
163 
     | 
    
         
             
            	// Event indicating blacklight is setting up a modal link,
         
     | 
| 
       174 
164 
     | 
    
         
             
              // you can catch it and call e.preventDefault() to abort
         
     | 
| 
       175 
     | 
    
         
            -
              // setup. 
     | 
| 
      
 165 
     | 
    
         
            +
              // setup.
         
     | 
| 
       176 
166 
     | 
    
         
             
            	var e = $.Event('setup.blacklight.ajax-modal');
         
     | 
| 
       177 
167 
     | 
    
         
             
            	$("body").trigger(e);
         
     | 
| 
       178 
168 
     | 
    
         
             
            	if (e.isDefaultPrevented()) return;
         
     | 
| 
       179 
169 
     | 
    
         | 
| 
       180 
170 
     | 
    
         
             
              // Register both trigger and preserve selectors in ONE event handler, combining
         
     | 
| 
       181 
171 
     | 
    
         
             
              // into one selector with a comma, so if something matches BOTH selectors, it
         
     | 
| 
       182 
     | 
    
         
            -
              // still only gets the event handler called once. 
     | 
| 
      
 172 
     | 
    
         
            +
              // still only gets the event handler called once.
         
     | 
| 
       183 
173 
     | 
    
         
             
              $("body").on("click", Blacklight.ajaxModal.triggerLinkSelector  + ", " + Blacklight.ajaxModal.preserveLinkSelector,
         
     | 
| 
       184 
174 
     | 
    
         
             
                Blacklight.ajaxModal.modalAjaxLinkClick);
         
     | 
| 
       185 
175 
     | 
    
         
             
              $("body").on("submit", Blacklight.ajaxModal.triggerFormSelector + ", " + Blacklight.ajaxModal.preserveFormSelector,
         
     | 
| 
         @@ -190,7 +180,7 @@ Blacklight.ajaxModal.setup_modal = function() { 
     | 
|
| 
       190 
180 
     | 
    
         | 
| 
       191 
181 
     | 
    
         
             
              // we support doing data-dismiss=modal on a <a> with a href for non-ajax
         
     | 
| 
       192 
182 
     | 
    
         
             
              // use, we need to suppress following the a's href that's there for
         
     | 
| 
       193 
     | 
    
         
            -
              // non-JS contexts. 
     | 
| 
      
 183 
     | 
    
         
            +
              // non-JS contexts.
         
     | 
| 
       194 
184 
     | 
    
         
             
              $("body ").on("click", Blacklight.ajaxModal.modalSelector + " a[data-dismiss~=modal]", function (e) {
         
     | 
| 
       195 
185 
     | 
    
         
             
                e.preventDefault();
         
     | 
| 
       196 
186 
     | 
    
         
             
              });
         
     | 
| 
         @@ -198,7 +188,7 @@ Blacklight.ajaxModal.setup_modal = function() { 
     | 
|
| 
       198 
188 
     | 
    
         | 
| 
       199 
189 
     | 
    
         
             
            // A function used as an event handler on loaded.blacklight.ajax-modal
         
     | 
| 
       200 
190 
     | 
    
         
             
            // to catch contained data-ajax-modal=closed directions
         
     | 
| 
       201 
     | 
    
         
            -
            Blacklight.ajaxModal.check_close_ajax_modal = function(event) { 
     | 
| 
      
 191 
     | 
    
         
            +
            Blacklight.ajaxModal.check_close_ajax_modal = function(event) {
         
     | 
| 
       202 
192 
     | 
    
         
             
              if ($(event.target).find(Blacklight.ajaxModal.modalCloseSelector).length) {
         
     | 
| 
       203 
193 
     | 
    
         
             
                modal_flashes = $(this).find('.flash_messages');
         
     | 
| 
       204 
194 
     | 
    
         | 
| 
         @@ -207,10 +197,10 @@ Blacklight.ajaxModal.check_close_ajax_modal = function(event) { 
     | 
|
| 
       207 
197 
     | 
    
         | 
| 
       208 
198 
     | 
    
         
             
                main_flashes = $('#main-flashes');
         
     | 
| 
       209 
199 
     | 
    
         
             
                main_flashes.append(modal_flashes);
         
     | 
| 
       210 
     | 
    
         
            -
                modal_flashes.fadeIn(500); 
     | 
| 
      
 200 
     | 
    
         
            +
                modal_flashes.fadeIn(500);
         
     | 
| 
       211 
201 
     | 
    
         
             
              }
         
     | 
| 
       212 
202 
     | 
    
         
             
            }
         
     | 
| 
       213 
203 
     | 
    
         | 
| 
       214 
     | 
    
         
            -
            Blacklight.onLoad(function() { 
     | 
| 
      
 204 
     | 
    
         
            +
            Blacklight.onLoad(function() {
         
     | 
| 
       215 
205 
     | 
    
         
             
              Blacklight.ajaxModal.setup_modal();
         
     | 
| 
       216 
206 
     | 
    
         
             
            });
         
     | 
| 
         @@ -71,11 +71,12 @@ module Blacklight::Catalog 
     | 
|
| 
       71 
71 
     | 
    
         
             
                  @display_facet = @response.aggregations[@facet.field]
         
     | 
| 
       72 
72 
     | 
    
         
             
                  @pagination = facet_paginator(@facet, @display_facet)
         
     | 
| 
       73 
73 
     | 
    
         
             
                  respond_to do |format|
         
     | 
| 
       74 
     | 
    
         
            -
                     
     | 
| 
       75 
     | 
    
         
            -
             
     | 
| 
      
 74 
     | 
    
         
            +
                    format.html do
         
     | 
| 
      
 75 
     | 
    
         
            +
                      # Draw the partial for the "more" facet modal window:
         
     | 
| 
      
 76 
     | 
    
         
            +
                      return render layout: false if request.xhr?
         
     | 
| 
      
 77 
     | 
    
         
            +
                      # Otherwise draw the facet selector for users who have javascript disabled.
         
     | 
| 
      
 78 
     | 
    
         
            +
                    end
         
     | 
| 
       76 
79 
     | 
    
         
             
                    format.json
         
     | 
| 
       77 
     | 
    
         
            -
                    # Draw the partial for the "more" facet modal window:
         
     | 
| 
       78 
     | 
    
         
            -
                    format.js { render :layout => false }
         
     | 
| 
       79 
80 
     | 
    
         
             
                  end
         
     | 
| 
       80 
81 
     | 
    
         
             
                end
         
     | 
| 
       81 
82 
     | 
    
         | 
| 
         @@ -214,7 +214,11 @@ module Blacklight::CatalogHelperBehavior 
     | 
|
| 
       214 
214 
     | 
    
         
             
                end
         
     | 
| 
       215 
215 
     | 
    
         | 
| 
       216 
216 
     | 
    
         
             
                if value
         
     | 
| 
       217 
     | 
    
         
            -
                  if url_options == false 
     | 
| 
      
 217 
     | 
    
         
            +
                  if url_options == false
         
     | 
| 
      
 218 
     | 
    
         
            +
                    Deprecation.warn(self, "passing false as the second argument to render_thumbnail_tag is deprecated. Use suppress_link: true instead. This behavior will be removed in Blacklight 7")
         
     | 
| 
      
 219 
     | 
    
         
            +
                    url_options = { suppress_link: true }
         
     | 
| 
      
 220 
     | 
    
         
            +
                  end
         
     | 
| 
      
 221 
     | 
    
         
            +
                  if url_options[:suppress_link]
         
     | 
| 
       218 
222 
     | 
    
         
             
                    value
         
     | 
| 
       219 
223 
     | 
    
         
             
                  else
         
     | 
| 
       220 
224 
     | 
    
         
             
                    link_to_document document, value, url_options
         
     | 
| 
         @@ -54,7 +54,7 @@ module Blacklight 
     | 
|
| 
       54 
54 
     | 
    
         | 
| 
       55 
55 
     | 
    
         
             
                def render_filtered_partials(partials, options={}, &block)
         
     | 
| 
       56 
56 
     | 
    
         
             
                  content = []
         
     | 
| 
       57 
     | 
    
         
            -
                  partials 
     | 
| 
      
 57 
     | 
    
         
            +
                  filter_partials(partials, options).each do |key, config|
         
     | 
| 
       58 
58 
     | 
    
         
             
                    config.key ||= key
         
     | 
| 
       59 
59 
     | 
    
         
             
                    rendered = render(partial: config.partial || key.to_s, locals: { document_action_config: config }.merge(options))
         
     | 
| 
       60 
60 
     | 
    
         
             
                    if block_given?
         
     | 
| 
         @@ -78,5 +78,15 @@ module Blacklight 
     | 
|
| 
       78 
78 
     | 
    
         
             
                def render_show_doc_actions(document=@document, options={}, &block)
         
     | 
| 
       79 
79 
     | 
    
         
             
                  render_filtered_partials(blacklight_config.show.document_actions, { document: document }.merge(options), &block)
         
     | 
| 
       80 
80 
     | 
    
         
             
                end
         
     | 
| 
      
 81 
     | 
    
         
            +
             
     | 
| 
      
 82 
     | 
    
         
            +
                def show_doc_actions?(document = @document, options = {})
         
     | 
| 
      
 83 
     | 
    
         
            +
                  filter_partials(blacklight_config.show.document_actions, { document: document }.merge(options)).any?
         
     | 
| 
      
 84 
     | 
    
         
            +
                end
         
     | 
| 
      
 85 
     | 
    
         
            +
             
     | 
| 
      
 86 
     | 
    
         
            +
                private
         
     | 
| 
      
 87 
     | 
    
         
            +
             
     | 
| 
      
 88 
     | 
    
         
            +
                def filter_partials(partials, options)
         
     | 
| 
      
 89 
     | 
    
         
            +
                  partials.select { |_, config| blacklight_configuration_context.evaluate_if_unless_configuration config, options }
         
     | 
| 
      
 90 
     | 
    
         
            +
                end
         
     | 
| 
       81 
91 
     | 
    
         
             
              end
         
     | 
| 
       82 
92 
     | 
    
         
             
            end
         
     | 
| 
         @@ -130,7 +130,14 @@ module Blacklight::ConfigurationHelperBehavior 
     | 
|
| 
       130 
130 
     | 
    
         
             
                  should_render_field? config
         
     | 
| 
       131 
131 
     | 
    
         
             
                end
         
     | 
| 
       132 
132 
     | 
    
         
             
              end
         
     | 
| 
       133 
     | 
    
         
            -
             
     | 
| 
      
 133 
     | 
    
         
            +
             
     | 
| 
      
 134 
     | 
    
         
            +
              # filter #document_index_views to just views that should display in the view type control
         
     | 
| 
      
 135 
     | 
    
         
            +
              def document_index_view_controls
         
     | 
| 
      
 136 
     | 
    
         
            +
                document_index_views.select do |_k, config|
         
     | 
| 
      
 137 
     | 
    
         
            +
                  config.display_control.nil? || blacklight_configuration_context.evaluate_configuration_conditional(config.display_control)
         
     | 
| 
      
 138 
     | 
    
         
            +
                end
         
     | 
| 
      
 139 
     | 
    
         
            +
              end
         
     | 
| 
      
 140 
     | 
    
         
            +
             
     | 
| 
       134 
141 
     | 
    
         
             
              ##
         
     | 
| 
       135 
142 
     | 
    
         
             
              # Get the default index view type
         
     | 
| 
       136 
143 
     | 
    
         
             
              def default_document_index_view_type
         
     | 
| 
         @@ -76,9 +76,9 @@ module Blacklight::UrlHelperBehavior 
     | 
|
| 
       76 
76 
     | 
    
         
             
                return if document.nil?
         
     | 
| 
       77 
77 
     | 
    
         | 
| 
       78 
78 
     | 
    
         
             
                if respond_to?(controller_tracking_method)
         
     | 
| 
       79 
     | 
    
         
            -
                  send(controller_tracking_method, params.merge(id: document 
     | 
| 
      
 79 
     | 
    
         
            +
                  send(controller_tracking_method, params.merge(id: document))
         
     | 
| 
       80 
80 
     | 
    
         
             
                else
         
     | 
| 
       81 
     | 
    
         
            -
                  blacklight.track_search_context_path(params.merge(id: document 
     | 
| 
      
 81 
     | 
    
         
            +
                  blacklight.track_search_context_path(params.merge(id: document))
         
     | 
| 
       82 
82 
     | 
    
         
             
                end
         
     | 
| 
       83 
83 
     | 
    
         
             
              end
         
     | 
| 
       84 
84 
     | 
    
         | 
| 
         @@ -37,7 +37,7 @@ module Blacklight::Document 
     | 
|
| 
       37 
37 
     | 
    
         
             
                extend ActiveModel::Naming
         
     | 
| 
       38 
38 
     | 
    
         
             
                include Blacklight::Document::Extensions
         
     | 
| 
       39 
39 
     | 
    
         
             
                include GlobalID::Identification
         
     | 
| 
       40 
     | 
    
         
            -
              end 
     | 
| 
      
 40 
     | 
    
         
            +
              end
         
     | 
| 
       41 
41 
     | 
    
         | 
| 
       42 
42 
     | 
    
         
             
              attr_reader :response, :_source
         
     | 
| 
       43 
43 
     | 
    
         
             
              alias_method :solr_response, :response
         
     | 
| 
         @@ -69,15 +69,14 @@ module Blacklight::Document 
     | 
|
| 
       69 
69 
     | 
    
         
             
              end
         
     | 
| 
       70 
70 
     | 
    
         | 
| 
       71 
71 
     | 
    
         
             
              def respond_to_missing? m, *args
         
     | 
| 
       72 
     | 
    
         
            -
                return super if  
     | 
| 
       73 
     | 
    
         
            -
             
     | 
| 
      
 72 
     | 
    
         
            +
                return super if %i(empty? to_hash).include?(m)
         
     | 
| 
       74 
73 
     | 
    
         
             
                _source_responds_to?(m, *args) || super
         
     | 
| 
       75 
74 
     | 
    
         
             
              end
         
     | 
| 
       76 
75 
     | 
    
         | 
| 
       77 
76 
     | 
    
         
             
              # Helper method to check if value/multi-values exist for a given key.
         
     | 
| 
       78 
77 
     | 
    
         
             
              # The value can be a string, or a RegExp
         
     | 
| 
       79 
78 
     | 
    
         
             
              # Multiple "values" can be given; only one needs to match.
         
     | 
| 
       80 
     | 
    
         
            -
              # 
     | 
| 
      
 79 
     | 
    
         
            +
              #
         
     | 
| 
       81 
80 
     | 
    
         
             
              # Example:
         
     | 
| 
       82 
81 
     | 
    
         
             
              # doc.has?(:location_facet)
         
     | 
| 
       83 
82 
     | 
    
         
             
              # doc.has?(:location_facet, 'Clemons')
         
     | 
| 
         @@ -141,12 +140,12 @@ module Blacklight::Document 
     | 
|
| 
       141 
140 
     | 
    
         
             
              module ClassMethods
         
     | 
| 
       142 
141 
     | 
    
         
             
                attr_writer :unique_key
         
     | 
| 
       143 
142 
     | 
    
         
             
                def unique_key
         
     | 
| 
       144 
     | 
    
         
            -
                  @unique_key ||= 'id' 
     | 
| 
      
 143 
     | 
    
         
            +
                  @unique_key ||= 'id'
         
     | 
| 
       145 
144 
     | 
    
         
             
                end
         
     | 
| 
       146 
145 
     | 
    
         
             
              end
         
     | 
| 
       147 
     | 
    
         
            -
             
     | 
| 
      
 146 
     | 
    
         
            +
             
     | 
| 
       148 
147 
     | 
    
         
             
              private
         
     | 
| 
       149 
     | 
    
         
            -
             
     | 
| 
      
 148 
     | 
    
         
            +
             
     | 
| 
       150 
149 
     | 
    
         
             
              def _source_responds_to? *args
         
     | 
| 
       151 
150 
     | 
    
         
             
                _source && self != _source && _source.respond_to?(*args)
         
     | 
| 
       152 
151 
     | 
    
         
             
              end
         
     | 
| 
         @@ -34,12 +34,14 @@ module Blacklight::Document 
     | 
|
| 
       34 
34 
     | 
    
         
             
                # but extensions should call super and modify hash returned, to avoid
         
     | 
| 
       35 
35 
     | 
    
         
             
                # unintentionally erasing values provided by other extensions. 
         
     | 
| 
       36 
36 
     | 
    
         
             
                def to_semantic_values
         
     | 
| 
       37 
     | 
    
         
            -
                  @semantic_value_hash ||= self.class.field_semantics.each_with_object(Hash.new([])) do |(key,  
     | 
| 
       38 
     | 
    
         
            -
                     
     | 
| 
      
 37 
     | 
    
         
            +
                  @semantic_value_hash ||= self.class.field_semantics.each_with_object(Hash.new([])) do |(key, field_names), hash|
         
     | 
| 
      
 38 
     | 
    
         
            +
                    ##
         
     | 
| 
      
 39 
     | 
    
         
            +
                    # Handles single string field_name or an array of field_names
         
     | 
| 
      
 40 
     | 
    
         
            +
                    value = Array.wrap(field_names).map { |field_name| self[field_name] }.flatten.compact
         
     | 
| 
       39 
41 
     | 
    
         | 
| 
       40 
42 
     | 
    
         
             
                    # Make single and multi-values all arrays, so clients
         
     | 
| 
       41 
43 
     | 
    
         
             
                    # don't have to know.
         
     | 
| 
       42 
     | 
    
         
            -
                    hash[key] =  
     | 
| 
      
 44 
     | 
    
         
            +
                    hash[key] = value unless value.empty?
         
     | 
| 
       43 
45 
     | 
    
         
             
                  end
         
     | 
| 
       44 
46 
     | 
    
         | 
| 
       45 
47 
     | 
    
         
             
                  @semantic_value_hash ||= {}
         
     | 
| 
         @@ -1,24 +1,26 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            <%-
         
     | 
| 
       2 
     | 
    
         
            -
              # Compare with render_document_functions_partial helper, and
         
     | 
| 
       3 
     | 
    
         
            -
              # _document_functions partial. BL actually has two groups
         
     | 
| 
       4 
     | 
    
         
            -
              # of document-related tools. "document functions" by default
         
     | 
| 
       5 
     | 
    
         
            -
              # contains Bookmark functionality shown on both results and
         
     | 
| 
       6 
     | 
    
         
            -
              # item view. While "document tools" contains external export type
         
     | 
| 
       7 
     | 
    
         
            -
              # functions by default only on detail.
         
     | 
| 
       8 
     | 
    
         
            -
             
     | 
| 
       9 
     | 
    
         
            -
            -%>
         
     | 
| 
       10 
     | 
    
         
            -
             
     | 
| 
       11 
     | 
    
         
            -
              <div class="panel- 
     | 
| 
       12 
     | 
    
         
            -
                 
     | 
| 
       13 
     | 
    
         
            -
             
     | 
| 
       14 
     | 
    
         
            -
             
     | 
| 
       15 
     | 
    
         
            -
             
     | 
| 
       16 
     | 
    
         
            -
                < 
     | 
| 
       17 
     | 
    
         
            -
                   
     | 
| 
       18 
     | 
    
         
            -
                     
     | 
| 
       19 
     | 
    
         
            -
                      <%=  
     | 
| 
       20 
     | 
    
         
            -
             
     | 
| 
       21 
     | 
    
         
            -
             
     | 
| 
       22 
     | 
    
         
            -
             
     | 
| 
       23 
     | 
    
         
            -
             
     | 
| 
       24 
     | 
    
         
            -
            </div>
         
     | 
| 
      
 1 
     | 
    
         
            +
            <%-
         
     | 
| 
      
 2 
     | 
    
         
            +
              # Compare with render_document_functions_partial helper, and
         
     | 
| 
      
 3 
     | 
    
         
            +
              # _document_functions partial. BL actually has two groups
         
     | 
| 
      
 4 
     | 
    
         
            +
              # of document-related tools. "document functions" by default
         
     | 
| 
      
 5 
     | 
    
         
            +
              # contains Bookmark functionality shown on both results and
         
     | 
| 
      
 6 
     | 
    
         
            +
              # item view. While "document tools" contains external export type
         
     | 
| 
      
 7 
     | 
    
         
            +
              # functions by default only on detail.
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
            -%>
         
     | 
| 
      
 10 
     | 
    
         
            +
            <% if show_doc_actions? %>
         
     | 
| 
      
 11 
     | 
    
         
            +
              <div class="panel panel-default show-tools">
         
     | 
| 
      
 12 
     | 
    
         
            +
                <div class="panel-heading">
         
     | 
| 
      
 13 
     | 
    
         
            +
                  <%= t('blacklight.tools.title') %>
         
     | 
| 
      
 14 
     | 
    
         
            +
                </div>
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
                <div class="panel-body">
         
     | 
| 
      
 17 
     | 
    
         
            +
                  <ul class="nav">
         
     | 
| 
      
 18 
     | 
    
         
            +
                    <%= render_show_doc_actions @document do |config, inner| %>
         
     | 
| 
      
 19 
     | 
    
         
            +
                      <li class="<%= config.key %>">
         
     | 
| 
      
 20 
     | 
    
         
            +
                        <%= inner %>
         
     | 
| 
      
 21 
     | 
    
         
            +
                      </li>
         
     | 
| 
      
 22 
     | 
    
         
            +
                    <% end %>
         
     | 
| 
      
 23 
     | 
    
         
            +
                  </ul>
         
     | 
| 
      
 24 
     | 
    
         
            +
                </div>
         
     | 
| 
      
 25 
     | 
    
         
            +
              </div>
         
     | 
| 
      
 26 
     | 
    
         
            +
            <% end %>
         
     | 
| 
         @@ -2,7 +2,7 @@ 
     | 
|
| 
       2 
2 
     | 
    
         
             
            <div class="view-type">
         
     | 
| 
       3 
3 
     | 
    
         
             
              <span class="sr-only"><%= t('blacklight.search.view_title') %></span>
         
     | 
| 
       4 
4 
     | 
    
         
             
              <div class="view-type-group btn-group">
         
     | 
| 
       5 
     | 
    
         
            -
                <%   
     | 
| 
      
 5 
     | 
    
         
            +
                <%  document_index_view_controls.each do |view, config| %>
         
     | 
| 
       6 
6 
     | 
    
         
             
                  <%= link_to url_for(search_state.to_h.merge(view: view)), title: view_label(view), class: "btn btn-default view-type-#{ view.to_s.parameterize } #{"active" if document_index_view_type == view}" do %>
         
     | 
| 
       7 
7 
     | 
    
         
             
                    <%= render_view_type_group_icon view %>
         
     | 
| 
       8 
8 
     | 
    
         
             
                    <span class="caption"><%= view_label(view) %></span>
         
     | 
    
        data/lib/blacklight/utils.rb
    CHANGED
    
    | 
         @@ -14,7 +14,7 @@ module Blacklight 
     | 
|
| 
       14 
14 
     | 
    
         
             
              ##
         
     | 
| 
       15 
15 
     | 
    
         
             
              # An OpenStruct that responds to common Hash methods
         
     | 
| 
       16 
16 
     | 
    
         
             
              class OpenStructWithHashAccess < OpenStruct
         
     | 
| 
       17 
     | 
    
         
            -
                delegate :keys, :each, :map, :has_key?, :key?, :include?, :empty?, :length, :delete, :delete_if, :keep_if, :clear, :reject!, :select!, :replace, :fetch, :to_json, :as_json, to: :to_h
         
     | 
| 
      
 17 
     | 
    
         
            +
                delegate :keys, :each, :map, :has_key?, :key?, :include?, :empty?, :length, :delete, :delete_if, :keep_if, :clear, :reject!, :select!, :replace, :fetch, :to_json, :as_json, :any?, to: :to_h
         
     | 
| 
       18 
18 
     | 
    
         | 
| 
       19 
19 
     | 
    
         
             
                ##
         
     | 
| 
       20 
20 
     | 
    
         
             
                # Expose the internal hash
         
     | 
| 
         @@ -243,7 +243,7 @@ describe CatalogHelper do 
     | 
|
| 
       243 
243 
     | 
    
         
             
                it "does not link to the document if the url options are false" do
         
     | 
| 
       244 
244 
     | 
    
         
             
                  allow(helper).to receive_messages(:blacklight_config => Blacklight::Configuration.new(:index => Blacklight::OpenStructWithHashAccess.new(:thumbnail_method => :xyz) ))
         
     | 
| 
       245 
245 
     | 
    
         
             
                  allow(helper).to receive_messages(:xyz => "some-thumbnail")
         
     | 
| 
       246 
     | 
    
         
            -
             
     | 
| 
      
 246 
     | 
    
         
            +
                  expect(Deprecation).to receive(:warn)
         
     | 
| 
       247 
247 
     | 
    
         
             
                  result = helper.render_thumbnail_tag document, {}, false
         
     | 
| 
       248 
248 
     | 
    
         
             
                  expect(result).to eq "some-thumbnail"
         
     | 
| 
       249 
249 
     | 
    
         
             
                end
         
     | 
| 
         @@ -65,6 +65,18 @@ describe BlacklightConfigurationHelper do 
     | 
|
| 
       65 
65 
     | 
    
         
             
                end
         
     | 
| 
       66 
66 
     | 
    
         
             
              end
         
     | 
| 
       67 
67 
     | 
    
         | 
| 
      
 68 
     | 
    
         
            +
              describe '#document_index_view_controls' do
         
     | 
| 
      
 69 
     | 
    
         
            +
                before do
         
     | 
| 
      
 70 
     | 
    
         
            +
                  blacklight_config.view.a
         
     | 
| 
      
 71 
     | 
    
         
            +
                  blacklight_config.view.b.display_control = false
         
     | 
| 
      
 72 
     | 
    
         
            +
                end
         
     | 
| 
      
 73 
     | 
    
         
            +
             
     | 
| 
      
 74 
     | 
    
         
            +
                it "filters index views to those set to display controls" do
         
     | 
| 
      
 75 
     | 
    
         
            +
                  expect(helper.document_index_view_controls).to have_key :a
         
     | 
| 
      
 76 
     | 
    
         
            +
                  expect(helper.document_index_view_controls).not_to have_key :b
         
     | 
| 
      
 77 
     | 
    
         
            +
                end
         
     | 
| 
      
 78 
     | 
    
         
            +
              end
         
     | 
| 
      
 79 
     | 
    
         
            +
             
     | 
| 
       68 
80 
     | 
    
         
             
              describe "#has_alternative_views?" do
         
     | 
| 
       69 
81 
     | 
    
         
             
                subject { helper.has_alternative_views?}
         
     | 
| 
       70 
82 
     | 
    
         
             
                describe "with a single view defined" do
         
     | 
| 
         @@ -245,7 +245,7 @@ describe BlacklightUrlHelper do 
     | 
|
| 
       245 
245 
     | 
    
         
             
                end
         
     | 
| 
       246 
246 
     | 
    
         | 
| 
       247 
247 
     | 
    
         
             
                it "converts the counter parameter into a data- attribute" do
         
     | 
| 
       248 
     | 
    
         
            -
                  allow(helper).to receive(:track_test_path).with(hash_including(id: '123456', counter: 5)).and_return('tracking url')
         
     | 
| 
      
 248 
     | 
    
         
            +
                  allow(helper).to receive(:track_test_path).with(hash_including(id: have_attributes(id: '123456'), counter: 5)).and_return('tracking url')
         
     | 
| 
       249 
249 
     | 
    
         | 
| 
       250 
250 
     | 
    
         
             
                  expect(helper.link_to_document(document, :title_display, counter: 5)).to include 'data-context-href="tracking url"'
         
     | 
| 
       251 
251 
     | 
    
         
             
                end
         
     | 
| 
         @@ -287,12 +287,12 @@ describe BlacklightUrlHelper do 
     | 
|
| 
       287 
287 
     | 
    
         
             
              describe "#session_tracking_path" do
         
     | 
| 
       288 
288 
     | 
    
         
             
                let(:document) { SolrDocument.new(id: 1) }
         
     | 
| 
       289 
289 
     | 
    
         
             
                it "determines the correct route for the document class" do
         
     | 
| 
       290 
     | 
    
         
            -
                  allow(helper).to receive(:track_test_path).with(id: 1).and_return('x')
         
     | 
| 
      
 290 
     | 
    
         
            +
                  allow(helper).to receive(:track_test_path).with(id: have_attributes(id: 1)).and_return('x')
         
     | 
| 
       291 
291 
     | 
    
         
             
                  expect(helper.session_tracking_path(document)).to eq 'x'
         
     | 
| 
       292 
292 
     | 
    
         
             
                end
         
     | 
| 
       293 
293 
     | 
    
         | 
| 
       294 
294 
     | 
    
         
             
                it "passes through tracking parameters" do
         
     | 
| 
       295 
     | 
    
         
            -
                  allow(helper).to receive(:track_test_path).with(id: 1, x: 1).and_return('x')
         
     | 
| 
      
 295 
     | 
    
         
            +
                  allow(helper).to receive(:track_test_path).with(id: have_attributes(id: 1), x: 1).and_return('x')
         
     | 
| 
       296 
296 
     | 
    
         
             
                  expect(helper.session_tracking_path(document, x: 1)).to eq 'x'
         
     | 
| 
       297 
297 
     | 
    
         
             
                end
         
     | 
| 
       298 
298 
     | 
    
         
             
              end
         
     | 
| 
         @@ -199,17 +199,23 @@ describe "Blacklight::Solr::Document" do 
     | 
|
| 
       199 
199 
     | 
    
         
             
                      include Blacklight::Solr::Document                        
         
     | 
| 
       200 
200 
     | 
    
         
             
                  end
         
     | 
| 
       201 
201 
     | 
    
         
             
                  before do
         
     | 
| 
       202 
     | 
    
         
            -
                    MockDocument.field_semantics.merge!( 
     | 
| 
       203 
     | 
    
         
            -
             
     | 
| 
      
 202 
     | 
    
         
            +
                    MockDocument.field_semantics.merge!(
         
     | 
| 
      
 203 
     | 
    
         
            +
                      title: ["title_field", "other_title"],
         
     | 
| 
      
 204 
     | 
    
         
            +
                      author: "author_field",
         
     | 
| 
      
 205 
     | 
    
         
            +
                      something: "something_field"
         
     | 
| 
      
 206 
     | 
    
         
            +
                    )
         
     | 
| 
      
 207 
     | 
    
         
            +
             
     | 
| 
       204 
208 
     | 
    
         
             
                    @doc1 = MockDocument.new( 
         
     | 
| 
       205 
209 
     | 
    
         
             
                       "title_field" => "doc1 title",
         
     | 
| 
      
 210 
     | 
    
         
            +
                       "other_title" => "doc1 title other",
         
     | 
| 
       206 
211 
     | 
    
         
             
                       "something_field" => ["val1", "val2"],
         
     | 
| 
       207 
212 
     | 
    
         
             
                       "not_in_list_field" => "weird stuff" 
         
     | 
| 
       208 
213 
     | 
    
         
             
                     )
         
     | 
| 
       209 
214 
     | 
    
         
             
                  end
         
     | 
| 
       210 
215 
     | 
    
         | 
| 
       211 
216 
     | 
    
         
             
                  it "should return complete dictionary based on config'd fields" do        
         
     | 
| 
       212 
     | 
    
         
            -
                    expect(@doc1.to_semantic_values) 
     | 
| 
      
 217 
     | 
    
         
            +
                    expect(@doc1.to_semantic_values)
         
     | 
| 
      
 218 
     | 
    
         
            +
                      .to eq title: ["doc1 title", "doc1 title other"], something: ["val1", "val2"]
         
     | 
| 
       213 
219 
     | 
    
         
             
                  end      
         
     | 
| 
       214 
220 
     | 
    
         
             
                  it "should return empty array for a key without a value" do
         
     | 
| 
       215 
221 
     | 
    
         
             
                    expect(@doc1.to_semantic_values[:author]).to be_empty
         
     | 
| 
         @@ -69,5 +69,17 @@ describe "catalog/_show_tools.html.erb" do 
     | 
|
| 
       69 
69 
     | 
    
         
             
                  render partial: 'catalog/show_tools'
         
     | 
| 
       70 
70 
     | 
    
         
             
                  expect(rendered).not_to have_selector '.some_action > a[data-ajax-modal="trigger"]', text: "Some action"
         
     | 
| 
       71 
71 
     | 
    
         
             
                end
         
     | 
| 
      
 72 
     | 
    
         
            +
             
     | 
| 
      
 73 
     | 
    
         
            +
                context 'without any document actions defined' do
         
     | 
| 
      
 74 
     | 
    
         
            +
                  before do
         
     | 
| 
      
 75 
     | 
    
         
            +
                    document_actions.clear
         
     | 
| 
      
 76 
     | 
    
         
            +
                  end
         
     | 
| 
      
 77 
     | 
    
         
            +
             
     | 
| 
      
 78 
     | 
    
         
            +
                  it 'does not display the tools' do
         
     | 
| 
      
 79 
     | 
    
         
            +
                    render partial: 'catalog/show_tools'
         
     | 
| 
      
 80 
     | 
    
         
            +
             
     | 
| 
      
 81 
     | 
    
         
            +
                    expect(rendered).to be_blank
         
     | 
| 
      
 82 
     | 
    
         
            +
                  end
         
     | 
| 
      
 83 
     | 
    
         
            +
                end
         
     | 
| 
       72 
84 
     | 
    
         
             
              end
         
     | 
| 
       73 
85 
     | 
    
         
             
            end
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: blacklight
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 6.11. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 6.11.1
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Jonathan Rochkind
         
     | 
| 
         @@ -17,7 +17,7 @@ authors: 
     | 
|
| 
       17 
17 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       18 
18 
     | 
    
         
             
            bindir: exe
         
     | 
| 
       19 
19 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       20 
     | 
    
         
            -
            date: 2017-08 
     | 
| 
      
 20 
     | 
    
         
            +
            date: 2017-09-08 00:00:00.000000000 Z
         
     | 
| 
       21 
21 
     | 
    
         
             
            dependencies:
         
     | 
| 
       22 
22 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       23 
23 
     | 
    
         
             
              name: rails
         
     |