54 lines
1.5 KiB
JavaScript
54 lines
1.5 KiB
JavaScript
import * as types from './mutation_types';
|
|
import { parseIntPagination, normalizeHeaders } from '../../lib/utils/common_utils';
|
|
|
|
export default {
|
|
[types.SET_MAIN_ENDPOINT](state, endpoint) {
|
|
Object.assign(state, { endpoint });
|
|
},
|
|
|
|
[types.SET_REPOS_LIST](state, list) {
|
|
Object.assign(state, {
|
|
repos: list.map(el => ({
|
|
canDelete: Boolean(el.destroy_path),
|
|
destroyPath: el.destroy_path,
|
|
id: el.id,
|
|
isLoading: false,
|
|
list: [],
|
|
location: el.location,
|
|
name: el.path,
|
|
tagsPath: el.tags_path,
|
|
})),
|
|
});
|
|
},
|
|
|
|
[types.TOGGLE_MAIN_LOADING](state) {
|
|
Object.assign(state, { isLoading: !state.isLoading });
|
|
},
|
|
|
|
[types.SET_REGISTRY_LIST](state, { repo, resp, headers }) {
|
|
const listToUpdate = state.repos.find(el => el.id === repo.id);
|
|
|
|
const normalizedHeaders = normalizeHeaders(headers);
|
|
const pagination = parseIntPagination(normalizedHeaders);
|
|
|
|
listToUpdate.pagination = pagination;
|
|
|
|
listToUpdate.list = resp.map(element => ({
|
|
tag: element.name,
|
|
revision: element.revision,
|
|
shortRevision: element.short_revision,
|
|
size: element.total_size,
|
|
layers: element.layers,
|
|
location: element.location,
|
|
createdAt: element.created_at,
|
|
destroyPath: element.destroy_path,
|
|
canDelete: Boolean(element.destroy_path),
|
|
}));
|
|
},
|
|
|
|
[types.TOGGLE_REGISTRY_LIST_LOADING](state, list) {
|
|
const listToUpdate = state.repos.find(el => el.id === list.id);
|
|
|
|
listToUpdate.isLoading = !listToUpdate.isLoading;
|
|
},
|
|
};
|