Skip to content

Upgrade #616

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

Closed
wants to merge 32 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
ea02f69
Update travis config
sivakumar-kailasam May 15, 2019
fb85df4
Update testing packages
sivakumar-kailasam May 15, 2019
a386064
Redirect for old paths
sivakumar-kailasam May 15, 2019
39878cf
remove unused bower packages
sivakumar-kailasam May 15, 2019
a050b2a
Ran ember-cli-update
sivakumar-kailasam May 15, 2019
7aae714
Ran ember-cli-update codemods
sivakumar-kailasam May 15, 2019
cc889bf
Upgrade ember-styleguide
sivakumar-kailasam May 17, 2019
880943d
Remove unused imports
sivakumar-kailasam May 17, 2019
19abd28
remove deprecated didTransition usage
sivakumar-kailasam May 18, 2019
08fd8f3
Updated testem config
sivakumar-kailasam May 18, 2019
329d316
update heroku config
sivakumar-kailasam May 18, 2019
7d4ec96
update csp config
sivakumar-kailasam May 18, 2019
6576c18
Use ember-styleguide components & remove in app code
sivakumar-kailasam May 18, 2019
1d41a1c
remove deprecated -router usage
sivakumar-kailasam May 18, 2019
a9cb8d6
Remove lookup of deprecated properties on transition object
sivakumar-kailasam May 18, 2019
461e386
Fix deprecation on link-to helper
sivakumar-kailasam May 18, 2019
b3e5fbc
force ssl only on non-dev env
sivakumar-kailasam May 18, 2019
229ee79
configure optional features
sivakumar-kailasam May 18, 2019
234b0c2
Update lint configs
sivakumar-kailasam May 18, 2019
ac1d8a0
Bump packages
sivakumar-kailasam May 18, 2019
1278231
Use public apis to figure out tab change
sivakumar-kailasam May 19, 2019
a23218c
Bump ember-source to latest stable
sivakumar-kailasam May 19, 2019
f25bc39
Fix js linting errors
sivakumar-kailasam May 19, 2019
9e8b856
Update chrome args
sivakumar-kailasam May 19, 2019
7e1a19b
Bump some more packages
sivakumar-kailasam May 31, 2019
c5fccbf
merge changes from master
sivakumar-kailasam Jun 8, 2019
08dd4ed
Bump some more packages
sivakumar-kailasam Jun 9, 2019
2742ffa
Fix classnames
sivakumar-kailasam Jun 9, 2019
5e4f107
Replace sanitize-html with dompurify
sivakumar-kailasam Jun 9, 2019
a934819
Fix algolia import
sivakumar-kailasam Jun 9, 2019
e440352
Fix search styles
sivakumar-kailasam Jun 9, 2019
6b9543b
Use ember animated for toggling menus
sivakumar-kailasam Jun 9, 2019
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
2 changes: 2 additions & 0 deletions .eslintignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,11 @@

# dependencies
/bower_components/
/node_modules/

# misc
/coverage/
!.*

# ember-try
/.node_modules.ember-try/
Expand Down
16 changes: 13 additions & 3 deletions .eslintrc.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
module.exports = {
root: true,
parser: 'babel-eslint',
parserOptions: {
ecmaVersion: 2017,
sourceType: 'module'
Expand All @@ -15,30 +16,39 @@ module.exports = {
browser: true
},
rules: {
'ember/no-jquery': 'off',
// 'ember/no-jquery': 'off',
'no-console': 'off',
'ember/avoid-leaking-state-in-ember-objects': 1
// 'ember/avoid-leaking-state-in-ember-objects': 1
},
overrides: [
// node files
{
files: [
'.eslintrc.js',
'.template-lintrc.js',
'ember-cli-build.js',
'testem.js',
'blueprints/*/index.js',
'config/**/*.js',
'lib/**/*.js',
'bin/*',
'server/**/*.js',
'run-tests.js'
],
excludedFiles: ['app/**'],
parserOptions: {
sourceType: 'script',
ecmaVersion: 2017
},
env: {
browser: false,
node: true
}
},
plugins: ['node'],
rules: Object.assign({}, require('eslint-plugin-node').configs.recommended.rules, {
// add your custom rules and overrides for node files here
"node/no-unpublished-require": "off"
})
}
]
};
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@ terraform.tfstate.backup

# misc
/.projectile
/.env*
/.pnp*
/.sass-cache
/connect.lock
/coverage/
Expand Down
1 change: 1 addition & 0 deletions .template-lintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,6 @@ module.exports = {
'no-unnecessary-concat': false,
'no-inline-styles': false,
quotes: false
// 'no-implicit-this': true,
}
};
14 changes: 8 additions & 6 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
---
language: node_js
node_js:
- '10'
- "10"

sudo: false
dist: trusty
sudo: required
group: deprecated-2017Q4

addons:
chrome: stable
Expand All @@ -18,13 +18,15 @@ env:
- JOBS=1

before_install:
- curl -o- -L https://yarnpkg.com/install.sh | bash -s -- --version 1.0.1
- curl -o- -L https://yarnpkg.com/install.sh | bash
- export PATH=$HOME/.yarn/bin:$PATH
- yarn global add bower

install:
- yarn install
- bower install
- yarn install --non-interactive
-- bower install

script:
- yarn lint:hbs
- yarn lint:js
- yarn test
12 changes: 6 additions & 6 deletions app.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
{
"name": "ember-api-docs",
"scripts": {
},
"scripts": {},
"env": {
"FASTLY_API_KEY": {
"required": false
Expand All @@ -14,12 +13,13 @@
},
"WORKER_COUNT": {
"required": false
},
"ENVIRONMENT": {
"required": false
}
},
"formation": {
},
"addons": [
],
"formation": {},
"addons": [],
"buildpacks": [
{
"url": "https://codon-buildpacks.s3.amazonaws.com/buildpacks/heroku/emberjs.tgz"
Expand Down
12 changes: 0 additions & 12 deletions app/components/main-footer.js

This file was deleted.

7 changes: 2 additions & 5 deletions app/components/table-of-contents.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
import Component from '@ember/component';
import fade from 'ember-animated/transitions/fade';

export default Component.extend({
actions: {
toggle(type) {
this.$('ol.toc-level-1.' + type).slideToggle(200);
}
}
fade,
});
3 changes: 2 additions & 1 deletion app/mixins/parent-name.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,10 @@ import Mixin from '@ember/object/mixin';
import { inject as service } from '@ember/service';

export default Mixin.create({
router: service('-routing'),
router: service(),

routeName: readOnly('router.currentRouteName'),

parentName: computed('routeName', function() {
const routeName = this.routeName;
const routes = routeName.split('.');
Expand Down
12 changes: 7 additions & 5 deletions app/router.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,23 @@ import { scheduleOnce } from '@ember/runloop';
import config from './config/environment';
import { inject as service } from '@ember/service';

// this is constant for this app and is only used to identify page views in the GA dashboard
const hostname = config.APP.domain.replace(/(http|https)?:?\/\//g, '');

const AppRouter = Router.extend({
location: config.locationType,
rootURL: config.routerRootURL,

metrics: service(),
fastboot: service(),

didTransition() {
init() {
this._super(...arguments);
this._trackPage();

this.on('routeDidChange', () => this._trackPage());
},


_trackPage() {
if (this.get('fastboot.isFastBoot')) {
return;
Expand All @@ -24,9 +29,6 @@ const AppRouter = Router.extend({
const page = this.url;
const title = this.getWithDefault('currentRouteName', 'unknown');

// this is constant for this app and is only used to identify page views in the GA dashboard
const hostname = config.APP.domain.replace(/(http|https)?:?\/\//g, '');

this.metrics.trackPage({ page, title, hostname });
});
}
Expand Down
23 changes: 17 additions & 6 deletions app/routes/project-version.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { inject as service } from '@ember/service';
import Route from '@ember/routing/route';
import { inject as service } from '@ember/service';
import semverCompare from 'semver-compare';
import getCompactVersion from 'ember-api-docs/utils/get-compact-version';
import getFullVersion from 'ember-api-docs/utils/get-full-version';
Expand All @@ -12,6 +12,8 @@ export default Route.extend({
metaStore: service(),
projectService: service('project'),

router: service(),

titleToken: function(model) {
return model.get('version');
},
Expand All @@ -32,11 +34,19 @@ export default Route.extend({

// Using redirect instead of afterModel so transition succeeds and returns 30
redirect(model, transition) {
this._gatherHeadDataFromVersion(model, transition.params['project-version'].project_version);
let classParams = transition.params['project-version.classes.class'];
let moduleParams = transition.params['project-version.modules.module'];
let namespaceParams = transition.params['project-version.namespaces.namespace'];
let functionParams = transition.params['project-version.functions.function'];

const lookupParams = (routeName) => {
let route = transition.routeInfos.find(({name}) => name === routeName);
return route ? route.params : {}
};

this._gatherHeadDataFromVersion(model, lookupParams('project-version').project_version);

let classParams = lookupParams('project-version.classes.class');
let moduleParams = lookupParams('project-version.modules.module');
let namespaceParams = lookupParams('project-version.namespaces.namespace');
let functionParams = lookupParams('project-version.functions.function');

let transitionVersion = this.projectService.getUrlVersion();
if (!classParams && !moduleParams && !namespaceParams && !functionParams) {
// if there is no class, module, or namespace specified...
Expand Down Expand Up @@ -66,6 +76,7 @@ export default Route.extend({
this.set('headData.isRelease', projectVersion === 'release');
this.set('headData.compactVersion', model.get('compactVersion'));
this.set('headData.urlVersion', projectVersion);

if (!this.get('headData.isRelease')) {
let request = this.get('fastboot.request');
let href = this.get('fastboot.isFastBoot')
Expand Down
59 changes: 36 additions & 23 deletions app/routes/project-version/classes/class.js
Original file line number Diff line number Diff line change
@@ -1,14 +1,11 @@
import { resolve, all } from 'rsvp';
import Route from '@ember/routing/route';
import { set, get } from '@ember/object';
import ScrollTracker from 'ember-api-docs/mixins/scroll-tracker';
import { get, set } from '@ember/object';
import { inject as service } from '@ember/service';
import { pluralize } from 'ember-inflector';
import Ember from 'ember';
import getFullVersion from 'ember-api-docs/utils/get-full-version';
import ScrollTracker from 'ember-api-docs/mixins/scroll-tracker';
import createExcerpt from 'ember-api-docs/utils/create-excerpt';

const { Logger } = Ember;
import getFullVersion from 'ember-api-docs/utils/get-full-version';
import { pluralize } from 'ember-inflector';
import { all, resolve } from 'rsvp';

export default Route.extend(ScrollTracker, {
headData: service(),
Expand All @@ -19,9 +16,17 @@ export default Route.extend(ScrollTracker, {
},

async model(params, transition) {
let projectID = transition.params['project-version'].project;
const lookupParams = (routeName) => {
let route = transition.routeInfos.find(({name}) => name === routeName);
return route ? route.params : {}
};

let {
project: projectID,
project_version: compactVersion
} = lookupParams('project-version');

let projectObj = await this.store.findRecord('project', projectID);
let compactVersion = transition.params['project-version'].project_version;
let projectVersion = getFullVersion(compactVersion, projectID, projectObj, this.metaStore);
const klass = params['class'];
return this.find('class', `${projectID}-${projectVersion}-${klass}`);
Expand All @@ -30,16 +35,16 @@ export default Route.extend(ScrollTracker, {
find(typeName, param) {
return this.store.find(typeName, param).catch((e1) => {
if (typeName != 'namespace') {
Logger.warn(e1, 'fetching by class or module failed, retrying as namespace');
console.warn(e1, 'fetching by class or module failed, retrying as namespace');
return this.store.find('namespace', param).catch((e2) => {
Logger.error(e2);
console.error(e2);
return resolve({
isError: true,
status: 404
});
});
}
Logger.error(e1);
console.error(e1);
return resolve({
isError: true,
status: 404
Expand All @@ -48,13 +53,22 @@ export default Route.extend(ScrollTracker, {
},

redirect(model, transition) {
if (transition.queryParams.anchor && transition.queryParams.type) {
let type = transition.queryParams.type;
this.transitionTo(`project-version.classes.class.${pluralize(type)}.${type}`,
transition.params['project-version'].project,
transition.params['project-version'].project_version,
transition.params['project-version.classes.class'].class,
transition.queryParams.anchor);
const lookupParams = (routeName) => {
let route = transition.routeInfos.find(({name}) => name === routeName);
return route ? route.params : {}
}

let { to: { queryParams } } = transition;

if (queryParams.anchor && queryParams.type) {
let type = queryParams.type;
this.transitionTo(
`project-version.classes.class.${pluralize(type)}.${type}`,
lookupParams('project-version').project,
lookupParams('project-version').project_version,
lookupParams('project-version.classes.class').class,
queryParams.anchor
);
}
if (model.isError) {
this.transitionTo('404');
Expand All @@ -63,14 +77,14 @@ export default Route.extend(ScrollTracker, {

afterModel(klass) {
if (!klass.isError) {
let description = klass.get('ogDescription') || klass.get('description')
let description = klass.get('ogDescription') || klass.get('description');
if (description) {
set(this, 'headData.description', createExcerpt(description));
}

const relationships = get(klass.constructor, 'relationshipNames');
const promises = Object.keys(relationships).reduce((memo, relationshipType) => {
const relationshipPromises = relationships[relationshipType].map(name => klass.get(name));
const relationshipPromises = relationships[relationshipType].map((name) => klass.get(name));
return memo.concat(relationshipPromises);
}, []);
return all(promises);
Expand All @@ -82,5 +96,4 @@ export default Route.extend(ScrollTracker, {
class: get(model, 'name')
};
}

});
13 changes: 11 additions & 2 deletions app/routes/project-version/functions/function.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,18 @@ export default Route.extend({
},

async model(params, transition) {
let projectID = transition.params['project-version'].project;
const lookupParams = (routeName) => {
let route = transition.routeInfos.find(({name}) => name === routeName);
return route ? route.params : {}
};

let {
project: projectID,
project_version: compactVersion
} = lookupParams('project-version');

let projectObj = await this.store.findRecord('project', projectID);
let compactVersion = transition.params['project-version'].project_version;

let projectVersion = getFullVersion(compactVersion, projectID, projectObj, this.metaStore);
let className = params['module'];
let functionName = params['fn'];
Expand Down
Loading