Merge pull request #1 from gconsidine/275-delete-warnings

275 delete warnings
This commit is contained in:
Michael Abashian
2017-11-10 11:28:33 -05:00
committed by GitHub
17 changed files with 282 additions and 262 deletions

View File

@@ -45,6 +45,7 @@ module.exports = {
ignoreTemplateLiterals: true, ignoreTemplateLiterals: true,
}], }],
'no-continue': 'off', 'no-continue': 'off',
'no-debugger': 'off',
'no-mixed-operators': 'off', 'no-mixed-operators': 'off',
'no-param-reassign': 'off', 'no-param-reassign': 'off',
'no-plusplus': 'off', 'no-plusplus': 'off',

View File

@@ -42,7 +42,7 @@ function AddCredentialsController (models, $state, strings) {
vm.form.save = data => { vm.form.save = data => {
data.user = me.get('id'); data.user = me.get('id');
return credential.request('post', data); return credential.request('post', { data });
}; };
vm.form.onSaveSuccess = res => { vm.form.onSaveSuccess = res => {

View File

@@ -88,7 +88,7 @@ function EditCredentialsController (models, $state, $scope, strings) {
data.user = me.get('id'); data.user = me.get('id');
credential.unset('inputs'); credential.unset('inputs');
return credential.request('put', data); return credential.request('put', { data });
}; };
vm.form.onSaveSuccess = () => { vm.form.onSaveSuccess = () => {

View File

@@ -1,34 +1,46 @@
let $http; let $http;
let $q; let $q;
let cache; let cache;
let strings;
function request (method, resource) { function request (method, resource, config) {
if (Array.isArray(method)) { let req = this.parseRequestConfig(method, resource, config);
const promises = method.map((_method_, i) =>
this.request(_method_, Array.isArray(resource) ? resource[i] : resource)); if (Array.isArray(req.method)) {
const promises = req.method.map((_method, i) => {
const _resource = Array.isArray(req.resource) ? req.resource[i] : req.resource;
req = this.parseRequestConfig(_method, _resource, config);
if (this.isCacheable(req)) {
return this.requestWithCache(req);
}
return this.request(req);
});
return $q.all(promises); return $q.all(promises);
} }
if (this.isCacheable(method, resource)) { if (this.isCacheable(req)) {
return this.requestWithCache(method, resource); return this.requestWithCache(req);
} }
return this.http[method](resource); return this.http[req.method](req);
} }
function requestWithCache (method, resource) { function requestWithCache (config) {
const key = cache.createKey(method, this.path, resource); const key = cache.createKey(config.method, this.path, config.resource);
return cache.get(key) return cache.get(key)
.then(data => { .then(data => {
if (data) { if (data) {
this.model[method.toUpperCase()] = data; this.model[config.method.toUpperCase()] = data;
return data; return data;
} }
return this.http[method](resource) return this.http[config.method](config)
.then(res => { .then(res => {
cache.put(key, res.data); cache.put(key, res.data);
@@ -77,22 +89,22 @@ function search (params, config) {
}); });
} }
function httpGet (resource, config) { function httpGet (config = {}) {
const req = { const req = {
method: 'GET', method: 'GET',
url: this.path url: this.path
}; };
if (config && config.params) { if (config.params) {
req.params = config.params; req.params = config.params;
} }
if (typeof resource === 'object') { if (typeof config.resource === 'object') {
this.model.GET = resource; this.model.GET = config.resource;
return $q.resolve(); return $q.resolve();
} else if (resource) { } else if (config.resource) {
req.url = `${this.path}${resource}/`; req.url = `${this.path}${config.resource}/`;
} }
return $http(req) return $http(req)
@@ -103,40 +115,51 @@ function httpGet (resource, config) {
}); });
} }
function httpPost (data) { function httpPost (config = {}) {
const req = { const req = {
method: 'POST', method: 'POST',
url: this.path, url: this.path,
data data: config.data
}; };
return $http(req).then(res => { return $http(req)
this.model.GET = res.data; .then(res => {
this.model.GET = res.data;
return res; return res;
}); });
} }
function httpPut (changes) { function httpPatch (config = {}) {
const model = Object.assign(this.get(), changes); const req = {
method: 'PUT',
url: `${this.path}${this.get('id')}/`,
data: config.changes
};
return $http(req);
}
function httpPut (config = {}) {
const model = _.merge(this.get(), config.data);
const req = { const req = {
method: 'PUT', method: 'PUT',
url: `${this.path}${model.id}/`, url: `${this.path}${this.get('id')}/`,
data: model data: model
}; };
return $http(req).then(res => res); return $http(req);
} }
function httpOptions (resource) { function httpOptions (config = {}) {
const req = { const req = {
method: 'OPTIONS', method: 'OPTIONS',
url: this.path url: this.path
}; };
if (resource) { if (config.resource) {
req.url = `${this.path}${resource}/`; req.url = `${this.path}${config.resource}/`;
} }
return $http(req) return $http(req)
@@ -147,17 +170,17 @@ function httpOptions (resource) {
}); });
} }
function httpDelete (resource) { function httpDelete (config = {}) {
const req = { const req = {
method: 'DELETE', method: 'DELETE',
url: this.path url: this.path
}; };
if (resource) { if (config.resource) {
req.url = `${this.path}${resource}/`; req.url = `${this.path}${config.resource}/`;
} }
return $http(req).then(res => res); return $http(req);
} }
function options (keys) { function options (keys) {
@@ -367,29 +390,19 @@ function graft (id) {
} }
function getDependentResourceCounts (id) { function getDependentResourceCounts (id) {
if (this.setDependentResources) { this.setDependentResources(id);
this.setDependentResources(id);
} else {
return Promise.resolve([]);
}
const dependentResourcePromises = []; const promises = [];
this.dependentResources.forEach(dependentResource => { this.dependentResources.forEach(resource => {
const config = {}; promises.push(resource.model.request('get', resource.params)
.then(res => ({
if (dependentResource.params) { label: resource.model.label,
config.params = dependentResource.params; count: res.data.count
}
dependentResourcePromises.push(dependentResource.model.http.get(undefined, config)
.then((val) => ({
label: dependentResource.model.label,
count: val.data.count
}))); })));
}); });
return Promise.all(dependentResourcePromises); return Promise.all(promises);
} }
/** /**
@@ -401,20 +414,22 @@ function getDependentResourceCounts (id) {
* @arg {string=} method - Populate the model with `GET` or `OPTIONS` data. * @arg {string=} method - Populate the model with `GET` or `OPTIONS` data.
* @arg {(string|Object)=} resource - An `id` reference to a particular * @arg {(string|Object)=} resource - An `id` reference to a particular
* resource or an existing model's data. * resource or an existing model's data.
* @arg {boolean=} isGraft - Create a new instance from existing model data. * @arg {config=} config - Create a new instance from existing model data.
* *
* @returns {(Object|Promise)} - Returns a reference to the model instance * @returns {(Object|Promise)} - Returns a reference to the model instance
* if an empty instance or graft is created. Otherwise, a promise yielding * if an empty instance or graft is created. Otherwise, a promise yielding
* a model instance is returned. * a model instance is returned.
*/ */
function create (method, resource, isGraft, config) { function create (method, resource, config) {
if (!method) { const req = this.parseRequestConfig(method, resource, config);
if (!req || !req.method) {
return this; return this;
} }
this.promise = this.request(method, resource, config); this.promise = this.request(req);
if (isGraft) { if (req.graft) {
return this; return this;
} }
@@ -422,17 +437,51 @@ function create (method, resource, isGraft, config) {
.then(() => this); .then(() => this);
} }
function parseRequestConfig (method, resource, config) {
if (!method) {
return null;
}
let req = {};
if (Array.isArray(method)) {
if (Array.isArray(resource)) {
req.resource = resource;
} else if (typeof resource === 'object') {
req = resource;
}
req.method = method;
} else if (typeof method === 'string') {
if (typeof resource === 'object') {
req = resource;
} else {
req.resource = resource;
}
req.method = method;
} else if (typeof method === 'object') {
req = method;
} else {
req = config;
req.method = method;
req.resource = resource;
}
return req;
}
/** /**
* Base functionality for API interaction. * Base functionality for API interaction.
* *
* @arg {string} path - The API resource for the model extending BaseModel to * @arg {string} resource - The API resource for the model extending BaseModel to
* use. * use.
* @arg {Object=} settings - Configuration applied to all instances of the * @arg {Object=} settings - Configuration applied to all instances of the
* extending model. * extending model.
* @arg {boolean=} settings.cache - Cache the model data. * @arg {boolean=} settings.cache - Cache the model data.
* *
*/ */
function BaseModel (path, settings) { function BaseModel (resource, settings) {
this.create = create; this.create = create;
this.find = find; this.find = find;
this.get = get; this.get = get;
@@ -444,6 +493,7 @@ function BaseModel (path, settings) {
this.match = match; this.match = match;
this.normalizePath = normalizePath; this.normalizePath = normalizePath;
this.options = options; this.options = options;
this.parseRequestConfig = parseRequestConfig;
this.request = request; this.request = request;
this.requestWithCache = requestWithCache; this.requestWithCache = requestWithCache;
this.search = search; this.search = search;
@@ -455,24 +505,27 @@ function BaseModel (path, settings) {
this.http = { this.http = {
get: httpGet.bind(this), get: httpGet.bind(this),
options: httpOptions.bind(this), options: httpOptions.bind(this),
patch: httpPatch.bind(this),
post: httpPost.bind(this), post: httpPost.bind(this),
put: httpPut.bind(this), put: httpPut.bind(this),
delete: httpDelete.bind(this) delete: httpDelete.bind(this)
}; };
this.model = {}; this.model = {};
this.path = this.normalizePath(path); this.path = this.normalizePath(resource);
this.label = strings.get(`${resource}.LABEL`);
this.settings = settings || {}; this.settings = settings || {};
} }
function BaseModelLoader (_$http_, _$q_, _cache_) { function BaseModelLoader (_$http_, _$q_, _cache_, ModelsStrings) {
$http = _$http_; $http = _$http_;
$q = _$q_; $q = _$q_;
cache = _cache_; cache = _cache_;
strings = ModelsStrings;
return BaseModel; return BaseModel;
} }
BaseModelLoader.$inject = ['$http', '$q', 'CacheService']; BaseModelLoader.$inject = ['$http', '$q', 'CacheService', 'ModelsStrings'];
export default BaseModelLoader; export default BaseModelLoader;

View File

@@ -1,5 +1,5 @@
let $log; let $log;
let BaseModel; let Base;
function getTruncatedVersion () { function getTruncatedVersion () {
let version; let version;
@@ -17,18 +17,18 @@ function isOpen () {
return this.get('license_info.license_type') === 'open'; return this.get('license_info.license_type') === 'open';
} }
function ConfigModel (method, resource, graft) { function ConfigModel (method, resource, config) {
BaseModel.call(this, 'config', { cache: true }); Base.call(this, 'config', { cache: true });
this.Constructor = ConfigModel; this.Constructor = ConfigModel;
this.getTruncatedVersion = getTruncatedVersion; this.getTruncatedVersion = getTruncatedVersion;
this.isOpen = isOpen; this.isOpen = isOpen;
return this.create(method, resource, graft); return this.create(method, resource, config);
} }
function ConfigModelLoader (_BaseModel_, _$log_) { function ConfigModelLoader (BaseModel, _$log_) {
BaseModel = _BaseModel_; Base = BaseModel;
$log = _$log_; $log = _$log_;
return ConfigModel; return ConfigModel;

View File

@@ -1,11 +1,10 @@
const ENCRYPTED_VALUE = '$encrypted$'; const ENCRYPTED_VALUE = '$encrypted$';
let BaseModel; let Base;
let ProjectModel; let Project;
let JobTemplateModel; let JobTemplate;
let InventoryModel; let Inventory;
let InventorySourceModel; let InventorySource;
let ModelsStrings;
function createFormSchema (method, config) { function createFormSchema (method, config) {
if (!config) { if (!config) {
@@ -48,26 +47,26 @@ function assignInputGroupValues (inputs) {
function setDependentResources (id) { function setDependentResources (id) {
this.dependentResources = [ this.dependentResources = [
{ {
model: new ProjectModel(), model: new Project(),
params: { params: {
credential: id credential: id
} }
}, },
{ {
model: new JobTemplateModel(), model: new JobTemplate(),
params: { params: {
credential: id, credential: id,
ask_credential_on_launch: false ask_credential_on_launch: false
} }
}, },
{ {
model: new InventoryModel(), model: new Inventory(),
params: { params: {
insights_credential: id insights_credential: id
} }
}, },
{ {
model: new InventorySourceModel(), model: new InventorySource(),
params: { params: {
credential: id credential: id
} }
@@ -75,32 +74,29 @@ function setDependentResources (id) {
]; ];
} }
function CredentialModel (method, resource, graft) { function CredentialModel (method, resource, config) {
BaseModel.call(this, 'credentials'); Base.call(this, 'credentials');
this.Constructor = CredentialModel; this.Constructor = CredentialModel;
this.createFormSchema = createFormSchema.bind(this); this.createFormSchema = createFormSchema.bind(this);
this.assignInputGroupValues = assignInputGroupValues.bind(this); this.assignInputGroupValues = assignInputGroupValues.bind(this);
this.setDependentResources = setDependentResources.bind(this); this.setDependentResources = setDependentResources.bind(this);
this.label = ModelsStrings.get('labels.CREDENTIAL');
return this.create(method, resource, graft); return this.create(method, resource, config);
} }
function CredentialModelLoader ( function CredentialModelLoader (
_BaseModel_, BaseModel,
_ProjectModel_, ProjectModel,
_JobTemplateModel_, JobTemplateModel,
_InventoryModel_, InventoryModel,
_InventorySourceModel_, InventorySourceModel
_ModelsStrings_
) { ) {
BaseModel = _BaseModel_; Base = BaseModel;
ProjectModel = _ProjectModel_; Project = ProjectModel;
JobTemplateModel = _JobTemplateModel_; JobTemplate = JobTemplateModel;
InventoryModel = _InventoryModel_; Inventory = InventoryModel;
InventorySourceModel = _InventorySourceModel_; InventorySource = InventorySourceModel;
ModelsStrings = _ModelsStrings_;
return CredentialModel; return CredentialModel;
} }
@@ -110,8 +106,7 @@ CredentialModelLoader.$inject = [
'ProjectModel', 'ProjectModel',
'JobTemplateModel', 'JobTemplateModel',
'InventoryModel', 'InventoryModel',
'InventorySourceModel', 'InventorySourceModel'
'ModelsStrings'
]; ];
export default CredentialModelLoader; export default CredentialModelLoader;

View File

@@ -1,6 +1,5 @@
let BaseModel; let Base;
let CredentialModel; let Credential;
let ModelsStrings;
function categorizeByKind () { function categorizeByKind () {
const group = {}; const group = {};
@@ -35,7 +34,7 @@ function mergeInputProperties () {
function setDependentResources (id) { function setDependentResources (id) {
this.dependentResources = [ this.dependentResources = [
{ {
model: new CredentialModel(), model: new Credential(),
params: { params: {
credential_type: id credential_type: id
} }
@@ -43,34 +42,27 @@ function setDependentResources (id) {
]; ];
} }
function CredentialTypeModel (method, resource, graft) { function CredentialTypeModel (method, resource, config) {
BaseModel.call(this, 'credential_types'); Base.call(this, 'credential_types');
this.Constructor = CredentialTypeModel; this.Constructor = CredentialTypeModel;
this.categorizeByKind = categorizeByKind.bind(this); this.categorizeByKind = categorizeByKind.bind(this);
this.mergeInputProperties = mergeInputProperties.bind(this); this.mergeInputProperties = mergeInputProperties.bind(this);
this.setDependentResources = setDependentResources.bind(this); this.setDependentResources = setDependentResources.bind(this);
this.label = ModelsStrings.get('labels.CREDENTIAL_TYPE');
return this.create(method, resource, graft); return this.create(method, resource, config);
} }
function CredentialTypeModelLoader ( function CredentialTypeModelLoader (BaseModel, CredentialModel) {
_BaseModel_, Base = BaseModel;
_CredentialModel_, Credential = CredentialModel;
_ModelsStrings_
) {
BaseModel = _BaseModel_;
CredentialModel = _CredentialModel_;
ModelsStrings = _ModelsStrings_;
return CredentialTypeModel; return CredentialTypeModel;
} }
CredentialTypeModelLoader.$inject = [ CredentialTypeModelLoader.$inject = [
'BaseModel', 'BaseModel',
'CredentialModel', 'CredentialModel'
'ModelsStrings'
]; ];
export default CredentialTypeModelLoader; export default CredentialTypeModelLoader;

View File

@@ -1,11 +1,10 @@
let BaseModel; let Base;
let JobTemplateModel; let JobTemplate;
let ModelsStrings;
function setDependentResources (id) { function setDependentResources (id) {
this.dependentResources = [ this.dependentResources = [
{ {
model: new JobTemplateModel(), model: new JobTemplate(),
params: { params: {
inventory: id inventory: id
} }
@@ -13,32 +12,25 @@ function setDependentResources (id) {
]; ];
} }
function InventoryModel (method, resource, graft) { function InventoryModel (method, resource, config) {
BaseModel.call(this, 'inventories'); Base.call(this, 'inventories');
this.Constructor = InventoryModel; this.Constructor = InventoryModel;
this.setDependentResources = setDependentResources.bind(this); this.setDependentResources = setDependentResources.bind(this);
this.label = ModelsStrings.get('labels.INVENTORY');
return this.create(method, resource, graft); return this.create(method, resource, config);
} }
function InventoryModelLoader ( function InventoryModelLoader (BaseModel, JobTemplateModel) {
_BaseModel_, Base = BaseModel;
_JobTemplateModel_, JobTemplate = JobTemplateModel;
_ModelsStrings_
) {
BaseModel = _BaseModel_;
JobTemplateModel = _JobTemplateModel_;
ModelsStrings = _ModelsStrings_;
return InventoryModel; return InventoryModel;
} }
InventoryModelLoader.$inject = [ InventoryModelLoader.$inject = [
'BaseModel', 'BaseModel',
'JobTemplateModel', 'JobTemplateModel'
'ModelsStrings'
]; ];
export default InventoryModelLoader; export default InventoryModelLoader;

View File

@@ -1,11 +1,10 @@
let BaseModel; let Base;
let InventorySourceModel; let InventorySource;
let ModelsStrings;
function setDependentResources (id) { function setDependentResources (id) {
this.dependentResources = [ this.dependentResources = [
{ {
model: new InventorySourceModel(), model: new InventorySource(),
params: { params: {
source_script: id source_script: id
} }
@@ -13,32 +12,25 @@ function setDependentResources (id) {
]; ];
} }
function InventoryScriptModel (method, resource, graft) { function InventoryScriptModel (method, resource, config) {
BaseModel.call(this, 'inventory_scripts'); Base.call(this, 'inventory_scripts');
this.Constructor = InventoryScriptModel; this.Constructor = InventoryScriptModel;
this.setDependentResources = setDependentResources.bind(this); this.setDependentResources = setDependentResources.bind(this);
this.label = ModelsStrings.get('labels.INVENTORY_SCRIPT');
return this.create(method, resource, graft); return this.create(method, resource, config);
} }
function InventoryScriptModelLoader ( function InventoryScriptModelLoader (BaseModel, InventorySourceModel) {
_BaseModel_, Base = BaseModel;
_InventorySourceModel_, InventorySource = InventorySourceModel;
_ModelsStrings_
) {
BaseModel = _BaseModel_;
InventorySourceModel = _InventorySourceModel_;
ModelsStrings = _ModelsStrings_;
return InventoryScriptModel; return InventoryScriptModel;
} }
InventoryScriptModelLoader.$inject = [ InventoryScriptModelLoader.$inject = [
'BaseModel', 'BaseModel',
'InventorySourceModel', 'InventorySourceModel'
'ModelsStrings'
]; ];
export default InventoryScriptModelLoader; export default InventoryScriptModelLoader;

View File

@@ -1,11 +1,10 @@
let BaseModel; let Base;
let WorkflowJobTemplateNodeModel; let WorkflowJobTemplateNode;
let ModelsStrings;
function setDependentResources (id) { function setDependentResources (id) {
this.dependentResources = [ this.dependentResources = [
{ {
model: new WorkflowJobTemplateNodeModel(), model: new WorkflowJobTemplateNode(),
params: { params: {
unified_job_template: id unified_job_template: id
} }
@@ -13,32 +12,28 @@ function setDependentResources (id) {
]; ];
} }
function InventorySourceModel (method, resource, graft) { function InventorySourceModel (method, resource, config) {
BaseModel.call(this, 'inventory_sources'); Base.call(this, 'inventory_sources');
this.Constructor = InventorySourceModel; this.Constructor = InventorySourceModel;
this.setDependentResources = setDependentResources.bind(this); this.setDependentResources = setDependentResources.bind(this);
this.label = ModelsStrings.get('labels.INVENTORY_SOURCE');
return this.create(method, resource, graft); return this.create(method, resource, config);
} }
function InventorySourceModelLoader ( function InventorySourceModelLoader (
_BaseModel_, BaseModel,
_WorkflowJobTemplateNodeModel_, WorkflowJobTemplateNodeModel
_ModelsStrings_
) { ) {
BaseModel = _BaseModel_; Base = BaseModel;
WorkflowJobTemplateNodeModel = _WorkflowJobTemplateNodeModel_; WorkflowJobTemplateNode = WorkflowJobTemplateNodeModel;
ModelsStrings = _ModelsStrings_;
return InventorySourceModel; return InventorySourceModel;
} }
InventorySourceModelLoader.$inject = [ InventorySourceModelLoader.$inject = [
'BaseModel', 'BaseModel',
'WorkflowJobTemplateNodeModel', 'WorkflowJobTemplateNodeModel'
'ModelsStrings'
]; ];
export default InventorySourceModelLoader; export default InventorySourceModelLoader;

View File

@@ -1,11 +1,10 @@
let BaseModel; let Base;
let WorkflowJobTemplateNodeModel; let WorkflowJobTemplateNode;
let ModelsStrings;
function setDependentResources (id) { function setDependentResources (id) {
this.dependentResources = [ this.dependentResources = [
{ {
model: new WorkflowJobTemplateNodeModel(), model: new WorkflowJobTemplateNode(),
params: { params: {
unified_job_template: id unified_job_template: id
} }
@@ -13,32 +12,25 @@ function setDependentResources (id) {
]; ];
} }
function JobTemplateModel (method, resource, graft) { function JobTemplateModel (method, resource, config) {
BaseModel.call(this, 'job_templates'); Base.call(this, 'job_templates');
this.Constructor = JobTemplateModel; this.Constructor = JobTemplateModel;
this.setDependentResources = setDependentResources.bind(this); this.setDependentResources = setDependentResources.bind(this);
this.label = ModelsStrings.get('labels.JOB_TEMPLATE');
return this.create(method, resource, graft); return this.create(method, resource, config);
} }
function JobTemplateModelLoader ( function JobTemplateModelLoader (BaseModel, WorkflowJobTemplateNodeModel) {
_BaseModel_, Base = BaseModel;
_WorkflowJobTemplateNodeModel_, WorkflowJobTemplateNode = WorkflowJobTemplateNodeModel;
_ModelsStrings_
) {
BaseModel = _BaseModel_;
WorkflowJobTemplateNodeModel = _WorkflowJobTemplateNodeModel_;
ModelsStrings = _ModelsStrings_;
return JobTemplateModel; return JobTemplateModel;
} }
JobTemplateModelLoader.$inject = [ JobTemplateModelLoader.$inject = [
'BaseModel', 'BaseModel',
'WorkflowJobTemplateNodeModel', 'WorkflowJobTemplateNodeModel'
'ModelsStrings'
]; ];
export default JobTemplateModelLoader; export default JobTemplateModelLoader;

View File

@@ -1,11 +1,11 @@
let BaseModel; let Base;
function MeModel (method, resource, graft) { function MeModel (method, resource, config) {
BaseModel.call(this, 'me'); Base.call(this, 'me');
this.Constructor = MeModel; this.Constructor = MeModel;
return this.create(method, resource, graft) return this.create(method, resource, config)
.then(() => { .then(() => {
if (this.has('results')) { if (this.has('results')) {
_.merge(this.model.GET, this.get('results[0]')); _.merge(this.model.GET, this.get('results[0]'));
@@ -16,8 +16,8 @@ function MeModel (method, resource, graft) {
}); });
} }
function MeModelLoader (_BaseModel_) { function MeModelLoader (BaseModel) {
BaseModel = _BaseModel_; Base = BaseModel;
return MeModel; return MeModel;
} }

View File

@@ -1,28 +1,21 @@
let BaseModel; let Base;
let ModelsStrings;
function OrganizationModel (method, resource, graft) { function OrganizationModel (method, resource, config) {
BaseModel.call(this, 'organizations'); Base.call(this, 'organizations');
this.Constructor = OrganizationModel; this.Constructor = OrganizationModel;
this.label = ModelsStrings.get('labels.ORGANIZATION');
return this.create(method, resource, graft); return this.create(method, resource, config);
} }
function OrganizationModelLoader ( function OrganizationModelLoader (BaseModel) {
_BaseModel_, Base = BaseModel;
_ModelsStrings_
) {
BaseModel = _BaseModel_;
ModelsStrings = _ModelsStrings_;
return OrganizationModel; return OrganizationModel;
} }
OrganizationModelLoader.$inject = [ OrganizationModelLoader.$inject = [
'BaseModel', 'BaseModel'
'ModelsStrings'
]; ];
export default OrganizationModelLoader; export default OrganizationModelLoader;

View File

@@ -1,25 +1,24 @@
let BaseModel; let Base;
let JobTemplateModel; let JobTemplate;
let WorkflowJobTemplateNodeModel; let WorkflowJobTemplateNode;
let InventorySourceModel; let InventorySource;
let ModelsStrings;
function setDependentResources (id) { function setDependentResources (id) {
this.dependentResources = [ this.dependentResources = [
{ {
model: new JobTemplateModel(), model: new JobTemplate(),
params: { params: {
project: id project: id
} }
}, },
{ {
model: new WorkflowJobTemplateNodeModel(), model: new WorkflowJobTemplateNode(),
params: { params: {
unified_job_template: id unified_job_template: id
} }
}, },
{ {
model: new InventorySourceModel(), model: new InventorySource(),
params: { params: {
source_project: id source_project: id
} }
@@ -27,28 +26,25 @@ function setDependentResources (id) {
]; ];
} }
function ProjectModel (method, resource, graft) { function ProjectModel (method, resource, config) {
BaseModel.call(this, 'projects'); Base.call(this, 'projects');
this.Constructor = ProjectModel; this.Constructor = ProjectModel;
this.setDependentResources = setDependentResources.bind(this); this.setDependentResources = setDependentResources.bind(this);
this.label = ModelsStrings.get('labels.PROJECT');
return this.create(method, resource, graft); return this.create(method, resource, config);
} }
function ProjectModelLoader ( function ProjectModelLoader (
_BaseModel_, BaseModel,
_JobTemplateModel_, JobTemplateModel,
_WorkflowJobTemplateNodeModel_, WorkflowJobTemplateNodeModel,
_InventorySourceModel_, InventorySourceModel,
_ModelsStrings_
) { ) {
BaseModel = _BaseModel_; Base = BaseModel;
JobTemplateModel = _JobTemplateModel_; JobTemplate = JobTemplateModel;
WorkflowJobTemplateNodeModel = _WorkflowJobTemplateNodeModel_; WorkflowJobTemplateNode = WorkflowJobTemplateNodeModel;
InventorySourceModel = _InventorySourceModel_; InventorySource = InventorySourceModel;
ModelsStrings = _ModelsStrings_;
return ProjectModel; return ProjectModel;
} }
@@ -57,8 +53,7 @@ ProjectModelLoader.$inject = [
'BaseModel', 'BaseModel',
'JobTemplateModel', 'JobTemplateModel',
'WorkflowJobTemplateNodeModel', 'WorkflowJobTemplateNodeModel',
'InventorySourceModel', 'InventorySourceModel'
'ModelsStrings'
]; ];
export default ProjectModelLoader; export default ProjectModelLoader;

View File

@@ -1,28 +1,21 @@
let BaseModel; let Base;
let ModelsStrings;
function WorkflowJobTemplateNodeModel (method, resource, graft) { function WorkflowJobTemplateNodeModel (method, resource, config) {
BaseModel.call(this, 'workflow_job_template_nodes'); Base.call(this, 'workflow_job_template_nodes');
this.Constructor = WorkflowJobTemplateNodeModel; this.Constructor = WorkflowJobTemplateNodeModel;
this.label = ModelsStrings.get('labels.WORKFLOW_JOB_TEMPLATE_NODE');
return this.create(method, resource, graft); return this.create(method, resource, config);
} }
function WorkflowJobTemplateNodeModelLoader ( function WorkflowJobTemplateNodeModelLoader (BaseModel) {
_BaseModel_, Base = BaseModel;
_ModelsStrings_
) {
BaseModel = _BaseModel_;
ModelsStrings = _ModelsStrings_;
return WorkflowJobTemplateNodeModel; return WorkflowJobTemplateNodeModel;
} }
WorkflowJobTemplateNodeModelLoader.$inject = [ WorkflowJobTemplateNodeModelLoader.$inject = [
'BaseModel', 'BaseModel'
'ModelsStrings'
]; ];
export default WorkflowJobTemplateNodeModelLoader; export default WorkflowJobTemplateNodeModelLoader;

View File

@@ -4,16 +4,46 @@ function ModelsStrings (BaseString) {
const { t } = this; const { t } = this;
const ns = this.models; const ns = this.models;
ns.labels = { ns.credentials = {
CREDENTIAL: t.s('Credentials'), LABEL: t.s('Credentials')
CREDENTIAL_TYPE: t.s('Credential Types'), };
INVENTORY: t.s('Inventories'),
INVENTORY_SCRIPT: t.s('Inventory Scripts'), ns.credential_types = {
INVENTORY_SOURCE: t.s('Inventory Sources'), LABEL: t.s('Credential Types')
JOB_TEMPLATE: t.s('Job Templates'), };
ORGANIZATION: t.s('Organizations'),
PROJECT: t.s('Projects'), ns.inventories = {
WORKFLOW_JOB_TEMPLATE_NODE: t.s('Workflow Job Template Nodes') LABEL: t.s('Inventories')
};
ns.inventory_scripts = {
LABEL: t.s('Inventory Scripts')
};
ns.inventory_sources = {
LABEL: t.s('Inventory Sources')
};
ns.job_templates = {
LABEL: t.s('Job Templates')
};
ns.organizations = {
LABEL: t.s('Organizations')
};
ns.projects = {
LABEL: t.s('Projects')
};
ns.workflow_job_template_nodes = {
LABEL: t.s('Workflow Job Template Nodes')
}; };
} }

View File

@@ -4,7 +4,6 @@ let i18n;
function BaseStringService (namespace) { function BaseStringService (namespace) {
const ERROR_NO_NAMESPACE = 'BaseString cannot be extended without providing a namespace'; const ERROR_NO_NAMESPACE = 'BaseString cannot be extended without providing a namespace';
const ERROR_NO_STRING = 'No string exists with this name';
if (!namespace) { if (!namespace) {
throw new Error(ERROR_NO_NAMESPACE); throw new Error(ERROR_NO_NAMESPACE);
@@ -67,8 +66,6 @@ function BaseStringService (namespace) {
* the more globally relevant strings defined here. Strings with with dots as delimeters are * the more globally relevant strings defined here. Strings with with dots as delimeters are
* supported to give flexibility to extending classes to nest strings as necessary. * supported to give flexibility to extending classes to nest strings as necessary.
* *
* If no match is found, an error is thrown to alert the developer immediately instead of
* failing silently.
* *
* The `t.s` and `t.p` calls should only be used where strings are defined in * The `t.s` and `t.p` calls should only be used where strings are defined in
* <name>.strings.js` files. To use translated strings elsewhere, access them through this * <name>.strings.js` files. To use translated strings elsewhere, access them through this
@@ -88,13 +85,13 @@ function BaseStringService (namespace) {
} else { } else {
value = value[key]; value = value[key];
} }
if (!value) {
throw new Error(`${ERROR_NO_STRING}: ${name}`);
}
}); });
return typeof value === 'string' ? value : value(...args); if (!value || typeof value === 'string') {
return value;
}
return value(...args);
}; };
} }