From ebcf3977a28477df6e6fdbad3bf425581d19ccc1 Mon Sep 17 00:00:00 2001 From: Amanda Kassay Date: Thu, 31 Mar 2016 10:03:57 -0400 Subject: [PATCH] Tabs js error fix, DevSite css issues fix, Search filtering Staged: http://akassay.nyc.corp.google.com:8080/index.html#q=Activity Change-Id: Id25525a8d8c927ea67cd13b43652d75ce53733cf --- .../templates-sdk-dev/assets/css/default.css | 30 +++++ tools/droiddoc/templates-sdk-dev/assets/js/docs.js | 124 +++++++++++++++------ 2 files changed, 119 insertions(+), 35 deletions(-) diff --git a/tools/droiddoc/templates-sdk-dev/assets/css/default.css b/tools/droiddoc/templates-sdk-dev/assets/css/default.css index 3c045ce86..6fef2419d 100644 --- a/tools/droiddoc/templates-sdk-dev/assets/css/default.css +++ b/tools/droiddoc/templates-sdk-dev/assets/css/default.css @@ -9887,3 +9887,33 @@ a.video-shadowbox-button.white:hover::after { position: absolute; top: -4px; } + +/** CSS Fixes for DevSite (akassay@) */ +.dac-button-social, +.dac-fab:not('.dac-scroll-button') { + position: relative; +} + +.dac-button-social .dac-sprite, +.dac-fab .dac-sprite, +.play-button .dac-sprite { + margin-top: -7px; + position: relative; + top: 50%; +} + +.dac-fab .dac-sprite.dac-arrow-down-gray { + margin-top: -3px; +} + +.dac-button-social .dac-sprite.dac-gplus { + margin-top: -17px; +} + +.play-button .dac-sprite { + margin-top: -10px; +} + +.dac-nav-link-forward { + padding: 9px 0; +} diff --git a/tools/droiddoc/templates-sdk-dev/assets/js/docs.js b/tools/droiddoc/templates-sdk-dev/assets/js/docs.js index 60cb860d1..9afed711e 100644 --- a/tools/droiddoc/templates-sdk-dev/assets/js/docs.js +++ b/tools/droiddoc/templates-sdk-dev/assets/js/docs.js @@ -15,7 +15,8 @@ $.ajaxSetup({ $(document).ready(function() { // prep nav expandos - var pagePath = document.location.pathname; + var pagePath = devsite ? + location.href.replace(location.hash, '') : document.location.pathname; // account for intl docs by removing the intl/*/ path if (pagePath.indexOf("/intl/") == 0) { pagePath = pagePath.substr(pagePath.indexOf("/", 6)); // start after intl/ to get last / @@ -3378,12 +3379,22 @@ window.changeLangPref = changeLangPref; })(); var localeTarget = (function() { var localeTarget = locale; - if (location.pathname.substring(0,6) == "/intl/") { - var target = location.pathname.split('/')[2]; - if (!(target === 0) || (LANGUAGES.indexOf(target) === -1)) { - localeTarget = target; + if (window.devsite) { + if (getQueryVariable('hl')) { + var target = getQueryVariable('hl'); + if (!(target === 0) || (LANGUAGES.indexOf(target) === -1)) { + localeTarget = target; + } + } + } else { + if (location.pathname.substring(0,6) == "/intl/") { + var target = location.pathname.split('/')[2]; + if (!(target === 0) || (LANGUAGES.indexOf(target) === -1)) { + localeTarget = target; + } } } + return localeTarget; })(); @@ -5357,7 +5368,8 @@ window.metadata.search = (function() { return $.get('https://content.googleapis.com/customsearch/v1?' + $.param(searchParams)); } - function renderResults(el, results) { + function renderResults(el, results, searchAppliance) { + var referenceResults = searchAppliance.getReferenceResults(); if (!results.items) { el.append($('
').text('No results')); return; @@ -5365,27 +5377,37 @@ window.metadata.search = (function() { for (var i = 0; i < results.items.length; i++) { var item = results.items[i]; - var hasImage = item.pagemap && item.pagemap.cse_thumbnail; - var sectionMatch = item.link.match(/developer\.android\.com\/(\w*)/); - var section = (sectionMatch && sectionMatch[1]) || 'blog'; + var isDuplicate = false; + $(referenceResults.android).each(function(index, result) { + if (item.link.indexOf(result.link) > -1) { + isDuplicate = true; + return false; + } + }); - var entry = $('
').addClass('dac-custom-search-entry cols'); + if (!isDuplicate) { + var hasImage = item.pagemap && item.pagemap.cse_thumbnail; + var sectionMatch = item.link.match(/developer\.android\.com\/(\w*)/); + var section = (sectionMatch && sectionMatch[1]) || 'blog'; - if (hasImage) { - var image = item.pagemap.cse_thumbnail[0]; - entry.append($('
').addClass('dac-custom-search-image-wrapper') - .append($('
').addClass('dac-custom-search-image').css('background-image', 'url(' + image.src + ')'))); - } + var entry = $('
').addClass('dac-custom-search-entry cols'); - entry.append($('
').addClass('dac-custom-search-text-wrapper') - .append($('

').addClass('dac-custom-search-section').text(section)) - .append( - $('').text(item.title).attr('href', item.link).wrap('

').parent().addClass('dac-custom-search-title') - ) - .append($('

').addClass('dac-custom-search-snippet').html(item.htmlSnippet.replace(/
/g, ''))) - .append($('
').addClass('dac-custom-search-link').text(item.formattedUrl).attr('href', item.link))); + if (hasImage) { + var image = item.pagemap.cse_thumbnail[0]; + entry.append($('

').addClass('dac-custom-search-image-wrapper') + .append($('
').addClass('dac-custom-search-image').css('background-image', 'url(' + image.src + ')'))); + } + + entry.append($('
').addClass('dac-custom-search-text-wrapper') + .append($('

').addClass('dac-custom-search-section').text(section)) + .append( + $('').text(item.title).attr('href', item.link).wrap('

').parent().addClass('dac-custom-search-title') + ) + .append($('

').addClass('dac-custom-search-snippet').html(item.htmlSnippet.replace(/
/g, ''))) + .append($('
').addClass('dac-custom-search-link').text(item.formattedUrl).attr('href', item.link))); - el.append(entry); + el.append(entry); + } } if (results.queries.nextPage) { @@ -5393,32 +5415,32 @@ window.metadata.search = (function() { .addClass('dac-custom-search-load-more') .text('Load more') .click(function() { - loadMoreResults(el, results); + loadMoreResults(el, results, searchAppliance); }); el.append(loadMoreButton); } - } + }; - function loadMoreResults(el, results) { - var query = results.queries.request.searchTerms; - var start = results.queries.nextPage.startIndex; + function loadMoreResults(el, results, searchAppliance) { + var query = results.queries.request[0].searchTerms; + var start = results.queries.nextPage[0].startIndex; var loadMoreButton = el.find('#dac-custom-search-load-more'); loadMoreButton.text('Loading more...'); customSearch(query, start).then(function(results) { loadMoreButton.remove(); - renderResults(el, results); + renderResults(el, results, searchAppliance); }); } - $.fn.customSearch = function(query) { + $.fn.customSearch = function(query, searchAppliance) { var el = $(this); customSearch(query).then(function(results) { el.empty(); - renderResults(el, results); + renderResults(el, results, searchAppliance); }); }; })(jQuery); @@ -5625,10 +5647,11 @@ window.metadata.search = (function() { this.searchResultsHero = $('#dac-search-results-hero'); this.searchResultsReference = $('#dac-search-results-reference'); this.searchHeader = $('[data-search]').data('search-input.dac'); + this.currQueryReferenceResults = {}; } Search.prototype.init = function() { - if (this.checkRedirectToIndex()) { return; } + if (!devsite && this.checkRedirectToIndex()) { return; } this.searchHistory = window.dacStore('search-history'); @@ -5639,9 +5662,8 @@ window.metadata.search = (function() { this.searchClose.click(this.close.bind(this)); this.customSearch = $.fn.debounce(function(query) { - $('#dac-custom-search-results').customSearch(query); - }, 1000); - + $('#dac-custom-search-results').customSearch(query, this); + }.bind(this), 1000); // Start search shortcut (/) $('body').keyup(function(event) { if (event.which === 191 && $(event.target).is(':not(:input)')) { @@ -5764,6 +5786,10 @@ window.metadata.search = (function() { return this.searchInput.val().replace(/(^ +)|( +$)/g, ''); }; + Search.prototype.getReferenceResults = function() { + return this.currQueryReferenceResults; + }; + Search.prototype.onSearchChanged = function() { var query = this.getQuery(); @@ -5780,10 +5806,19 @@ window.metadata.search = (function() { this.lastQuery = query; this.searchResultsFor.text(query); + + // CSE results lag behind the metadata/reference results. We need to empty + // the CSE results and add 'Loading' text so user's aren't looking at two + // different sets of search results at one time. + var $loadingEl = + $('

'); + $('#dac-custom-search-results').empty().prepend($loadingEl); + this.customSearch(query); var metadataResults = metadata.search(query); this.searchResultsResources.dacSearchRenderResources(metadataResults.resources, query); this.searchResultsReference.dacSearchRenderReferences(metadataResults, query); + this.currQueryReferenceResults = metadataResults; var hasHero = this.searchResultsHero.dacSearchRenderHero(metadataResults.resources, query); var hasQuery = !!query; @@ -6502,3 +6537,22 @@ window.dacStore = (function(window) { initWideTable(); }); })(jQuery); + +/** Utilities */ + +/* returns the given string with all HTML brackets converted to entities + TODO: move this to the site's JS library */ +function escapeHTML(string) { + return string.replace(//g,">"); +}; + +function getQueryVariable(variable) { + var query = window.location.search.substring(1); + var vars = query.split("&"); + for (var i=0;i