Commit 56fbbef1 authored by Rene Saarsoo's avatar Rene Saarsoo
Browse files

Search also from class names.

Previously the search by class name almost worked, as we searched
also from constructor names, which happen to be the same as class
name.  Constructors are now excluded - little use of searching
from them.
parent ac260320
Loading
Loading
Loading
Loading
+15 −2
Original line number Diff line number Diff line
@@ -9,16 +9,29 @@ module JsDuck
    def create(docs)
      list = []
      docs.each do |cls|
        list << class_node(cls)
        [:cfg, :property, :method, :event].each do |type|
          cls.members(type).each do |m|
            # skip inherited items
            list << member_node(m, cls) if m[:member] == cls.full_name
            # skip inherited items and constructors
            if m[:member] == cls.full_name && m[:name] != cls.short_name
              list << member_node(m, cls)
            end
          end
        end
      end
      list
    end

    # Creates structure representing one class
    def class_node(cls)
      return {
        :cls => cls.full_name,
        :member => cls.short_name,
        :type => :cls,
        :doc => short_desc(cls[:doc])
      }
    end

    # Creates structure representing one member
    def member_node(member, cls)
      return {
+8 −2
Original line number Diff line number Diff line
@@ -329,12 +329,18 @@ Ext.extend(MainPanel, Ext.TabPanel, {
	    var resultTpl = new Ext.XTemplate(
	        '<tpl for=".">',
	        '<div class="search-item">',
	            '<a class="member docClass" rel="{cls}#{member}" href="output/{cls}.html">',
	            '<a class="member docClass" rel="{[this.rel(values)]}" href="output/{cls}.html">',
				'<img src="resources/images/default/s.gif" class="item-icon icon-{type}"/>{member}',
				'</a> ',
				'<a class="cls docClass" rel="{cls}" href="output/{cls}.html">{cls}</a>',
	            '<p>{doc}</p>',
	        '</div></tpl>'
	        '</div></tpl>',
            {
                // Different links to classes and members
                rel: function(values) {
                    return (values.type === "cls") ? values.cls : values.cls+"#"+values.member;
                }
            }
	    );

		var p = new Ext.DataView({