aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorScott Main <smain@google.com>2012-11-14 17:38:11 -0800
committerAndroid Git Automerger <android-git-automerger@android.com>2012-11-14 17:38:11 -0800
commitbe264b6da6631b8c7d526fc3dc76a6ddbb881fee (patch)
treeb33db95862f1d7839c030d28a5e2abe77a9f93d0
parentfef18c61f5146d1a2eb7ed1f48bf5aaa2af08923 (diff)
parent5a1123ef7a43c007ff4cfb6c04d3f9dc5436f1c6 (diff)
downloadbuild-jb-dev.tar.gz
am 5a1123ef: add script to generate list of classes for each training course landing pageandroid-cts-4.1_r4android-cts-4.1_r2jb-dev
* commit '5a1123ef7a43c007ff4cfb6c04d3f9dc5436f1c6': add script to generate list of classes for each training course landing page
-rw-r--r--tools/droiddoc/templates-sdk/assets/css/default.css80
-rw-r--r--tools/droiddoc/templates-sdk/assets/js/docs.js135
-rw-r--r--tools/droiddoc/templates-sdk/docpage.cs17
3 files changed, 169 insertions, 63 deletions
diff --git a/tools/droiddoc/templates-sdk/assets/css/default.css b/tools/droiddoc/templates-sdk/assets/css/default.css
index db5bd01e8d..4f8c4243d8 100644
--- a/tools/droiddoc/templates-sdk/assets/css/default.css
+++ b/tools/droiddoc/templates-sdk/assets/css/default.css
@@ -448,21 +448,23 @@ video.with-shadow {
border:1px solid #DADADA;
border-bottom:0;
}
-
+
.training-nav-top a.next-page-link {
border-left:0;
width:123px;
}
+ .paging-links a.disabled,
.training-nav-top a.disabled,
.content-footer a.disabled {
- color:#999;
+ color:#bbb;
}
+ .paging-links a.disabled:hover,
.training-nav-top a.disabled:hover,
.content-footer a.disabled:hover {
cursor:default;
- color:#999 !important;
+ color:#bbb !important;
}
.training-nav-top a.start-class-link,
@@ -470,6 +472,78 @@ video.with-shadow {
width:262px;
}
+ /* list of classes on course landing page */
+ ol.class-list {
+ list-style:none;
+ margin-left:0;
+ }
+ ol.class-list>li {
+ margin:0 0 15px;
+ padding:5px 0 0;
+ overflow:hidden;
+ border-top:1px solid #ccc;
+ }
+ ol.class-list li a.title {
+ font-size:16px;
+ margin:0;
+ clear:left;
+ display:block;
+ height:32px;
+ padding:0 4px;
+ }
+ ol.class-list li a.title h2 {
+ color:inherit;
+ margin:0 0 10px;
+ display:block;
+ float:left;
+ width:675px;
+ }
+ ol.class-list li a.title span {
+ display:none;
+ float:left;
+ font-size:18px;
+ font-weight:bold;
+ background: transparent url(../images/styles/disclosure_right.png) no-repeat scroll 50% 50%;
+ width: 10px;
+ height: 32px;
+ }
+ ol.class-list li a.title:hover {
+ background:#ddd;
+ color:#258AAF !important;
+ }
+ ol.class-list li a.title:hover span {
+ display:block;
+ }
+
+ #jd-content
+ ol.class-list li img {
+ float:left;
+ clear:left;
+ width:64px;
+ margin:0 20px 0 0;
+ }
+ ol.class-list li p.description {
+ float:left;
+ display:block;
+ width:250px;
+ margin:0;
+ }
+ ol.class-list li p.description.article {
+ width: 550px;
+ }
+ ol.class-list ol {
+ float:left;
+ width:320px;
+ margin:0 0 0 30px;
+ list-style:none;
+ margin:0 0 0 20px;
+ }
+ ol.class-list div.lessons li {
+ margin:0 0 6px;
+ line-height:16px;
+ }
+
+
.hide {
display:none !important;
}
diff --git a/tools/droiddoc/templates-sdk/assets/js/docs.js b/tools/droiddoc/templates-sdk/assets/js/docs.js
index 54e1fd4cd6..0a5a4af9f4 100644
--- a/tools/droiddoc/templates-sdk/assets/js/docs.js
+++ b/tools/droiddoc/templates-sdk/assets/js/docs.js
@@ -135,6 +135,7 @@ $(document).ready(function() {
// select current page in sidenav and set up prev/next links if they exist
var $selNavLink = $('#nav').find('a[href="' + pagePath + '"]');
+ var $selListItem;
if ($selNavLink.length) {
$selListItem = $selNavLink.closest('li');
@@ -156,11 +157,9 @@ $(document).ready(function() {
false; // navigate across topic boundaries only in design docs
if ($prevListItem.length) {
if ($prevListItem.hasClass('nav-section')) {
- if (crossBoundaries) {
- // jump to last topic of previous section
- $prevLink = $prevListItem.find('a:last');
- }
- } else {
+ // jump to last topic of previous section
+ $prevLink = $prevListItem.find('a:last');
+ } else if (!$selListItem.hasClass('nav-section')) {
// jump to previous topic in this section
$prevLink = $prevListItem.find('a:eq(0)');
}
@@ -177,18 +176,8 @@ false; // navigate across topic boundaries only in design docs
}
}
- if ($prevLink.length) {
- var prevHref = $prevLink.attr('href');
- if (prevHref == SITE_ROOT + 'index.html') {
- // Don't show Previous when it leads to the homepage
- } else {
- $('.prev-page-link').attr('href', $prevLink.attr('href')).removeClass("hide");
- }
- }
-
// set up next links
var $nextLink = [];
- var startCourse = false;
var startClass = false;
var training = $(".next-class-link").length; // decides whether to provide "next class" link
var isCrossingBoundary = false;
@@ -206,53 +195,103 @@ false; // navigate across topic boundaries only in design docs
$('.topic-start-link').text($nextLink.text().toUpperCase());
}
- // Handle some Training specialties
- if ($selListItem.parent().is("#nav") && $(".start-course-link").length) {
- // this means we're at the very top of the TOC hierarchy
- startCourse = true;
- } else if ($(".start-class-link").length) {
- // this means this page has children but is not at the top (it's a class, not a course)
+ // If the selected page has a description, then it's a class or article homepage
+ if ($selListItem.find('a[description]').length) {
+ // this means we're on a class landing page
startClass = true;
}
} else {
// jump to the next topic in this section (if it exists)
$nextLink = $selListItem.next('li').find('a:eq(0)');
if (!$nextLink.length) {
- if (crossBoundaries || training) {
- // no more topics in this section, jump to the first topic in the next section
- $nextLink = $selListItem.parents('li:eq(0)').next('li.nav-section').find('a:eq(0)');
- isCrossingBoundary = true;
+ isCrossingBoundary = true;
+ // no more topics in this section, jump to the first topic in the next section
+ $nextLink = $selListItem.parents('li:eq(0)').next('li.nav-section').find('a:eq(0)');
+ if (!$nextLink.length) { // Go up another layer to look for next page (lesson > class > course)
+ $nextLink = $selListItem.parents('li:eq(1)').next('li.nav-section').find('a:eq(0)');
}
}
}
- if ($nextLink.length) {
- if (startCourse || startClass) {
- if (startCourse) {
- $('.start-course-link').attr('href', $nextLink.attr('href')).removeClass("hide");
- } else {
- $('.start-class-link').attr('href', $nextLink.attr('href')).removeClass("hide");
- }
- // if there's no training bar (below the start button),
- // then we need to add a bottom border to button
- if (!$("#tb").length) {
- $('.start-course-link').css({'border-bottom':'1px solid #DADADA'});
- $('.start-class-link').css({'border-bottom':'1px solid #DADADA'});
- }
- } else if (training && isCrossingBoundary) {
- $('.content-footer.next-class').show();
- $('.next-page-link').attr('href','')
- .removeClass("hide").addClass("disabled")
- .click(function() { return false; });
-
- $('.next-class-link').attr('href',$nextLink.attr('href'))
- .removeClass("hide").append($nextLink.html());
- $('.next-class-link').find('.new').empty();
+
+ if (startClass) {
+ $('.start-class-link').attr('href', $nextLink.attr('href')).removeClass("hide");
+
+ // if there's no training bar (below the start button),
+ // then we need to add a bottom border to button
+ if (!$("#tb").length) {
+ $('.start-class-link').css({'border-bottom':'1px solid #DADADA'});
+ }
+ } else if (isCrossingBoundary && !$('body.design').length) { // Design always crosses boundaries
+ $('.content-footer.next-class').show();
+ $('.next-page-link').attr('href','')
+ .removeClass("hide").addClass("disabled")
+ .click(function() { return false; });
+
+ $('.next-class-link').attr('href',$nextLink.attr('href'))
+ .removeClass("hide").append($nextLink.html());
+ $('.next-class-link').find('.new').empty();
+ } else {
+ $('.next-page-link').attr('href', $nextLink.attr('href')).removeClass("hide");
+ }
+
+ if (!startClass && $prevLink.length) {
+ var prevHref = $prevLink.attr('href');
+ if (prevHref == SITE_ROOT + 'index.html') {
+ // Don't show Previous when it leads to the homepage
} else {
- $('.next-page-link').attr('href', $nextLink.attr('href')).removeClass("hide");
+ $('.prev-page-link').attr('href', $prevLink.attr('href')).removeClass("hide");
}
+ }
+
+ // If this is a training 'article', there should be no prev/next nav
+ // ... if the grandparent is the "nav" ... and it has no child list items...
+ if (training && $selListItem.parents('ul').eq(1).is('[id="nav"]') &&
+ !$selListItem.find('li').length) {
+ $('.next-page-link,.prev-page-link').attr('href','').addClass("disabled")
+ .click(function() { return false; });
}
}
+
+
+
+ // Set up the course landing pages for Training with class names and descriptions
+ if ($('body.trainingcourse').length) {
+ var $classLinks = $selListItem.find('ul li a').not('#nav .nav-section .nav-section ul a');
+ var $classDescriptions = $classLinks.attr('description');
+
+ var $olClasses = $('<ol class="class-list"></ol>');
+ var $liClass;
+ var $imgIcon;
+ var $h2Title;
+ var $pSummary;
+ var $olLessons;
+ var $liLesson;
+ $classLinks.each(function(index) {
+ $liClass = $('<li></li>');
+ $h2Title = $('<a class="title" href="'+$(this).attr('href')+'"><h2>' + $(this).html()+'</h2><span></span></a>');
+ $pSummary = $('<p class="description">' + $(this).attr('description') + '</p>');
+
+ $olLessons = $('<ol class="lesson-list"></ol>');
+
+ $lessons = $(this).closest('li').find('ul li a');
+
+ if ($lessons.length) {
+ $imgIcon = $('<img src="'+toRoot+'assets/images/resource-tutorial.png" alt=""/>');
+ $lessons.each(function(index) {
+ $olLessons.append('<li><a href="'+$(this).attr('href')+'">' + $(this).html()+'</a></li>');
+ });
+ } else {
+ $imgIcon = $('<img src="'+toRoot+'assets/images/resource-article.png" alt=""/>');
+ $pSummary.addClass('article');
+ }
+
+ $liClass.append($h2Title).append($imgIcon).append($pSummary).append($olLessons);
+ $olClasses.append($liClass);
+ });
+ $('.jd-descr').append($olClasses);
+ }
+
diff --git a/tools/droiddoc/templates-sdk/docpage.cs b/tools/droiddoc/templates-sdk/docpage.cs
index 63abceba4d..00ca5e0f81 100644
--- a/tools/droiddoc/templates-sdk/docpage.cs
+++ b/tools/droiddoc/templates-sdk/docpage.cs
@@ -7,7 +7,8 @@
elif:about ?>about<?cs
elif:design ?>design<?cs
elif:distribute ?>distribute<?cs
- /if ?>" itemscope itemtype="http://schema.org/Article">
+ /if ?><?cs
+ if:page.trainingcourse ?> trainingcourse<?cs /if ?>" itemscope itemtype="http://schema.org/Article">
<a name="top"></a>
<?cs include:"header.cs" ?>
@@ -16,7 +17,7 @@
?>class="col-13" id="doc-col"<?cs else
?>class="col-12" id="doc-col"<?cs /if ?> >
-<?cs if:(design||training||walkthru) ?><?cs # header logic for docs that provide previous/next buttons ?>
+<?cs if:(design||training||walkthru) && !page.trainingcourse ?><?cs # header logic for docs that provide previous/next buttons ?>
<?cs if:header.hide ?>
<?cs else ?>
<div class="layout-content-row content-header <?cs if:header.justLinks ?>just-links<?cs /if ?>">
@@ -51,16 +52,8 @@
ja-lang="開始する"
es-lang="Empezar"
>Get started</a>
- <a href="#" class="start-course-link hide"
- zh-TW-lang="第一堂課"
- zh-CN-lang="第一课"
- ru-lang="Первый урок"
- ko-lang="첫 번째 강의"
- ja-lang="最初のクラス"
- es-lang="Primera clase"
- >First class</a>
</div>
- <?cs else ?>
+ <?cs elif:!page.trainingcourse ?>
<div class="paging-links layout-content-col span-4" itemscope itemtype="http://schema.org/SiteNavigationElement">
<a href="#" class="prev-page-link hide"
zh-TW-lang="上一堂課"
@@ -128,7 +121,7 @@
</div>
<?cs if:!fullscreen ?>
<div class="paging-links layout-content-col col-4">
- <?cs if:(design||training||guide||walkthru) && !page.landing && !footer.hide ?>
+ <?cs if:(design||training||guide||walkthru) && !page.landing && !page.trainingcourse && !footer.hide ?>
<a href="#" class="prev-page-link hide"
zh-TW-lang="上一堂課"
zh-CN-lang="上一课"