mirror of
https://github.com/spring-projects/spring-boot.git
synced 2026-09-24 10:19:03 +00:00
@@ -1,13 +1,25 @@
|
||||
<script type="text/html" id="project-documentation-widget-template">
|
||||
<%= name %>
|
||||
<ul>
|
||||
<% _.each(releases, function(release) { %>
|
||||
<li>
|
||||
<%= release.fullName %>
|
||||
<i class="<%= release.statusIconClass %>"></i>
|
||||
<a href='<%= release.refDocUrl %>'>Reference</a>
|
||||
<a href='<%= release.apiDocUrl %>'>API</a>
|
||||
</li>
|
||||
<% }); %>
|
||||
</ul>
|
||||
<h3><%= name %></h3>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Release</th>
|
||||
<th>Documentation</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<% _.each(releases, function(release) { %>
|
||||
<tr>
|
||||
<td>
|
||||
<%= release.fullName %>
|
||||
<i class="<%= release.statusIconClass() %>"></i>
|
||||
</td>
|
||||
<td>
|
||||
<a href='<%= release.refDocUrl %>'>Reference</a>
|
||||
<a href='<%= release.apiDocUrl %>'>API</a>
|
||||
</td>
|
||||
</tr>
|
||||
<% }); %>
|
||||
</tbody>
|
||||
</table>
|
||||
</script>
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
---
|
||||
main_site_url: http://springframework.io
|
||||
forum_url: http://forum.springframework.io
|
||||
api_base_url: http://localhost:8080
|
||||
---
|
||||
|
||||
<!DOCTYPE html>
|
||||
@@ -24,6 +25,9 @@ forum_url: http://forum.springframework.io
|
||||
<script type="text/javascript" src="js/backbone.js"></script>
|
||||
<script type="text/javascript" src="js/projectDocumentationWidget.js"></script>
|
||||
<script type="text/javascript" src="js/application.js"></script>
|
||||
<script type="text/javascript">
|
||||
var apiBaseUrl = "{{ page.api_base_url }}";
|
||||
</script>
|
||||
<meta name="google-site-verification" content="7qGntFPD9lWAVCtUu5U77v4l68PsTHf6xpzgjQv2j2M" />
|
||||
</head>
|
||||
<body>
|
||||
|
||||
@@ -2,10 +2,10 @@ window.Spring = window.Spring || {};
|
||||
|
||||
Spring.ProjectDocumentationWidget = function() {
|
||||
var projectId = $('[data-documentation-widget]').data('documentation-widget');
|
||||
var project = new Spring.Project({id: projectId});
|
||||
var projectUrl = apiBaseUrl + "/projects/" + projectId;
|
||||
var promise = Spring.loadProject(projectUrl);
|
||||
|
||||
var promise = project.fetch();
|
||||
promise.success(function() {
|
||||
promise.then(function(project) {
|
||||
new Spring.ProjectDocumentationWidgetView({
|
||||
el: '[data-documentation-widget]',
|
||||
model: project,
|
||||
@@ -14,6 +14,15 @@ Spring.ProjectDocumentationWidget = function() {
|
||||
});
|
||||
};
|
||||
|
||||
Spring.loadProject = function(url) {
|
||||
return $.ajax(url, {
|
||||
dataType: 'jsonp',
|
||||
processData: false
|
||||
}).then(function(value) {
|
||||
return new Spring.Project(value);
|
||||
});
|
||||
}
|
||||
|
||||
Spring.Release = {
|
||||
statusIconClass: function() {
|
||||
if (this.preRelease) {
|
||||
@@ -26,31 +35,14 @@ Spring.Release = {
|
||||
}
|
||||
}
|
||||
|
||||
Spring.Project = Backbone.Model.extend({
|
||||
urlRoot: "http://localhost:8080/projects",
|
||||
Spring.Project = function(data) {
|
||||
_.extend(this, data);
|
||||
this.releases = _.map(this.projectReleases, function(r) {
|
||||
return _.extend(r, Spring.Release);
|
||||
});
|
||||
|
||||
sync: function(method, model, options) {
|
||||
var params = _.extend({
|
||||
type: 'GET',
|
||||
dataType: 'jsonp',
|
||||
url: model.url()+"?callback=?",
|
||||
processData: false
|
||||
}, options);
|
||||
|
||||
return $.ajax(params);
|
||||
},
|
||||
|
||||
releases: function() {
|
||||
return _.map(this.get('projectReleases'), function(r) {
|
||||
|
||||
return _.extend(r, Spring.Release);
|
||||
});
|
||||
},
|
||||
|
||||
data: function() {
|
||||
return _.extend(this.attributes, {releases: this.releases()})
|
||||
}
|
||||
});
|
||||
return this;
|
||||
};
|
||||
|
||||
Spring.ProjectDocumentationWidgetView = Backbone.View.extend({
|
||||
initialize: function() {
|
||||
@@ -60,7 +52,7 @@ Spring.ProjectDocumentationWidgetView = Backbone.View.extend({
|
||||
|
||||
render: function() {
|
||||
this.$el.html(
|
||||
this.template(this.model.data())
|
||||
this.template(this.model)
|
||||
);
|
||||
return this;
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@ describe("Project", function () {
|
||||
describe("releases", function() {
|
||||
var releases;
|
||||
beforeEach(function() {
|
||||
releases = project.releases();
|
||||
releases = project.releases;
|
||||
});
|
||||
|
||||
it("has a release for each project release", function() {
|
||||
|
||||
Reference in New Issue
Block a user