in client/src/components/pipelines/PipelinesLibrary.js [594:719]
async reloadItem (key, expand, rootItems, reloadRoot = true) {
if (!key) {
return;
}
if (!rootItems) {
rootItems = this.state.rootItems;
}
const item = getTreeItemByKey(key, rootItems);
if (!item) {
return;
}
switch (item.type) {
case ItemTypes.folder:
case ItemTypes.projectHistory:
if (item.id === 'root') {
if (reloadRoot) {
await this.props.pipelinesLibrary.fetch();
}
const childExpandedKeys = getExpandedKeys(item.children);
item.children = generateTreeData(
this.props.pipelinesLibrary.value,
{
parent: item,
expandedKeys: childExpandedKeys,
filter: this.props.hiddenObjectsTreeFilter()
}
);
item.isLeaf = item.children ? item.children.length === 0 : true;
} else if (item.id === 'pipelines') {
await this.props.pipelines.fetch();
} else if (item.id === 'storages') {
await this.props.dataStorages.fetch();
} else {
const reloadFolderRequest = this.props.folders.load(item.id);
await reloadFolderRequest.fetchIfNeededOrWait();
item.name = reloadFolderRequest.value.name;
const childExpandedKeys = getExpandedKeys(item.children);
item.children = generateTreeData(
reloadFolderRequest.value,
{
parent: item,
expandedKeys: childExpandedKeys,
filter: this.props.hiddenObjectsTreeFilter()
}
);
item.isLeaf = item.children.length === 0;
}
break;
case ItemTypes.pipeline: {
const pipelineRequest = this.props.pipelines.getPipeline(item.id);
await pipelineRequest.fetchIfNeededOrWait();
item.name = pipelineRequest.value.name;
item.description = pipelineRequest.value.description;
const versionsRequest = this.props.pipelines.versionsForPipeline(item.id);
await versionsRequest.fetchIfNeededOrWait();
item.children = generateTreeData(
{versions: versionsRequest.value},
{
parent: item,
filter: this.props.hiddenObjectsTreeFilter()
}
);
}
break;
case ItemTypes.versionedStorage: {
const pipelineRequest = this.props.pipelines.getPipeline(item.id);
await pipelineRequest.fetchIfNeededOrWait();
item.name = pipelineRequest.value.name;
item.description = pipelineRequest.value.description;
}
break;
case ItemTypes.configuration:
const configurationRequest = this.props.configurations.getConfiguration(item.id);
await configurationRequest.fetchIfNeededOrWait();
item.name = configurationRequest.value.name;
item.description = configurationRequest.value.description;
break;
case ItemTypes.storage:
const dataStorageRequest = this.props.dataStorages.load(item.id);
await dataStorageRequest.fetchIfNeededOrWait();
item.name = dataStorageRequest.value.name;
item.description = dataStorageRequest.value.description;
break;
case ItemTypes.metadataFolder:
case ItemTypes.metadata:
let parentFolder = item.parent;
while (parentFolder && parentFolder.type !== ItemTypes.folder && parentFolder.parent) {
parentFolder = parentFolder.parent;
}
if (parentFolder) {
if (parentFolder.id === 'root') {
if (reloadRoot) {
await this.props.pipelinesLibrary.fetch();
}
const childExpandedKeys = getExpandedKeys(parentFolder.children);
parentFolder.children = generateTreeData(
this.props.pipelinesLibrary.value,
{
parent: parentFolder,
expandedKeys: childExpandedKeys,
filter: this.props.hiddenObjectsTreeFilter()
}
);
parentFolder.isLeaf = parentFolder.children ? parentFolder.children.length === 0 : true;
} else if (['pipelines', 'storages'].indexOf(parentFolder.id) === -1) {
const reloadFolderRequest = this.props.folders.load(parentFolder.id);
await reloadFolderRequest.fetchIfNeededOrWait();
parentFolder.name = reloadFolderRequest.value.name;
const childExpandedKeys = getExpandedKeys(parentFolder.children);
parentFolder.children = generateTreeData(
reloadFolderRequest.value,
{
parent: parentFolder,
expandedKeys: childExpandedKeys,
filter: this.props.hiddenObjectsTreeFilter()
}
);
parentFolder.isLeaf = parentFolder.children.length === 0;
}
}
break;
}
if (expand !== undefined) {
expandItem(item, expand);
}
}