mirror of https://github.com/rancher/ui.git
78 lines
2.2 KiB
JavaScript
78 lines
2.2 KiB
JavaScript
import { hash } from 'rsvp';
|
|
import $ from 'jquery';
|
|
import Route from '@ember/routing/route';
|
|
import C from 'ui/utils/constants';
|
|
|
|
export default Route.extend({
|
|
beforeModel() {
|
|
this._super(...arguments);
|
|
this.get('store').findAll('host')
|
|
.then((hosts) => {
|
|
this.controllerFor('authenticated.project.help').set('hasHosts', hosts.get('length') > 0);
|
|
});
|
|
},
|
|
|
|
resetController(controller, isExisting/* , transition*/) {
|
|
if (isExisting) {
|
|
controller.set('modelResolved', false);
|
|
controller.set('modelError', false);
|
|
}
|
|
},
|
|
actions: {
|
|
didTransition() {
|
|
$.getJSON(`${ C.EXT_REFERENCES.FORUM }/categories.json`).then((response) => {
|
|
let modelOut = { resolved: true, };
|
|
|
|
let promises = {};
|
|
|
|
response.category_list.categories.forEach((item) => {
|
|
switch (item.name) {
|
|
case 'Announcements':
|
|
modelOut.announcements = item;
|
|
promises['announcements'] = $.getJSON(`${ C.EXT_REFERENCES.FORUM }/c/${ item.id }/l/latest.json`);
|
|
break;
|
|
case 'General':
|
|
modelOut.general = item;
|
|
promises['general'] = $.getJSON(`${ C.EXT_REFERENCES.FORUM }/c/${ item.id }/l/latest.json`);
|
|
break;
|
|
case 'Rancher':
|
|
modelOut.rancher = item;
|
|
promises['rancher'] = $.getJSON(`${ C.EXT_REFERENCES.FORUM }/c/${ item.id }/l/latest.json`);
|
|
break;
|
|
case 'RancherOS':
|
|
modelOut.rancherOS = item;
|
|
promises['rancherOS'] = $.getJSON(`${ C.EXT_REFERENCES.FORUM }/c/${ item.id }/l/latest.json`);
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
});
|
|
|
|
hash(promises).then((hash) => {
|
|
Object.keys(hash).forEach((key) => {
|
|
let topics = hash[key].topic_list.topics.filterBy('pinned', false);
|
|
|
|
topics.length = 5;
|
|
modelOut[key].topics = topics;
|
|
});
|
|
|
|
this.controller.set('model', modelOut);
|
|
})
|
|
.catch(fail);
|
|
}, fail);
|
|
|
|
return true; // bubble the transition event
|
|
|
|
function fail(/* error*/) {
|
|
let modelOut = {
|
|
resolved: true,
|
|
error: true
|
|
};
|
|
|
|
this.controller.set('model', modelOut);
|
|
}
|
|
},
|
|
},
|
|
|
|
});
|