You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ry...@apache.org on 2012/04/06 20:16:27 UTC

svn commit: r1310532 - in /lucene/dev/trunk/solr/webapp/web: css/styles/plugins.css js/lib/linker.js js/main.js js/scripts/plugins.js

Author: ryan
Date: Fri Apr  6 18:16:26 2012
New Revision: 1310532

URL: http://svn.apache.org/viewvc?rev=1310532&view=rev
Log:
SOLR-3326: Show plugin links as real links

Added:
    lucene/dev/trunk/solr/webapp/web/js/lib/linker.js   (with props)
Modified:
    lucene/dev/trunk/solr/webapp/web/css/styles/plugins.css
    lucene/dev/trunk/solr/webapp/web/js/main.js
    lucene/dev/trunk/solr/webapp/web/js/scripts/plugins.js

Modified: lucene/dev/trunk/solr/webapp/web/css/styles/plugins.css
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/webapp/web/css/styles/plugins.css?rev=1310532&r1=1310531&r2=1310532&view=diff
==============================================================================
--- lucene/dev/trunk/solr/webapp/web/css/styles/plugins.css (original)
+++ lucene/dev/trunk/solr/webapp/web/css/styles/plugins.css Fri Apr  6 18:16:26 2012
@@ -1,3 +1,4 @@
+
 #content #plugins #navigation
 {
   width: 20%;
@@ -101,4 +102,16 @@
 #content #plugins #frame .entry .stats dd
 {
   width: 72%;
-}
\ No newline at end of file
+}
+
+#content #plugins #frame .entry.expanded a.linker {
+  background-image: none;
+  background-position: 0 0;
+  display: inline;
+  font-weight: normal;
+  padding:0px;
+}
+
+#content #plugins #frame .entry.expanded a.linker:hover {
+  background-color:#F0F3FF;
+}

Added: lucene/dev/trunk/solr/webapp/web/js/lib/linker.js
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/webapp/web/js/lib/linker.js?rev=1310532&view=auto
==============================================================================
--- lucene/dev/trunk/solr/webapp/web/js/lib/linker.js (added)
+++ lucene/dev/trunk/solr/webapp/web/js/lib/linker.js Fri Apr  6 18:16:26 2012
@@ -0,0 +1,48 @@
+//by Michalis Tzikas & Vasilis Lolos
+//07-03-2012
+//v1.0
+/*
+Copyright (C) 2011 by Michalis Tzikas & Vasilis Lolos
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+*/
+(function( $ ){
+  $.fn.linker = function(options) {
+    var defaults = {
+      target   : '', //blank,self,parent,top
+      className : '',
+      rel : ''
+    };
+    var options = $.extend(defaults, options);
+        
+    target_string = (options.target != '') ? 'target="_'+options.target+'"' : '';
+    class_string  = (options.className != '') ? 'class="'+options.className+'"' : '';
+    rel_string    = (options.rel != '') ? 'rel="'+options.rel+'"' : '';
+
+    $(this).each(function(){
+      t = $(this).text();
+      
+      t = t.replace(/(https\:\/\/|http:\/\/)([www\.]?)([^\s|<]+)/gi,'<a href="$1$2$3" '+target_string+' '+class_string+' '+rel_string+'>$1$2$3</a>');
+      t = t.replace(/([^https\:\/\/]|[^http:\/\/]|^)(www)\.([^\s|<]+)/gi,'$1<a href="http://$2.$3" '+target_string+' '+class_string+' '+rel_string+'>$2.$3</a>');
+      t = t.replace(/<([^a]|^\/a])([^<>]+)>/g, "&lt;$1$2&gt;").replace(/&lt;\/a&gt;/g, "</a>").replace(/<(.)>/g, "&lt;$1&gt;").replace(/\n/g, '<br />');
+
+      $(this).html(t);
+    });
+  };
+})( jQuery );
\ No newline at end of file

Modified: lucene/dev/trunk/solr/webapp/web/js/main.js
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/webapp/web/js/main.js?rev=1310532&r1=1310531&r2=1310532&view=diff
==============================================================================
--- lucene/dev/trunk/solr/webapp/web/js/main.js (original)
+++ lucene/dev/trunk/solr/webapp/web/js/main.js Fri Apr  6 18:16:26 2012
@@ -27,6 +27,7 @@ require
     'lib/order!lib/jquery.sparkline',
     'lib/order!lib/jquery.timeago',
     'lib/order!lib/highlight',
+    'lib/order!lib/linker',
     'lib/order!lib/ZeroClipboard',
     'lib/order!lib/d3',
     'lib/order!lib/chosen',

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=1310532&r1=1310531&r2=1310532&view=diff
==============================================================================
--- lucene/dev/trunk/solr/webapp/web/js/scripts/plugins.js (original)
+++ lucene/dev/trunk/solr/webapp/web/js/scripts/plugins.js Fri Apr  6 18:16:26 2012
@@ -185,16 +185,25 @@ sammy.get
 
                   if( 'description' === detail_key )
                   {
-                    detail_value = detail_value.replace( /,/g, ',&#8203;' );
-                  }
-                  else if( 'src' === detail_key )
-                  {
-                    detail_value = detail_value.replace( /\//g, '/&#8203;' );
+                    // For list of components
+                    if(detail_value.match(/^Search using components: /)) {
+                      detail_value = detail_value
+                        .replace( /: /, ':<ul><li>' )
+                        .replace( /,/g, '</li><li>' ) +
+                        "</li></ul>";
+                    }
                   }
 
                   content += '<li><dl class="clearfix">' + "\n";
                   content += '<dt>' + detail_key + ':</dt>' + "\n";
-                  content += '<dd>' + detail_value + '</dd>' + "\n";
+                  if($.isArray(detail_value)) {
+                    $.each(detail_value, function(index, value) { 
+                      content += '<dd>' + value + '</dd>' + "\n";
+                    });
+                  }
+                  else {
+                    content += '<dd>' + detail_value + '</dd>' + "\n";
+                  }
                   content += '</dl></li>' + "\n";
                 }
                 else if( 'stats' === detail_key && details[detail_key] )
@@ -232,6 +241,24 @@ sammy.get
 
           $( 'a[href="' + decodeURIComponent( context.path ) + '"]', frame_element )
             .parent().addClass( 'expanded' );
+          
+          // Try to make links for anythign with http (but leave the rest alone)
+          $( '.detail dd' ).each(function(index) {
+            var txt = $(this).html();
+            if(txt.indexOf("http") >= 0) {
+              $(this).linker({
+                 target: '', //blank,self,parent,top
+                 className : 'linker',
+                 rel : ''
+              });
+            }
+          });
+          
+          // Add invisible whitespace after each slash
+          $( '.detail a.linker' ).each(function(index) {
+            $(this).html( $(this).html().replace( /\//g, '/&#8203;' ) );
+          });
+          
                     
           $( '.entry', frame_element )
             .each