@ -11,14 +11,19 @@ Spring.ProjectDocumentationWidget = function () {
@@ -11,14 +11,19 @@ Spring.ProjectDocumentationWidget = function () {
var quickStartEl = $ ( '[data-download-widget-controls]' ) ;
var mavenWidgetEl = $ ( '.js-download-maven-widget' ) ;
var documentationEl = $ ( '.js-documentation-widget' ) ;
var resourcesEl = $ ( '.project-sidebar-resource--wrapper' ) ;
var projectUrl = apiBaseUrl + "/project_metadata/" + projectId ;
var promise = Spring . loadProject ( projectUrl ) ;
var coursesPromise = Spring . loadCourses ( "https://pivotallms.biglms.com/api/courses" ) ;
promise . then ( function ( project ) {
Spring . buildDocumentationWidget ( documentationEl , project ) ;
Spring . buildQuickStartWidget ( quickStartEl , mavenWidgetEl , project ) ;
} ) ;
coursesPromise . then ( function ( courseware ) {
Spring . buildCoursesWidget ( resourcesEl , courseware ) ;
} ) ;
} ;
Spring . buildDocumentationWidget = function ( documentationEl , project ) {
@ -29,6 +34,17 @@ Spring.buildDocumentationWidget = function (documentationEl, project) {
@@ -29,6 +34,17 @@ Spring.buildDocumentationWidget = function (documentationEl, project) {
} ) . render ( ) ;
}
Spring . buildCoursesWidget = function ( resourcesEl , courseware ) {
if ( courseware . hasContent ) {
var tpl = $ ( "#project-courses-widget-template" ) . text ( ) ;
var view = new Spring . CoursesWidgetView ( {
el : resourcesEl ,
model : courseware ,
template : $ ( "#project-courses-widget-template" ) . text ( )
} ) ;
view . render ( ) ;
}
}
Spring . buildQuickStartWidget = function ( quickStartEl , mavenWidgetEl , project ) {
new Spring . QuickStartSelectorView ( {
el : quickStartEl ,
@ -47,6 +63,13 @@ Spring.loadProject = function (url) {
@@ -47,6 +63,13 @@ Spring.loadProject = function (url) {
} ) ;
}
Spring . loadCourses = function ( url ) {
return $ . getJSON ( url )
. then ( function ( data ) {
return new Spring . Courseware ( data ) ;
} ) ;
}
Spring . Release = function ( data ) {
_ . extend ( this , data ) ;
}
@ -63,6 +86,15 @@ Spring.Release.prototype = {
@@ -63,6 +86,15 @@ Spring.Release.prototype = {
}
}
Spring . Courseware = function ( data ) {
this . courses = data [ "edu1" ] ;
this . talks = data [ "eng1" ] ;
this . hasCourses = this . courses != null ;
this . hasTalks = this . talks != null ;
this . hasContent = this . hasTalks || this . hasCourses ;
return this ;
} ;
Spring . Project = function ( data ) {
_ . extend ( this , data ) ;
var self = this ;
@ -87,6 +119,20 @@ Spring.DocumentationWidgetView = Backbone.View.extend({
@@ -87,6 +119,20 @@ Spring.DocumentationWidgetView = Backbone.View.extend({
}
} ) ;
Spring . CoursesWidgetView = Backbone . View . extend ( {
initialize : function ( ) {
this . template = _ . template ( this . options . template ) ;
_ . bindAll ( this , "render" ) ;
} ,
render : function ( ) {
this . $el . append (
this . template ( this . model )
) ;
return this ;
}
} ) ;
Spring . SnippetView = Backbone . View . extend ( {
initialize : function ( ) {
var snippetType = this . options . snippetType ;