<commit_before>import classNames from 'classnames';
import {DCOSStore, ResourceTableUtil} from 'foundation-ui';
import {Confirm, Table} from 'reactjs-components';
import {Link} from 'react-router';
import mixin from 'reactjs-mixin';
/* eslint-disable no-unused-vars */
import React from 'react';
/* eslint-enable no-unused-vars */
import {StoreMixin} from 'mesosphere-shared-reactjs';

import AlertPanel from '../../../../../../src/js/components/AlertPanel';
import CollapsingString from '../../../../../../src/js/components/CollapsingString';
import defaultServiceImage from '../../../img/icon-service-default-small@2x.png';
import Loader from '../../../../../../src/js/components/Loader';
import MarathonActions from '../../events/MarathonActions';
import ModalHeading from '../../../../../../src/js/components/modals/ModalHeading';
import NestedServiceLinks from '../../../../../../src/js/components/NestedServiceLinks';
import Page from '../../../../../../src/js/components/Page';
import StatusBar from '../../../../../../src/js/components/StatusBar';
import StringUtil from '../../../../../../src/js/utils/StringUtil';
import TimeAgo from '../../../../../../src/js/components/TimeAgo';

const columnHeading = ResourceTableUtil.renderHeading({
  id: 'AFFECTED SERVICES',
  startTime: 'STARTED',
  location: 'LOCATION',
  status: 'STATUS',
  action: ''
});
const COLLAPSING_COLUMNS = ['location', 'startTime', 'action'];
const METHODS_TO_BIND = [
  'renderAffectedServices',
  'renderAffectedServicesList',
  'renderLocation',
  'renderStartTime',
  'renderStatus',
  'renderAction',
  'handleRollbackClick',
  'handleRollbackCancel',
  'handleRollbackConfirm',
  'onMarathonStoreDeploymentRollbackSuccess',
  'onMarathonStoreDeploymentRollbackError'
];

// collapsing columns are tightly coupled to the left-align caret property;
// this wrapper allows ordinary columns to collapse.
function columnClassNameGetter(prop, sortBy, row) {
  let classSet = ResourceTableUtil.getClassName(prop, sortBy, row);
  if (COLLAPSING_COLUMNS.includes(prop)) {
    return classNames(classSet, 'hidden-small-down');
  }
  return classSet;
}

const DeploymentsBreadcrumbs = () => {
  const crumbs = [
    <Link to="services" key={-1}>Services</Link>,
    <Link to="services/deployments" key={0}>Deployments</Link>
  ];

  return <Page.Header.Breadcrumbs iconID="services" breadcrumbs={crumbs} />;
};

class DeploymentsTab extends mixin(StoreMixin) {
<commit_msg>Don't show Services crumb in Deployments breadcrumbs<commit_after>import classNames from 'classnames';
import {DCOSStore, ResourceTableUtil} from 'foundation-ui';
import {Confirm, Table} from 'reactjs-components';
import {Link} from 'react-router';
import mixin from 'reactjs-mixin';
/* eslint-disable no-unused-vars */
import React from 'react';
/* eslint-enable no-unused-vars */
import {StoreMixin} from 'mesosphere-shared-reactjs';

import AlertPanel from '../../../../../../src/js/components/AlertPanel';
import CollapsingString from '../../../../../../src/js/components/CollapsingString';
import defaultServiceImage from '../../../img/icon-service-default-small@2x.png';
import Loader from '../../../../../../src/js/components/Loader';
import MarathonActions from '../../events/MarathonActions';
import ModalHeading from '../../../../../../src/js/components/modals/ModalHeading';
import NestedServiceLinks from '../../../../../../src/js/components/NestedServiceLinks';
import Page from '../../../../../../src/js/components/Page';
import StatusBar from '../../../../../../src/js/components/StatusBar';
import StringUtil from '../../../../../../src/js/utils/StringUtil';
import TimeAgo from '../../../../../../src/js/components/TimeAgo';

const columnHeading = ResourceTableUtil.renderHeading({
  id: 'AFFECTED SERVICES',
  startTime: 'STARTED',
  location: 'LOCATION',
  status: 'STATUS',
  action: ''
});
const COLLAPSING_COLUMNS = ['location', 'startTime', 'action'];
const METHODS_TO_BIND = [
  'renderAffectedServices',
  'renderAffectedServicesList',
  'renderLocation',
  'renderStartTime',
  'renderStatus',
  'renderAction',
  'handleRollbackClick',
  'handleRollbackCancel',
  'handleRollbackConfirm',
  'onMarathonStoreDeploymentRollbackSuccess',
  'onMarathonStoreDeploymentRollbackError'
];

// collapsing columns are tightly coupled to the left-align caret property;
// this wrapper allows ordinary columns to collapse.
function columnClassNameGetter(prop, sortBy, row) {
  let classSet = ResourceTableUtil.getClassName(prop, sortBy, row);
  if (COLLAPSING_COLUMNS.includes(prop)) {
    return classNames(classSet, 'hidden-small-down');
  }
  return classSet;
}

const DeploymentsBreadcrumbs = () => {
  const crumbs = [
    <Link to="services/deployments" key={0}>Deployments</Link>
  ];

  return <Page.Header.Breadcrumbs iconID="services" breadcrumbs={crumbs} />;
};

class DeploymentsTab extends mixin(StoreMixin) {

{'fraction_non_alphanumeric': 0.1862083077552691, 'fraction_numerical': 0.0010231225700838961, 'mean_word_length': 3.9274193548387095, 'pattern_counts': {'":': 0, '<': 11, '<?xml version=': 0, '>': 13, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 2, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2272253', 'n_tokens_mistral': 1459, 'n_tokens_neox': 1470, 'n_words': 323}