mirror of https://github.com/rancher/ui.git
43 lines
1.1 KiB
JavaScript
43 lines
1.1 KiB
JavaScript
import Mixin from '@ember/object/mixin';
|
|
import { get, set } from '@ember/object';
|
|
import { inject as service } from '@ember/service';
|
|
import Errors from 'shared/utils/errors';
|
|
|
|
export default Mixin.create({
|
|
access: service(),
|
|
growl: service(),
|
|
|
|
preload(type, storeName = 'store', opt = null) {
|
|
return get(this, storeName).find(type, null, opt);
|
|
},
|
|
|
|
loadSchemas(storeName) {
|
|
var store = get(this, storeName);
|
|
|
|
store.resetType('schema');
|
|
|
|
return store.rawRequest({
|
|
url: 'schema',
|
|
dataType: 'json'
|
|
}).then((xhr) => {
|
|
store._state.foundAll['schema'] = true;
|
|
store._bulkAdd('schema', xhr.body.data);
|
|
});
|
|
},
|
|
|
|
loadingError(err, transition) {
|
|
let isAuthFail = err && err.status && [401, 403].includes(err.status);
|
|
|
|
var msg = Errors.stringify(err);
|
|
|
|
console.log('Loading Error:', msg, err);
|
|
if ( isAuthFail ) {
|
|
set(this, 'access.enabled', true);
|
|
transition.send('logout');
|
|
} else {
|
|
get(this, 'growl').fromError(err);
|
|
this.replaceWith('global-admin.clusters');
|
|
}
|
|
},
|
|
});
|