* feat(docker/stacks): add creation and update dates * feat(docker/stacks): put ownership column as the last column * feat(docker/stacks): fix the no stacks message * refactor(docker/stacks): make external stacks helpers more readable * feat(docker/stacks): add updated and created by * feat(docker/stacks): toggle updated column * refactor(datatable): create column visibility component Co-authored-by: alice groux <alice.grx@gmail.com>
28 lines
840 B
JavaScript
28 lines
840 B
JavaScript
import _ from 'lodash-es';
|
|
|
|
import { ExternalStackViewModel } from '@/portainer/models/stack';
|
|
|
|
angular.module('portainer.app').factory('StackHelper', [
|
|
function StackHelperFactory() {
|
|
'use strict';
|
|
var helper = {};
|
|
|
|
helper.getExternalStacksFromContainers = function (containers) {
|
|
return getExternalStacksFromLabel(containers, 'com.docker.compose.project', 2);
|
|
};
|
|
|
|
helper.getExternalStacksFromServices = function (services) {
|
|
return getExternalStacksFromLabel(services, 'com.docker.stack.namespace', 1);
|
|
};
|
|
|
|
function getExternalStacksFromLabel(items, label, type) {
|
|
return _.uniqBy(
|
|
items.filter((item) => item.Labels && item.Labels[label]).map((item) => new ExternalStackViewModel(item.Labels[label], type, item.Created)),
|
|
'Name'
|
|
);
|
|
}
|
|
|
|
return helper;
|
|
},
|
|
]);
|