You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by st...@apache.org on 2013/01/12 02:31:11 UTC

svn commit: r1432351 - in /lucene/dev/trunk/solr: CHANGES.txt webapp/web/js/scripts/plugins.js

Author: steffkes
Date: Sat Jan 12 01:31:10 2013
New Revision: 1432351

URL: http://svn.apache.org/viewvc?rev=1432351&view=rev
Log:
SOLR-3458: Allow multiple Items to stay open on Plugins-Page

Modified:
    lucene/dev/trunk/solr/CHANGES.txt
    lucene/dev/trunk/solr/webapp/web/js/scripts/plugins.js

Modified: lucene/dev/trunk/solr/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/CHANGES.txt?rev=1432351&r1=1432350&r2=1432351&view=diff
==============================================================================
--- lucene/dev/trunk/solr/CHANGES.txt (original)
+++ lucene/dev/trunk/solr/CHANGES.txt Sat Jan 12 01:31:10 2013
@@ -252,6 +252,8 @@ Optimizations
 
 * SOLR-4296: Admin UI: Improve Dataimport Auto-Refresh (steffkes)
 
+* SOLR-3458: Allow multiple Items to stay open on Plugins-Page (steffkes)
+
 Bug Fixes
 ----------------------
 

Modified: lucene/dev/trunk/solr/webapp/web/js/scripts/plugins.js
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/webapp/web/js/scripts/plugins.js?rev=1432351&r1=1432350&r2=1432351&view=diff
==============================================================================
--- lucene/dev/trunk/solr/webapp/web/js/scripts/plugins.js (original)
+++ lucene/dev/trunk/solr/webapp/web/js/scripts/plugins.js Sat Jan 12 01:31:10 2013
@@ -206,7 +206,7 @@ var render_plugin_data = function( plugi
       }
 
       content += '<li class="' + classes.join( ' ' ) + '">' + "\n";
-      content += '<a href="' + context_path + '?entry=' + bean.esc() + '">';
+      content += '<a href="' + context_path + '?entry=' + bean.esc() + '" data-bean="' + bean.esc() + '">';
       content += '<span>' + bean.esc() + '</span>';
       content += '</a>' + "\n";
       content += '<ul class="detail">' + "\n";
@@ -279,8 +279,48 @@ var render_plugin_data = function( plugi
   frame_element
     .html( content );
 
-  $( 'a[href="' + decodeURIComponent( active_context.path ) + '"]', frame_element )
-    .parent().addClass( 'expanded' );
+  
+  var path = active_context.path.split( '?entry=' );
+  var entries = ( path[1] || '' ).split( ',' );
+  
+  var entry_count = entries.length;
+  for( var i = 0; i < entry_count; i++ )
+  {
+    $( 'a[data-bean="' + entries[i] + '"]', frame_element )
+      .parent().addClass( 'expanded' );
+  }
+
+  $( 'a', frame_element )
+    .off( 'click' )
+    .on
+    (
+      'click',
+      function( event )
+      { 
+        var self = $( this );
+        var bean = self.data( 'bean' );
+
+        var split = '?entry=';
+        var path = active_context.path.split( split );
+        var entry = ( path[1] || '' );
+
+        var regex = new RegExp( bean.replace( /\//g, '\\/' ) + '(,|$)' );
+        var match = regex.test( entry );
+
+        var url = path[0] + split;
+
+        url += match
+             ? entry.replace( regex, '' )
+             : entry + ',' + bean;
+
+        url = url.replace( /=,/, '=' );
+        url = url.replace( /,$/, '' );
+        url = url.replace( /\?entry=$/, '' );
+
+        active_context.redirect( url );
+        return false;
+      }
+    );
   
   // Try to make links for anything with http (but leave the rest alone)
   $( '.detail dd' ).each(function(index) {