Commit 513f61bc authored by Rene Saarsoo's avatar Rene Saarsoo
Browse files

Include guides/videos/examples to search.

parent b0d62d89
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -22,7 +22,7 @@ module JsDuck
          :guides => @assets.guides.to_array,
          :videos => @assets.videos.to_array,
          :examples => @assets.examples.to_array,
          :search => SearchData.new.create(@relations.classes),
          :search => SearchData.new.create(@relations.classes, @assets),
          :stats => @opts.stats ? Stats.new.create(@relations.classes) : [],
          :signatures => MetaTagRegistry.instance.signatures,
          :localStorageDb => @opts.local_storage_db,
+48 −4
Original line number Diff line number Diff line
@@ -4,11 +4,12 @@ module JsDuck
  # Creates list of all members in all classes that is used by the
  # searching feature in UI.
  class SearchData
    # Given list of class documentation objects returns an array of
    # hashes describing all the members.
    def create(docs)
    # Given list of classes and other assets, returns an array of
    # hashes describing the search data.
    def create(classes, assets)
      list = []
      docs.each do |cls|

      classes.each do |cls|
        list << class_node(cls)

        cls[:alternateClassNames].each do |name|
@@ -32,6 +33,13 @@ module JsDuck
          end
        end
      end

      assets.guides.each_item {|g| list << guide_node(g) }

      assets.videos.each_item {|v| list << video_node(v) }

      assets.examples.each_item {|e| list << example_node(e) }

      list
    end

@@ -84,6 +92,42 @@ module JsDuck
      }
    end

    # Creates structure representing one guide
    def guide_node(guide)
      return {
        :name => guide["title"],
        :fullName => "guide: " + guide["title"],
        :icon => "icon-guide",
        :url => "#!/guide/" + guide["name"],
        :meta => {},
        :sort => 4,
      }
    end

    # Creates structure representing one video
    def video_node(video)
      return {
        :name => video["title"],
        :fullName => "video: " + video["title"],
        :icon => "icon-video",
        :url => "#!/video/" + video["name"],
        :meta => {},
        :sort => 4,
      }
    end

    # Creates structure representing one example
    def example_node(example)
      return {
        :name => example["title"],
        :fullName => "example: " + example["title"],
        :icon => "icon-example",
        :url => "#!/example/" + example["name"],
        :meta => {},
        :sort => 4,
      }
    end

    # Some alias types are shown differently.
    # e.g. instead of "widget:" we show "xtype:"
    def alias_display_name(key)
+2 −2
Original line number Diff line number Diff line
@@ -32,10 +32,10 @@ Ext.define("Docs.ClassRegistry", {
     * ordered by best matches first.
     */
    search: function(text) {
        // Each record has 1 of 4 possible sorting orders,
        // Each record has 1 of 5 possible sorting orders,
        // which is *3 by it being public/private/removed,
        // and *3 by full/beginning/middle matches.
        var results = new Array(4 * 3 * 3);
        var results = new Array(5 * 3 * 3);
        for (var i=0; i<results.length; i++) {
            results[i] = [];
        }
+3 −0
Original line number Diff line number Diff line
@@ -84,6 +84,9 @@
    border-style: solid;
    border-color: $docs-border-color;
    color: #605f5f;
    // Avoid wrapping titles of guides, videos, etc.
    .title, .class {
      white-space: pre; }
    .title {
      font-weight: bold;
      overflow: hidden;