From 7945128829807c2a4cee690913b0d345551fb90c Mon Sep 17 00:00:00 2001
From: Chris Hallberg <crhallberg@gmail.com>
Date: Thu, 31 Jul 2014 14:40:13 -0400
Subject: [PATCH] New Lightbox displayError logic to add a close button if only
 an alert is in the Lightbox.

---
 themes/bootstrap3/js/lightbox.js | 15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)

diff --git a/themes/bootstrap3/js/lightbox.js b/themes/bootstrap3/js/lightbox.js
index e769354b121..f208903b7d9 100644
--- a/themes/bootstrap3/js/lightbox.js
+++ b/themes/bootstrap3/js/lightbox.js
@@ -152,7 +152,7 @@ var Lightbox = {
    * This function changes the content of the lightbox to a message with a close button
    */
   confirm: function(message) {
-    this.changeContent('<div class="alert alert-info">'+message+'</div><button class="btn" onClick="Lightbox.close()">'+vufindString['close']+'</button>');
+    this.changeContent('<div class="alert alert-info">'+message+'</div><button class="btn btn-default" onClick="Lightbox.close()">'+vufindString['close']+'</button>');
   },
   /**
    * Regexes a piece of html to find an error alert
@@ -164,7 +164,7 @@ var Lightbox = {
     var fi = html.indexOf('<div class="alert alert-danger">');
     if(fi > -1) {
       var li = html.indexOf('</div>', fi+31);
-      Lightbox.displayError(html.substring(fi+31, li));
+      Lightbox.displayError(html.substring(fi+31, li).replace(/^[\s\>\<]+|[\s\>\<]+$/g, ''));
     } else {
       success(html);
     }
@@ -174,10 +174,15 @@ var Lightbox = {
    */
   displayError: function(message) {
     var alert = $('#modal .modal-body .alert');
-    if(alert.length > 0) {
+    var html = $.parseHTML($('#modal .modal-body').html());
+    // Page with alert already present
+    if(alert.length > 0 && html.length > 1) {
       $(alert).html(message);
-    } else if($('#modal .modal-body').html() == vufindString.loading+"...") {
-      $('#modal .modal-body').html('<div class="alert alert-danger">'+message+'</div><button class="btn" onClick="Lightbox.close()">'+vufindString['close']+'</button>');
+    // Empty or alert only, change to message with button
+    } else if($('#modal .modal-body').html() == vufindString.loading+"..."
+    || (html.length == 1 && $(html).hasClass('alert-danger'))) {
+      Lightbox.changeContent('<div class="alert alert-danger">'+message+'</div><button class="btn btn-default" onClick="Lightbox.close()">'+vufindString['close']+'</button>');
+    // Page without alert
     } else {
       $('#modal .modal-body').prepend('<div class="alert alert-danger">'+message+'</div>');
     }
-- 
GitLab