From 52d6a5990225439ac9141398d83e0d4e6134b576 Mon Sep 17 00:00:00 2001 From: Julien Bouquillon Date: Fri, 10 May 2013 23:06:18 +0200 Subject: [PATCH] feat(ngDocs): add links to source for API - add tests - the link points to the gruntUtil.getVersion().number tree on github --- docs/spec/sourceLinkSpec.js | 29 +++++++++++++++++++++++++++++ docs/src/ngdoc.js | 13 +++++++++++-- docs/src/templates/css/docs.css | 3 ++- 3 files changed, 42 insertions(+), 3 deletions(-) create mode 100644 docs/spec/sourceLinkSpec.js diff --git a/docs/spec/sourceLinkSpec.js b/docs/spec/sourceLinkSpec.js new file mode 100644 index 000000000000..3dc73cc85c37 --- /dev/null +++ b/docs/spec/sourceLinkSpec.js @@ -0,0 +1,29 @@ +var ngdoc = require('../src/ngdoc.js'); +var gruntUtil = require('../../lib/grunt/utils.js'); + +describe('Docs Links', function() { + + describe('links', function() { + var doc; + + beforeEach(function() { + doc = new ngdoc.Doc("@ngdoc function\n@name ng.filter:a\n@function"); + doc.section = 'api'; + doc.file = 'test.js'; + doc.line = 42; + doc.parse(); + }); + + it('should have an "improve this doc" button', function() { + expect(doc.html()). + toContain(' Improve this doc'); + }); + + it('should have an "view source" button', function() { + expect(doc.html()). + toContain(' View source'); + }); + + }); + +}); diff --git a/docs/src/ngdoc.js b/docs/src/ngdoc.js index af78c1e32382..dc75d5cbac62 100644 --- a/docs/src/ngdoc.js +++ b/docs/src/ngdoc.js @@ -378,7 +378,16 @@ Doc.prototype = { dom.h(title(this.name), function() { notice('deprecated', 'Deprecated API', self.deprecated); - dom.tag('a', {href: 'http://github.com/angular/angular.js/edit/master/' + self.file, class: 'improve-docs btn btn-primary'}, 'Improve this doc'); + dom.tag('a', {href: 'http://github.com/angular/angular.js/edit/master/' + self.file, class: 'improve-docs btn btn-primary'}, function(dom) { + dom.tag('i', {class:'icon-edit'}, ' '); + dom.text(' Improve this doc'); + }); + if (self.section === 'api') { + dom.tag('a', {href: 'http://github.com/angular/angular.js/tree/v' + gruntUtil.getVersion().number + '/' + self.file + '#L' + self.line, class: 'view-source btn btn-action'}, function(dom) { + dom.tag('i', {class:'icon-zoom-in'}, ' '); + dom.text(' View source'); + }); + } if (self.ngdoc != 'overview') { dom.h('Description', self.description, dom.html); } @@ -401,7 +410,7 @@ Doc.prototype = { ////////////////////////// function notice(name, legend, msg){ - if (self[name] == undefined) return; + if (self[name] === undefined) return; dom.tag('fieldset', {'class':name}, function(dom){ dom.tag('legend', legend); dom.text(msg); diff --git a/docs/src/templates/css/docs.css b/docs/src/templates/css/docs.css index 5d769b29bec3..7b611d24a1bd 100644 --- a/docs/src/templates/css/docs.css +++ b/docs/src/templates/css/docs.css @@ -95,8 +95,9 @@ /* Content */ /* =============================== */ -.improve-docs { +.improve-docs, .view-source { float: right; + margin: 0 5px; } .hint {