mirror of https://github.com/rancher/ui.git
103 lines
2.6 KiB
JavaScript
103 lines
2.6 KiB
JavaScript
import Ember from 'ember';
|
|
import {normalizeType} from 'ember-api-store/utils/normalize';
|
|
import UnpurgedArrayProxy from 'ui/utils/unpurged-array-proxy';
|
|
import UnremovedArrayProxy from 'ui/utils/unremoved-array-proxy';
|
|
import ActiveArrayProxy from 'ui/utils/active-array-proxy';
|
|
import C from 'ui/utils/constants';
|
|
|
|
export function initialize(instance) {
|
|
var container = instance.container;
|
|
var application = container.lookup('application:main');
|
|
var store = container.lookup('store:main');
|
|
var session = container.lookup('service:session');
|
|
store.set('removeAfterDelete', false);
|
|
|
|
store.reopen({
|
|
baseUrl: application.apiEndpoint,
|
|
|
|
headers: function() {
|
|
var out = {};
|
|
|
|
// Please don't send us www-authenticate headers
|
|
out[C.HEADER.NO_CHALLENGE] = C.HEADER.NO_CHALLENGE_VALUE;
|
|
|
|
// Send the current project id as a header if in a project
|
|
var projectId = session.get(C.SESSION.PROJECT);
|
|
if ( projectId )
|
|
{
|
|
out[C.HEADER.PROJECT] = projectId;
|
|
}
|
|
|
|
return out;
|
|
}.property().volatile(),
|
|
|
|
// Override store.all() so that it only returns un-purged resources.
|
|
reallyAll: store.all,
|
|
all: function(type) {
|
|
type = normalizeType(type);
|
|
var proxy = UnpurgedArrayProxy.create({
|
|
sourceContent: this._group(type)
|
|
});
|
|
|
|
return proxy;
|
|
},
|
|
|
|
// find(type) && return allActive(type)
|
|
findAllActive: function(type) {
|
|
type = normalizeType(type);
|
|
var self = this;
|
|
|
|
if ( self.haveAll(type) )
|
|
{
|
|
return Ember.RSVP.resolve(self.allActive(type),'All active '+ type + ' already cached');
|
|
}
|
|
else
|
|
{
|
|
return this.find(type).then(function() {
|
|
return self.allActive(type);
|
|
});
|
|
}
|
|
},
|
|
|
|
allActive: function(type) {
|
|
type = normalizeType(type);
|
|
var proxy = ActiveArrayProxy.create({
|
|
sourceContent: this._group(type)
|
|
});
|
|
|
|
return proxy;
|
|
},
|
|
|
|
findAllUnremoved: function(type) {
|
|
type = normalizeType(type);
|
|
var self = this;
|
|
|
|
if ( self.haveAll(type) )
|
|
{
|
|
return Ember.RSVP.resolve(self.allUnremoved(type),'All unremoved '+ type + ' already cached');
|
|
}
|
|
else
|
|
{
|
|
return this.find(type).then(function() {
|
|
return self.allUnremoved(type);
|
|
});
|
|
}
|
|
},
|
|
|
|
allUnremoved: function(type) {
|
|
type = normalizeType(type);
|
|
var proxy = UnremovedArrayProxy.create({
|
|
sourceContent: this._group(type)
|
|
});
|
|
|
|
return proxy;
|
|
}
|
|
});
|
|
}
|
|
|
|
export default {
|
|
name: 'store',
|
|
after: 'ember-api-store',
|
|
initialize: initialize
|
|
};
|