mirror of
https://github.com/ansible/awx.git
synced 2026-01-14 03:10:42 -03:30
Update the base model to use string service instead of each sub model
This commit is contained in:
parent
e8fd40ace0
commit
8713e38c44
@ -1,6 +1,7 @@
|
||||
let $http;
|
||||
let $q;
|
||||
let cache;
|
||||
let strings;
|
||||
|
||||
function request (method, resource, config) {
|
||||
let req = this.parseRequestConfig(method, resource, config);
|
||||
@ -473,14 +474,14 @@ function parseRequestConfig (method, resource, config) {
|
||||
/**
|
||||
* 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.
|
||||
* @arg {Object=} settings - Configuration applied to all instances of the
|
||||
* extending model.
|
||||
* @arg {boolean=} settings.cache - Cache the model data.
|
||||
*
|
||||
*/
|
||||
function BaseModel (path, settings) {
|
||||
function BaseModel (resource, settings) {
|
||||
this.create = create;
|
||||
this.find = find;
|
||||
this.get = get;
|
||||
@ -511,18 +512,20 @@ function BaseModel (path, settings) {
|
||||
};
|
||||
|
||||
this.model = {};
|
||||
this.path = this.normalizePath(path);
|
||||
this.path = this.normalizePath(resource);
|
||||
this.label = strings.get(`${resource}.LABEL`);
|
||||
this.settings = settings || {};
|
||||
}
|
||||
|
||||
function BaseModelLoader (_$http_, _$q_, _cache_) {
|
||||
function BaseModelLoader (_$http_, _$q_, _cache_, ModelsStrings) {
|
||||
$http = _$http_;
|
||||
$q = _$q_;
|
||||
cache = _cache_;
|
||||
strings = ModelsStrings;
|
||||
|
||||
return BaseModel;
|
||||
}
|
||||
|
||||
BaseModelLoader.$inject = ['$http', '$q', 'CacheService'];
|
||||
BaseModelLoader.$inject = ['$http', '$q', 'CacheService', 'ModelsStrings'];
|
||||
|
||||
export default BaseModelLoader;
|
||||
|
||||
@ -5,7 +5,6 @@ let Project;
|
||||
let JobTemplate;
|
||||
let Inventory;
|
||||
let InventorySource;
|
||||
let strings;
|
||||
|
||||
function createFormSchema (method, config) {
|
||||
if (!config) {
|
||||
@ -82,7 +81,6 @@ function CredentialModel (method, resource, config) {
|
||||
this.createFormSchema = createFormSchema.bind(this);
|
||||
this.assignInputGroupValues = assignInputGroupValues.bind(this);
|
||||
this.setDependentResources = setDependentResources.bind(this);
|
||||
this.label = strings.get('labels.CREDENTIAL');
|
||||
|
||||
return this.create(method, resource, config);
|
||||
}
|
||||
@ -92,15 +90,13 @@ function CredentialModelLoader (
|
||||
ProjectModel,
|
||||
JobTemplateModel,
|
||||
InventoryModel,
|
||||
InventorySourceModel,
|
||||
ModelsStrings
|
||||
InventorySourceModel
|
||||
) {
|
||||
Base = BaseModel;
|
||||
Project = ProjectModel;
|
||||
JobTemplate = JobTemplateModel;
|
||||
Inventory = InventoryModel;
|
||||
InventorySource = InventorySourceModel;
|
||||
strings = ModelsStrings;
|
||||
|
||||
return CredentialModel;
|
||||
}
|
||||
@ -110,8 +106,7 @@ CredentialModelLoader.$inject = [
|
||||
'ProjectModel',
|
||||
'JobTemplateModel',
|
||||
'InventoryModel',
|
||||
'InventorySourceModel',
|
||||
'ModelsStrings'
|
||||
'InventorySourceModel'
|
||||
];
|
||||
|
||||
export default CredentialModelLoader;
|
||||
|
||||
@ -1,6 +1,5 @@
|
||||
let Base;
|
||||
let Credential;
|
||||
let strings;
|
||||
|
||||
function categorizeByKind () {
|
||||
const group = {};
|
||||
@ -50,27 +49,20 @@ function CredentialTypeModel (method, resource, config) {
|
||||
this.categorizeByKind = categorizeByKind.bind(this);
|
||||
this.mergeInputProperties = mergeInputProperties.bind(this);
|
||||
this.setDependentResources = setDependentResources.bind(this);
|
||||
this.label = strings.get('labels.CREDENTIAL_TYPE');
|
||||
|
||||
return this.create(method, resource, config);
|
||||
}
|
||||
|
||||
function CredentialTypeModelLoader (
|
||||
BaseModel,
|
||||
CredentialModel,
|
||||
ModelsStrings
|
||||
) {
|
||||
function CredentialTypeModelLoader (BaseModel, CredentialModel) {
|
||||
Base = BaseModel;
|
||||
Credential = CredentialModel;
|
||||
strings = ModelsStrings;
|
||||
|
||||
return CredentialTypeModel;
|
||||
}
|
||||
|
||||
CredentialTypeModelLoader.$inject = [
|
||||
'BaseModel',
|
||||
'CredentialModel',
|
||||
'ModelsStrings'
|
||||
'CredentialModel'
|
||||
];
|
||||
|
||||
export default CredentialTypeModelLoader;
|
||||
|
||||
@ -1,6 +1,5 @@
|
||||
let Base;
|
||||
let JobTemplate;
|
||||
let strings;
|
||||
|
||||
function setDependentResources (id) {
|
||||
this.dependentResources = [
|
||||
@ -18,27 +17,20 @@ function InventoryModel (method, resource, config) {
|
||||
|
||||
this.Constructor = InventoryModel;
|
||||
this.setDependentResources = setDependentResources.bind(this);
|
||||
this.label = strings.get('labels.INVENTORY');
|
||||
|
||||
return this.create(method, resource, config);
|
||||
}
|
||||
|
||||
function InventoryModelLoader (
|
||||
BaseModel,
|
||||
JobTemplateModel,
|
||||
ModelsStrings
|
||||
) {
|
||||
function InventoryModelLoader (BaseModel, JobTemplateModel) {
|
||||
Base = BaseModel;
|
||||
JobTemplate = JobTemplateModel;
|
||||
strings = ModelsStrings;
|
||||
|
||||
return InventoryModel;
|
||||
}
|
||||
|
||||
InventoryModelLoader.$inject = [
|
||||
'BaseModel',
|
||||
'JobTemplateModel',
|
||||
'ModelsStrings'
|
||||
'JobTemplateModel'
|
||||
];
|
||||
|
||||
export default InventoryModelLoader;
|
||||
|
||||
@ -1,6 +1,5 @@
|
||||
let Base;
|
||||
let InventorySource;
|
||||
let strings;
|
||||
|
||||
function setDependentResources (id) {
|
||||
this.dependentResources = [
|
||||
@ -18,27 +17,20 @@ function InventoryScriptModel (method, resource, config) {
|
||||
|
||||
this.Constructor = InventoryScriptModel;
|
||||
this.setDependentResources = setDependentResources.bind(this);
|
||||
this.label = strings.get('labels.INVENTORY_SCRIPT');
|
||||
|
||||
return this.create(method, resource, config);
|
||||
}
|
||||
|
||||
function InventoryScriptModelLoader (
|
||||
BaseModel,
|
||||
InventorySourceModel,
|
||||
ModelsStrings
|
||||
) {
|
||||
function InventoryScriptModelLoader (BaseModel, InventorySourceModel) {
|
||||
Base = BaseModel;
|
||||
InventorySource = InventorySourceModel;
|
||||
strings = ModelsStrings;
|
||||
|
||||
return InventoryScriptModel;
|
||||
}
|
||||
|
||||
InventoryScriptModelLoader.$inject = [
|
||||
'BaseModel',
|
||||
'InventorySourceModel',
|
||||
'ModelsStrings'
|
||||
'InventorySourceModel'
|
||||
];
|
||||
|
||||
export default InventoryScriptModelLoader;
|
||||
|
||||
@ -1,6 +1,5 @@
|
||||
let Base;
|
||||
let WorkflowJobTemplateNode;
|
||||
let strings;
|
||||
|
||||
function setDependentResources (id) {
|
||||
this.dependentResources = [
|
||||
@ -17,7 +16,6 @@ function InventorySourceModel (method, resource, config) {
|
||||
Base.call(this, 'inventory_sources');
|
||||
|
||||
this.Constructor = InventorySourceModel;
|
||||
this.label = strings.get('labels.INVENTORY_SOURCE');
|
||||
this.setDependentResources = setDependentResources.bind(this);
|
||||
|
||||
return this.create(method, resource, config);
|
||||
@ -25,20 +23,17 @@ function InventorySourceModel (method, resource, config) {
|
||||
|
||||
function InventorySourceModelLoader (
|
||||
BaseModel,
|
||||
WorkflowJobTemplateNodeModel,
|
||||
ModelsStrings
|
||||
WorkflowJobTemplateNodeModel
|
||||
) {
|
||||
Base = BaseModel;
|
||||
WorkflowJobTemplateNode = WorkflowJobTemplateNodeModel;
|
||||
strings = ModelsStrings;
|
||||
|
||||
return InventorySourceModel;
|
||||
}
|
||||
|
||||
InventorySourceModelLoader.$inject = [
|
||||
'BaseModel',
|
||||
'WorkflowJobTemplateNodeModel',
|
||||
'ModelsStrings'
|
||||
'WorkflowJobTemplateNodeModel'
|
||||
];
|
||||
|
||||
export default InventorySourceModelLoader;
|
||||
|
||||
@ -1,6 +1,5 @@
|
||||
let Base;
|
||||
let WorkflowJobTemplateNode;
|
||||
let strings;
|
||||
|
||||
function setDependentResources (id) {
|
||||
this.dependentResources = [
|
||||
@ -18,27 +17,20 @@ function JobTemplateModel (method, resource, config) {
|
||||
|
||||
this.Constructor = JobTemplateModel;
|
||||
this.setDependentResources = setDependentResources.bind(this);
|
||||
this.label = strings.get('labels.JOB_TEMPLATE');
|
||||
|
||||
return this.create(method, resource, config);
|
||||
}
|
||||
|
||||
function JobTemplateModelLoader (
|
||||
BaseModel,
|
||||
WorkflowJobTemplateNodeModel,
|
||||
ModelsStrings
|
||||
) {
|
||||
function JobTemplateModelLoader (BaseModel, WorkflowJobTemplateNodeModel) {
|
||||
Base = BaseModel;
|
||||
WorkflowJobTemplateNode = WorkflowJobTemplateNodeModel;
|
||||
strings = ModelsStrings;
|
||||
|
||||
return JobTemplateModel;
|
||||
}
|
||||
|
||||
JobTemplateModelLoader.$inject = [
|
||||
'BaseModel',
|
||||
'WorkflowJobTemplateNodeModel',
|
||||
'ModelsStrings'
|
||||
'WorkflowJobTemplateNodeModel'
|
||||
];
|
||||
|
||||
export default JobTemplateModelLoader;
|
||||
|
||||
@ -1,28 +1,21 @@
|
||||
let Base;
|
||||
let strings;
|
||||
|
||||
function OrganizationModel (method, resource, config) {
|
||||
Base.call(this, 'organizations');
|
||||
|
||||
this.Constructor = OrganizationModel;
|
||||
this.label = strings.get('labels.ORGANIZATION');
|
||||
|
||||
return this.create(method, resource, config);
|
||||
}
|
||||
|
||||
function OrganizationModelLoader (
|
||||
BaseModel,
|
||||
ModelsStrings
|
||||
) {
|
||||
function OrganizationModelLoader (BaseModel) {
|
||||
Base = BaseModel;
|
||||
strings = ModelsStrings;
|
||||
|
||||
return OrganizationModel;
|
||||
}
|
||||
|
||||
OrganizationModelLoader.$inject = [
|
||||
'BaseModel',
|
||||
'ModelsStrings'
|
||||
'BaseModel'
|
||||
];
|
||||
|
||||
export default OrganizationModelLoader;
|
||||
|
||||
@ -2,7 +2,6 @@ let Base;
|
||||
let JobTemplate;
|
||||
let WorkflowJobTemplateNode;
|
||||
let InventorySource;
|
||||
let strings;
|
||||
|
||||
function setDependentResources (id) {
|
||||
this.dependentResources = [
|
||||
@ -32,7 +31,6 @@ function ProjectModel (method, resource, config) {
|
||||
|
||||
this.Constructor = ProjectModel;
|
||||
this.setDependentResources = setDependentResources.bind(this);
|
||||
this.label = strings.get('labels.PROJECT');
|
||||
|
||||
return this.create(method, resource, config);
|
||||
}
|
||||
@ -42,13 +40,11 @@ function ProjectModelLoader (
|
||||
JobTemplateModel,
|
||||
WorkflowJobTemplateNodeModel,
|
||||
InventorySourceModel,
|
||||
ModelsStrings
|
||||
) {
|
||||
Base = BaseModel;
|
||||
JobTemplate = JobTemplateModel;
|
||||
WorkflowJobTemplateNode = WorkflowJobTemplateNodeModel;
|
||||
InventorySource = InventorySourceModel;
|
||||
strings = ModelsStrings;
|
||||
|
||||
return ProjectModel;
|
||||
}
|
||||
@ -57,8 +53,7 @@ ProjectModelLoader.$inject = [
|
||||
'BaseModel',
|
||||
'JobTemplateModel',
|
||||
'WorkflowJobTemplateNodeModel',
|
||||
'InventorySourceModel',
|
||||
'ModelsStrings'
|
||||
'InventorySourceModel'
|
||||
];
|
||||
|
||||
export default ProjectModelLoader;
|
||||
|
||||
@ -1,28 +1,21 @@
|
||||
let Base;
|
||||
let strings;
|
||||
|
||||
function WorkflowJobTemplateNodeModel (method, resource, config) {
|
||||
Base.call(this, 'workflow_job_template_nodes');
|
||||
|
||||
this.Constructor = WorkflowJobTemplateNodeModel;
|
||||
this.label = strings.get('labels.WORKFLOW_JOB_TEMPLATE_NODE');
|
||||
|
||||
return this.create(method, resource, config);
|
||||
}
|
||||
|
||||
function WorkflowJobTemplateNodeModelLoader (
|
||||
BaseModel,
|
||||
ModelsStrings
|
||||
) {
|
||||
function WorkflowJobTemplateNodeModelLoader (BaseModel) {
|
||||
Base = BaseModel;
|
||||
strings = ModelsStrings;
|
||||
|
||||
return WorkflowJobTemplateNodeModel;
|
||||
}
|
||||
|
||||
WorkflowJobTemplateNodeModelLoader.$inject = [
|
||||
'BaseModel',
|
||||
'ModelsStrings'
|
||||
'BaseModel'
|
||||
];
|
||||
|
||||
export default WorkflowJobTemplateNodeModelLoader;
|
||||
|
||||
@ -4,16 +4,46 @@ function ModelsStrings (BaseString) {
|
||||
const { t } = this;
|
||||
const ns = this.models;
|
||||
|
||||
ns.labels = {
|
||||
CREDENTIAL: t.s('Credentials'),
|
||||
CREDENTIAL_TYPE: t.s('Credential Types'),
|
||||
INVENTORY: t.s('Inventories'),
|
||||
INVENTORY_SCRIPT: t.s('Inventory Scripts'),
|
||||
INVENTORY_SOURCE: t.s('Inventory Sources'),
|
||||
JOB_TEMPLATE: t.s('Job Templates'),
|
||||
ORGANIZATION: t.s('Organizations'),
|
||||
PROJECT: t.s('Projects'),
|
||||
WORKFLOW_JOB_TEMPLATE_NODE: t.s('Workflow Job Template Nodes')
|
||||
ns.credentials = {
|
||||
LABEL: t.s('Credentials')
|
||||
};
|
||||
|
||||
ns.credential_types = {
|
||||
LABEL: t.s('Credential Types')
|
||||
};
|
||||
|
||||
ns.inventories = {
|
||||
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')
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@ -4,7 +4,6 @@ let i18n;
|
||||
|
||||
function BaseStringService (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) {
|
||||
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
|
||||
* 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
|
||||
* <name>.strings.js` files. To use translated strings elsewhere, access them through this
|
||||
@ -88,13 +85,13 @@ function BaseStringService (namespace) {
|
||||
} else {
|
||||
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);
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user