Skip to content

Commit fed9511

Browse files
committed
Showing pencil link only on current release, and linking to gh edit
1 parent bfb3c80 commit fed9511

File tree

5 files changed

+57
-3
lines changed

5 files changed

+57
-3
lines changed

app/helpers/github-link.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
import { helper } from '@ember/component/helper';
22
import githubMap from '../utils/github-map';
33

4-
export function githubLink([project, version, file, line]) {
4+
export function githubLink([project, version, file, line], { isEdit=false }) {
5+
if (isEdit) {
6+
return `https://github.com/${githubMap[project]}/edit/release/${file}#L${line}`;
7+
}
58
return `https://github.com/${githubMap[project]}/tree/v${version}/${file}#L${line}`;
69
}
710

app/helpers/is-latest.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import { helper } from '@ember/component/helper';
2+
import getLastVersion from 'ember-api-docs/utils/get-last-version';
3+
4+
export function isLatest(params, { version, allVersions}) {
5+
let latestVersion = getLastVersion(allVersions);
6+
return version === latestVersion;
7+
}
8+
9+
export default helper(isLatest);

app/templates/project-version/classes/class.hbs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
<article class="chapter">
2-
<a data-tooltip="View on Github" class="heading__link__edit" href="{{github-link model.project.id model.projectVersion.version model.file model.line}}" target="_blank" rel="noopener">{{svg-jar "fa-pencil"}}</a>
2+
{{#if (is-latest version=model.projectVersion.version allVersions=model.project.projectVersions)}}
3+
<a data-tooltip="Edit on Github" class="heading__link__edit" href="{{github-link model.project.id model.projectVersion.version model.file model.line isEdit=true}}" target="_blank" rel="noopener">{{svg-jar "fa-pencil"}}</a>
4+
{{/if}}
35
<h1 class="module-name">Class {{model.name}}</h1>
46
{{#if model.access}}<span class="access">{{model.access}}</span>{{/if}}
57

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
import { module, test } from 'qunit';
2+
import { setupRenderingTest } from 'ember-qunit';
3+
import { render } from '@ember/test-helpers';
4+
import hbs from 'htmlbars-inline-precompile';
5+
import { A } from '@ember/array';
6+
7+
const versions = A([
8+
{ id: 'ember-1.13.0' },
9+
{ id: 'ember-3.5.0' },
10+
{ id: 'ember-2.1.10' }
11+
]);
12+
13+
module('helper:is-latest', function (hooks) {
14+
setupRenderingTest(hooks);
15+
16+
test('should resolve true if latest release', async function(assert) {
17+
this.set('version', '3.5.0');
18+
this.set('allVersions', versions);
19+
20+
await render(hbs`
21+
{{#if (is-latest version=version allVersions=allVersions)}}
22+
Hello World
23+
{{/if}}
24+
`);
25+
26+
assert.equal(this.element.textContent.trim(), 'Hello World');
27+
});
28+
29+
test('should resolve false if not latest', async function (assert) {
30+
this.set('version', '3.1.0');
31+
this.set('allVersions', versions);
32+
await render(hbs`
33+
{{#if (is-latest version=version allVersions=allVersions)}}
34+
Hello World
35+
{{/if}}
36+
`);
37+
assert.notEqual(this.element.textContent.trim(), 'Hello World');
38+
})
39+
40+
});

tests/unit/helpers/github-link-test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,6 @@ import { module, test } from 'qunit';
44
module('Unit | Helper | github link');
55

66
test('should render a github link from file info', function(assert) {
7-
let result = githubLink(['ember', '2.10.0', 'ember-glimmer/lib/component.js', '35']);
7+
let result = githubLink(['ember', '2.10.0', 'ember-glimmer/lib/component.js', '35'], {});
88
assert.equal(result, 'https://github.com/emberjs/ember.js/tree/v2.10.0/ember-glimmer/lib/component.js#L35');
99
});

0 commit comments

Comments
 (0)