Skip to content

WIP: tracking branch for the website redesign RFC #868

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 76 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
76 commits
Select commit Hold shift + click to select a range
2a7bdcb
remove all sass and ember-cli-sass
MinThaMie Nov 21, 2022
04e4505
use latest ember-styleguide
mansona Jul 6, 2023
5971266
Fix linting error
MinThaMie Jul 7, 2023
1e49554
skip tests that will need to be fixed later
mansona Jul 8, 2023
4ed6555
Merge pull request #833 from ember-learn/use-ember-styleguide
mansona Jul 8, 2023
44bfd5f
Fix styling of title and pencil
MinThaMie Jul 9, 2023
c66eb65
Fix test
MinThaMie Jul 9, 2023
1541bf9
Merge pull request #871 from ember-learn/edit-pencil
mansona Jul 10, 2023
7c437d1
Table of Projects component
MinThaMie Jul 25, 2023
cd6e195
Use the component
MinThaMie Jul 25, 2023
b735ee3
Adds styling (copied from guidemaker) and update the classes to match…
MinThaMie Jul 25, 2023
1835af5
Merge pull request #874 from ember-learn/sidemenu-styling
MinThaMie Jul 27, 2023
3b85e4f
878 - remove svg fingerprinting
Aug 28, 2023
cc4d742
Merge pull request #880 from lukasnys/bugfix/878-header-icon
mansona Aug 28, 2023
768fff6
chore(dependencies): upgrade ember-styleguide to latest (#879)
Sep 2, 2023
91546e3
style: use full-width sidebar container (#879)
Sep 2, 2023
79ef587
style: add padding around sidebar and content (#879)
Sep 2, 2023
d7702ce
style: match sidebar font-size with guidemaker-ember-template (#879)
Sep 2, 2023
71784a9
style cleanup: move media queries down (#879)
Sep 2, 2023
837c067
style: make header full-width (#879)
Sep 2, 2023
bee54e8
style cleanup: only apply margin to content on desktop (#879)
Sep 2, 2023
bf6e401
style cleanup: only apply extra padding to header on desktop (#879)
Sep 2, 2023
7fc78bd
style: increase sidebar width to avoid items overflowing (#879)
Sep 2, 2023
ef4d2e1
Merge pull request #881 from lukasnys/wide-mode
MinThaMie Sep 7, 2023
63d04c1
Remove the collapse functionality
MinThaMie Sep 8, 2023
1595d6e
move anchor image to the end of the title (#882)
Sep 10, 2023
b70a507
update svg to match guidemaker-ember-template icon (#882)
Sep 10, 2023
d6f4ca9
move click handler to anchor icon (#882)
Sep 10, 2023
815b8b5
remove now irrelevant test (#882)
Sep 10, 2023
a87910e
move class-field-description--link class to correct element (#882)
Sep 10, 2023
1d4ccf4
style: style anchor link to match guidemaker-ember-template (#882)
Sep 10, 2023
544dab0
rename fa-link.svg to link.svg since its no longer from fa (#882)
Sep 10, 2023
000eef1
fix anchor test (#882)
Sep 10, 2023
62a632f
cleanup: remove unused class (#882)
Sep 10, 2023
4937d34
Merge pull request #887 from lukasnys/anchor-redesign
MinThaMie Sep 11, 2023
26e59a6
Merge branch 'master' into website-redesign
mansona Sep 28, 2023
b2482ee
Merge pull request #885 from ember-learn/remove-collapse-logic
MinThaMie Oct 9, 2023
5c1ea49
add 404 page
MehulKChaudhari Feb 15, 2024
f745337
fix: mobile view
MehulKChaudhari Feb 15, 2024
07cafa9
fix: css
MehulKChaudhari Feb 16, 2024
54fac0a
Delete tests/unit/routes/not-found-test.js
MinThaMie Feb 16, 2024
13a994e
Update search-test.js
MinThaMie Feb 16, 2024
e67e9d1
add page-title
MehulKChaudhari Feb 21, 2024
96fbf4d
Update search-test.js
MinThaMie Feb 22, 2024
1e643e7
Merge pull request #906 from MehulKChaudhari/issue-884/implement-404-…
MinThaMie Feb 22, 2024
2c1e3c6
Adds styling to the parameters & return types
MinThaMie May 1, 2024
76f78be
Update app/styles/app.css
IgnaceMaes May 6, 2024
0f9c749
Merge pull request #907 from ember-learn/function-arguments
MinThaMie May 6, 2024
6c10665
Merge remote-tracking branch 'origin/master' into merge-master
mansona Jun 18, 2024
13f3b88
Merge pull request #910 from ember-learn/merge-master
mansona Jun 19, 2024
f9c1ecd
Merge remote-tracking branch 'origin/main' into merge-main
mansona Jul 9, 2024
338b5f3
Merge pull request #919 from ember-learn/merge-main
mansona Jul 9, 2024
c9f0d75
update to latest styleguide
mansona Jul 18, 2024
2acdbee
Merge pull request #921 from ember-learn/footer
mansona Jul 20, 2024
f4d0252
Merge remote-tracking branch 'origin/main' into merge-main
mansona Jul 24, 2024
e515a84
remove truth-helpers override
mansona Jul 25, 2024
4ae19a8
Merge pull request #926 from ember-learn/merge-main
mansona Jul 25, 2024
8227d71
fix implicit-injections deprecation
mansona May 22, 2025
153feb2
Merge pull request #941 from ember-learn/deprecations
mansona May 23, 2025
999cdd9
Merge branch 'main' into website-redesign
mansona May 23, 2025
d885c0f
Merge pull request #945 from ember-learn/main-merge
mansona May 23, 2025
7b7705a
fix ember-component.is-visible deprecation
mansona May 23, 2025
e8499ed
Merge pull request #944 from ember-learn/is-visible
mansona May 23, 2025
945bdd7
fix this-property-fallback deprecation
mansona May 23, 2025
5762107
Merge pull request #942 from ember-learn/this-fallback
mansona May 23, 2025
732d8c4
update ember-tether
mansona May 23, 2025
b930fc2
Merge pull request #946 from ember-learn/ember-tether
mansona May 23, 2025
67e0f56
update ember-truth-helpers
mansona May 23, 2025
cc5eae8
remove ember-route-action-helper
mansona May 23, 2025
58c905a
Merge pull request #947 from ember-learn/truth-helpers
mansona May 23, 2025
9cc3275
Merge pull request #948 from ember-learn/route-action-helper
mansona May 23, 2025
6a95b11
stop using ember-cli-document-title-northm
mansona May 23, 2025
d793ef3
Merge pull request #949 from ember-learn/document-title
mansona May 23, 2025
209b1f9
update deprecation-workflow for runloop deprecation
mansona May 23, 2025
7fde9df
clear ember global deprecation
mansona May 23, 2025
9960a2f
Merge pull request #943 from ember-learn/run-loop
mansona May 23, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 5 additions & 2 deletions app/app.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,13 @@ import Application from '@ember/application';
import Resolver from 'ember-resolver';
import loadInitializers from 'ember-load-initializers';
import config from 'ember-api-docs/config/environment';

import './deprecation-workflow';
import { importSync, isDevelopingApp, macroCondition } from '@embroider/macros';
import 'ember-power-select/styles';

if (macroCondition(isDevelopingApp())) {
importSync('./deprecation-workflow');
}

export default class App extends Application {
modulePrefix = config.modulePrefix;
podModulePrefix = config.podModulePrefix;
Expand Down
10 changes: 5 additions & 5 deletions app/components/class-field-description.hbs
Original file line number Diff line number Diff line change
@@ -1,9 +1,5 @@
<section class='{{@type}}'>
{{!-- TODO: Fix this link for a11y --}}
<h3 class='class-field-description--link' data-anchor='{{@field.name}}' role='link' {{on 'click' (fn this.updateAnchor @field.name)}}>
<a class='anchor' {{!-- template-lint-disable link-href-attributes --}}>
{{svg-jar 'fa-link' class='class-field-description--link-hover' width='20px' height='20px'}}
</a>
<h3 data-anchor='{{@field.name}}'>
<span class='{{@type}}-name'>{{@field.name}}</span>
{{#if @field.params}}
<span class='args'>
Expand All @@ -19,6 +15,10 @@
{{#if @field.deprecated}}
<span class='access'>deprecated</span>
{{/if}}
{{!-- TODO: Fix this link for a11y --}}
<a class='class-field-description--link' data-test-anchor="{{@field.name}}" role='link' {{on 'click' (fn this.updateAnchor @field.name)}} {{!-- template-lint-disable link-href-attributes --}}>
{{svg-jar 'link' width='20px' height='20px'}}
</a>
</h3>
{{#if @model.module}}
<div class='attributes'>
Expand Down
1 change: 1 addition & 0 deletions app/components/ember-data-landing-page.hbs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
<h1>
Ember Data API Documentation
</h1>
<hr>
<p>
Ember Data is a library for robustly managing data in applications built with Ember.js.
</p>
Expand Down
1 change: 1 addition & 0 deletions app/components/ember-landing-page.hbs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
<article class="chapter">
<h1>Ember API Documentation</h1>
<hr>
<p>
To get started, choose a project (Ember or Ember Data) and a version
from the dropdown menu. Ember has core methods used in any app, while Ember Data has
Expand Down
3 changes: 1 addition & 2 deletions app/components/search-input.hbs
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,9 @@
@targetAttachment='bottom left'
@attachment='top left'
@constraints={{this._resultTetherConstraints}}
@class='ds-dropdown-results'
class='ds-dropdown-results'
>
<SearchInput::Dropdown
@isVisible={{this._focused}}
@results={{this.searchService.results}}
@noResults={{if
(and
Expand Down
2 changes: 0 additions & 2 deletions app/components/search-input/dropdown.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,6 @@ export default class Dropdown extends Component {
// Public API
role = 'listbox';

isVisible = false;

// show
// Massage data to make it easier for displaying on the template
// Returned object:
Expand Down
34 changes: 17 additions & 17 deletions app/components/table-of-contents.hbs
Original file line number Diff line number Diff line change
@@ -1,43 +1,43 @@
<ol class='toc-level-0'>
<li class='toc-level-0'>
<a {{on 'click' (fn this.toggle 'modules')}} href='#' data-test-toc-title='packages'>Packages</a>
<ol class='toc-level-1 modules selected'>
<ul class='table-of-contents '>
<li class='toc-item toc-group' data-test-toc-title="packages">
Packages
<ul class='sub-table-of-contents modules'>
{{#each @moduleIDs as |moduleID|}}

{{#if (not-eq moduleID '@ember/object/computed')}}
<li class='toc-level-1' data-test-module={{moduleID}}>
<li class='toc-item toc-link' data-test-module={{moduleID}}>
<LinkTo @route='project-version.modules.module' @models={{array @version moduleID}}>{{moduleID}}</LinkTo>
</li>
{{/if}}

{{/each}}
</ol>
</ul>
</li>

{{#if @isShowingNamespaces}}
<li class='toc-level-0'>
<a {{on 'click' (fn this.toggle 'namespaces')}} href='#' data-test-toc-title='namespaces'>Namespaces</a>
<ol class='toc-level-1 namespaces selected'>
<li class='table-of-contents' data-test-toc-title="namespaces">
Namespaces
<ul class='sub-table-of-contents namespaces'>
{{#each @namespaceIDs as |namespaceID|}}
<li class='toc-level-1' data-test-namespace={{namespaceID}}>
<li class='toc-item toc-link' data-test-namespace={{namespaceID}}>
<LinkTo @route='project-version.namespaces.namespace' @models={{array @version namespaceID}}>{{namespaceID}}</LinkTo>
</li>
{{/each}}
</ol>
</ul>
</li>
{{/if}}

<li class='toc-level-0'>
<a {{on 'click' (fn this.toggle 'classes')}} href='#' data-test-toc-title='classes'>Classes</a>
<ol class='toc-level-1 classes selected'>
<li class='table-of-contents' data-test-toc-title="classes">
Classes
<ul class='sub-table-of-contents classes'>
{{#each @classesIDs as |classID|}}
<li class='toc-level-1' data-test-class={{classID}}>
<li class='toc-item toc-link' data-test-class={{classID}}>
<LinkTo @route='project-version.classes.class' @models={{array @version classID}}>{{classID}}</LinkTo>
</li>
{{/each}}
</ol>
</ul>
</li>
</ol>
</ul>
<label class='toc-private-toggle'>
<input type='checkbox' checked={{@showPrivateClasses}} onchange={{@togglePrivateClasses}} class='private-deprecated-toggle' />
Show Private / Deprecated
Expand Down
10 changes: 0 additions & 10 deletions app/components/table-of-contents.js

This file was deleted.

11 changes: 11 additions & 0 deletions app/components/table-of-projects.hbs
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<ul class="table-of-contents">
<li class="toc-item" data-test-home>
<LinkTo @route="project" @model="ember">Home</LinkTo>
</li>
<li>Projects</li>
<ul class="sub-table-of-contents">
<li class="toc-item"><LinkTo @route="project" @model="ember" @current-when={{eq @activeProject "ember"}} class="spec-ember">Ember</LinkTo></li>
<li class="toc-item"><LinkTo @route="project" @model="ember-data" @current-when={{eq @activeProject "ember-data"}} class="spec-ember-data">EmberData</LinkTo></li>
<li class="toc-item"><LinkTo @route="project" @model="ember-cli" @current-when={{eq @activeProject "ember-cli"}} class="spec-ember">Ember CLI</LinkTo></li>
</ul>
</ul>
110 changes: 109 additions & 1 deletion app/controllers/project-version.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
import { action, computed, set } from '@ember/object';
import { inject as service } from '@ember/service';
import { readOnly, alias } from '@ember/object/computed';
import Controller from '@ember/controller';
import Controller, { inject as controller } from '@ember/controller';
import { A } from '@ember/array';
import values from 'lodash.values';
import groupBy from 'lodash.groupby';
Expand All @@ -19,6 +19,16 @@ export default class ProjectVersionController extends Controller {
@service
project;

@service router;
@service('project') projectService;

@controller('project-version.classes.class') classController;
@controller('project-version.modules.module') moduleController;
@controller('project-version.namespaces.namespace') namespaceController;
@controller('project-version.classes.class.methods') methodsController;
@controller('project-version.classes.class.events') eventsController;
@controller('project-version.classes.class.properties') propertiesController;

@alias('filterData.sideNav.showPrivate')
showPrivateClasses;

Expand Down Expand Up @@ -128,4 +138,102 @@ export default class ProjectVersionController extends Controller {
togglePrivateClasses() {
set(this, 'showPrivateClasses', !this.showPrivateClasses);
}

@action
updateProject(project, ver /*, component */) {
let projectVersionID = ver.compactVersion;
let endingRoute;
switch (this.router.currentRouteName) {
case 'project-version.classes.class': {
let className = this._getEncodedNameForCurrentClass();
endingRoute = `classes/${className}`;
break;
}
case 'project-version.classes.class.index': {
let className = this._getEncodedNameForCurrentClass();
endingRoute = `classes/${className}`;
break;
}
case 'project-version.modules.module.index': {
let moduleName = encodeURIComponent(this.moduleController.model.name);
endingRoute = `modules/${moduleName}`;
break;
}
case 'project-version.namespaces.namespace.index': {
let namespaceName = this.namespaceController.model.name;
endingRoute = `namespaces/${namespaceName}`;
break;
}
case 'project-version.classes.class.methods.index': {
let className = this._getEncodedNameForCurrentClass();
endingRoute = `classes/${className}/methods`;
break;
}
case 'project-version.classes.class.events.index': {
let className = this._getEncodedNameForCurrentClass();
endingRoute = `classes/${className}/events`;
break;
}
case 'project-version.classes.class.properties.index': {
let className = this._getEncodedNameForCurrentClass();
endingRoute = `classes/${className}/properties`;
break;
}
case 'project-version.classes.class.methods.method': {
let className = this._getEncodedNameForCurrentClass();
let methodName = this.methodsController.anchor;
endingRoute = `classes/${className}/methods/${methodName}?anchor=${methodName}`;
break;
}
case 'project-version.classes.class.events.event': {
let className = this._getEncodedNameForCurrentClass();
let eventName = this.eventsController.anchor;
endingRoute = `classes/${className}/events/${eventName}?anchor=${eventName}`;
break;
}
case 'project-version.classes.class.properties.property': {
let className = this._getEncodedNameForCurrentClass();
let propertyName = this.propertiesController.anchor;
endingRoute = `classes/${className}/properties/${propertyName}?anchor=${propertyName}`;
break;
}
default:
endingRoute = '';
break;
}
// if the user is navigating to/from api versions >= 2.16, take them
// to the home page instead of trying to translate the url
let shouldConvertPackages = this._shouldConvertPackages(
ver,
this.projectService.version
);
let isEmberProject = project === 'ember';

if (!isEmberProject || !shouldConvertPackages) {
this.router.transitionTo(
`/${project}/${projectVersionID}/${endingRoute}`
);
} else {
this.router.transitionTo(`/${project}/${projectVersionID}`);
}
}

_getEncodedNameForCurrentClass() {
// escape any reserved characters for url, like slashes
return encodeURIComponent(this.classController.model.get('name'));
}

// Input some version info, returns a boolean based on
// whether the user is switching versions for a 2.16 docs release or later.
// The urls for pre-2.16 classes and later packages are quite different
_shouldConvertPackages(targetVer, previousVer) {
let targetVersion = getCompactVersion(targetVer.id);
let previousVersion = getCompactVersion(previousVer);
let previousComparison = semverCompare(previousVersion, '2.16');
let targetComparison = semverCompare(targetVersion, '2.16');
return (
(previousComparison < 0 && targetComparison >= 0) ||
(previousComparison >= 0 && targetComparison < 0)
);
}
}
11 changes: 6 additions & 5 deletions app/deprecation-workflow.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
import setupDeprecationWorkflow from 'ember-cli-deprecation-workflow';

setupDeprecationWorkflow({
throwOnUnhandled: true,
workflow: [
{ handler: 'silence', matchId: 'ember.component.reopen' },
{ handler: 'silence', matchId: 'implicit-injections' },
{ handler: 'silence', matchId: 'this-property-fallback' },
{ handler: 'silence', matchId: 'ember-component.is-visible' },
{ handler: 'throw', matchId: 'ember.component.reopen' },
{ handler: 'throw', matchId: 'implicit-injections' },
{ handler: 'throw', matchId: 'this-property-fallback' },
{ handler: 'throw', matchId: 'ember-component.is-visible' },
{
handler: 'silence',
handler: 'throw',
matchId: 'deprecated-run-loop-and-computed-dot-access',
},
],
Expand Down
1 change: 1 addition & 0 deletions app/router.js
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,7 @@ AppRouter.map(function () {
this.route('module', { path: '/modules/:module' });
this.route('data-class', { path: '/data/classes/:class' });
this.route('data-module', { path: '/data/modules/:module' });
this.route('not-found', { path: '/*' });
});

/*
Expand Down
17 changes: 0 additions & 17 deletions app/routes/application.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ import { inject as service } from '@ember/service';
import Route from '@ember/routing/route';
import { set } from '@ember/object';
import ENV from 'ember-api-docs/config/environment';
import getCompactVersion from 'ember-api-docs/utils/get-compact-version';

export default class ApplicationRoute extends Route {
@service
Expand All @@ -11,22 +10,6 @@ export default class ApplicationRoute extends Route {
@service
legacyModuleMappings;

title(tokens) {
let [version, entity] = tokens;
if (!entity) {
entity = 'Ember';
}
if (version) {
const compactVersion = getCompactVersion(version);
const title = `${[entity, compactVersion].join(
' - '
)} - Ember API Documentation`;
set(this, 'headData.title', title);
return title;
}
return '';
}

async afterModel() {
set(this, 'headData.cdnDomain', ENV.API_HOST);
await this.legacyModuleMappings.initMappings();
Expand Down
7 changes: 0 additions & 7 deletions app/routes/ember-cli.js

This file was deleted.

14 changes: 14 additions & 0 deletions app/routes/not-found.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import Route from '@ember/routing/route';
import { inject as service } from '@ember/service';

export default class NotFoundRoute extends Route {
@service fastboot;

beforeModel() {
if (!this.fastboot.isFastBoot) {
return;
}

this.fastboot.response.statusCode = 404;
}
}
Loading