import ExtensionNotFound from './ExtensionNotFound';
import { getOrganizationByKey } from '../../../store/rootReducer';
import { fetchOrganization } from '../../../apps/organizations/actions';
-import { Organization } from '../../../app/types';
+import { Organization } from '../../types';
interface StateToProps {
organization?: Organization;
import * as ReactRouter from 'react-router';
import throwGlobalError from '../../utils/throwGlobalError';
import addGlobalSuccessMessage from '../../utils/addGlobalSuccessMessage';
-import Suggestions from '../../components/embed-docs-modal/Suggestions';
+import Suggestions from '../embed-docs-modal/Suggestions';
import * as measures from '../../../helpers/measures';
import * as request from '../../../helpers/request';
import DateFromNow from '../../../components/intl/DateFromNow';
import * as React from 'react';
import { Link } from 'react-router';
import * as classNames from 'classnames';
-import { isLoggedIn, CurrentUser, AppState, Extension } from '../../../../app/types';
+import { isLoggedIn, CurrentUser, AppState, Extension } from '../../../types';
import { translate } from '../../../../helpers/l10n';
import { getQualityGatesUrl, getBaseUrl } from '../../../../helpers/urls';
import { isMySet } from '../../../../apps/issues/utils';
import * as classNames from 'classnames';
import { IndexLink, Link } from 'react-router';
import PendingPluginsActionNotif from './PendingPluginsActionNotif';
-import * as theme from '../../../../app/theme';
+import * as theme from '../../../theme';
import ContextNavBar from '../../../../components/nav/ContextNavBar';
import Dropdown from '../../../../components/controls/Dropdown';
import NavBarTabs from '../../../../components/nav/NavBarTabs';
import { FormattedMessage } from 'react-intl';
import { sortQualifiers } from './utils';
/*:: import type { Component, More, Results } from './utils'; */
-import RecentHistory from '../../components/RecentHistory';
+import RecentHistory from '../RecentHistory';
import DeferredSpinner from '../../../components/common/DeferredSpinner';
import { DropdownOverlay } from '../../../components/controls/Dropdown';
import ClockIcon from '../../../components/icons-components/ClockIcon';
import Helmet from 'react-helmet';
import { debounce, uniq } from 'lodash';
import { connect } from 'react-redux';
-import { DEFAULT_FILTERS, DEBOUNCE_DELAY, STATUSES, CURRENTS } from './../constants';
import Header from './Header';
import Footer from './Footer';
-import StatsContainer from '../components/StatsContainer';
-import Search from '../components/Search';
-import Tasks from '../components/Tasks';
+import StatsContainer from './StatsContainer';
+import Search from './Search';
+import Tasks from './Tasks';
+import { DEFAULT_FILTERS, DEBOUNCE_DELAY, STATUSES, CURRENTS } from '../constants';
import Suggestions from '../../../app/components/embed-docs-modal/Suggestions';
import {
getTypes,
cancelTask as cancelTaskAPI
} from '../../../api/ce';
import { updateTask, mapFiltersToParameters } from '../utils';
-/*:: import type { Task } from '../types'; */
-import '../background-tasks.css';
import { fetchOrganizations } from '../../../store/rootActions';
import { translate } from '../../../helpers/l10n';
import { parseAsDate } from '../../../helpers/query';
import { toShortNotSoISOString } from '../../../helpers/dates';
+/*:: import type { Task } from '../types'; */
+import '../background-tasks.css';
/*::
type Props = {
<StatsContainer
component={component}
- pendingCount={pendingCount}
failingCount={failingCount}
- onShowFailing={this.handleShowFailing.bind(this)}
onCancelAllPending={this.handleCancelAllPending.bind(this)}
+ onShowFailing={this.handleShowFailing.bind(this)}
+ pendingCount={pendingCount}
/>
<Search
- loading={loading}
component={component}
- status={status}
currents={currents}
- minSubmittedAt={minSubmittedAt}
+ loading={loading}
maxExecutedAt={maxExecutedAt}
+ minSubmittedAt={minSubmittedAt}
+ onFilterUpdate={this.handleFilterUpdate.bind(this)}
+ onReload={this.loadTasksDebounced}
query={query}
+ status={status}
taskType={taskType}
types={types}
- onFilterUpdate={this.handleFilterUpdate.bind(this)}
- onReload={this.loadTasksDebounced}
/>
<Tasks
- loading={loading}
component={component}
- tasks={tasks}
+ loading={loading}
onCancelTask={this.handleCancelTask.bind(this)}
onFilterTask={this.handleFilterTask.bind(this)}
+ tasks={tasks}
/>
<Footer tasks={tasks} />
import TypesFilter from './TypesFilter';
import CurrentsFilter from './CurrentsFilter';
import DateFilter from './DateFilter';
-import { DEFAULT_FILTERS } from './../constants';
+import { DEFAULT_FILTERS } from '../constants';
import SearchBox from '../../../components/controls/SearchBox';
import { Button } from '../../../components/ui/buttons';
import { translate } from '../../../helpers/l10n';
import * as React from 'react';
import ScannerContext from './ScannerContext';
import Stacktrace from './Stacktrace';
-import { STATUSES } from './../constants';
+import { STATUSES } from '../constants';
import { translate, translateWithParameters } from '../../../helpers/l10n';
import { Task } from '../types';
import ActionsDropdown, { ActionsDropdownItem } from '../../../components/controls/ActionsDropdown';
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
import * as React from 'react';
-import { STATUSES } from './../constants';
+import { STATUSES } from '../constants';
import PendingIcon from '../../../components/icons-components/PendingIcon';
import { translate } from '../../../helpers/l10n';
import { getAppState, getOrganizationByKey, getCurrentUser } from '../../store/rootReducer';
import { receiveOrganizations } from '../../store/organizations/duck';
import { changeProjectDefaultVisibility } from '../../api/permissions';
-import { fetchOrganization } from '../../apps/organizations/actions';
+import { fetchOrganization } from '../organizations/actions';
interface StateProps {
appState: { defaultOrganization: string; qualifiers: string[] };
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
import * as React from 'react';
+import CreateQualityGateForm from './CreateQualityGateForm';
import { Button } from '../../../components/ui/buttons';
-import CreateQualityGateForm from '../components/CreateQualityGateForm';
import DocTooltip from '../../../components/docs/DocTooltip';
import ModalButton from '../../../components/controls/ModalButton';
import { translate } from '../../../helpers/l10n';
import AlertErrorIcon from '../../../components/icons-components/AlertErrorIcon';
import AlertSuccessIcon from '../../../components/icons-components/AlertSuccessIcon';
import { getTasksForComponent } from '../../../api/ce';
-import { STATUSES } from '../../../apps/background-tasks/constants';
+import { STATUSES } from '../../background-tasks/constants';
import { translate } from '../../../helpers/l10n';
const INTERVAL = 5000;
import { keyBy, sortBy, groupBy } from 'lodash';
import MeasuresOverlayMeasure from './MeasuresOverlayMeasure';
import MeasuresOverlayTestCases from './MeasuresOverlayTestCases';
-import { Button } from '../../../components/ui/buttons';
+import { Button } from '../../ui/buttons';
import { getFacets } from '../../../api/issues';
import { getMeasures } from '../../../api/measures';
import { getAllMetrics } from '../../../api/metrics';
import * as React from 'react';
import * as classNames from 'classnames';
import { restartAndWait } from '../../api/system';
-import Modal from '../../components/controls/Modal';
+import Modal from '../controls/Modal';
import { SubmitButton, ResetButtonLink } from '../ui/buttons';
import { translate } from '../../helpers/l10n';
*/
import * as React from 'react';
import { debounce } from 'lodash';
-import Select, { Creatable } from '../../components/controls/Select';
+import Select, { Creatable } from './Select';
import { translate, translateWithParameters } from '../../helpers/l10n';
interface Props<T> {
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
import * as React from 'react';
-import Modal from '../../components/controls/Modal';
+import Modal from './Modal';
export interface ChildrenProps {
onCloseClick: (event?: React.SyntheticEvent<HTMLElement>) => void;
import * as React from 'react';
import { withFormik, Form, FormikActions, FormikProps } from 'formik';
import Modal from './Modal';
-import { ResetButtonLink, SubmitButton } from '../../components/ui/buttons';
+import { ResetButtonLink, SubmitButton } from '../ui/buttons';
import DeferredSpinner from '../common/DeferredSpinner';
import { translate } from '../../helpers/l10n';
*/
import * as React from 'react';
import { Link } from 'react-router';
-import DetachIcon from '../../components/icons-components/DetachIcon';
+import DetachIcon from '../icons-components/DetachIcon';
const SONARCLOUD_LINK = '/#sonarcloud#/';
import * as React from 'react';
import { Link } from 'react-router';
import { forEach } from 'lodash';
-import DetachIcon from '../../components/icons-components/DetachIcon';
+import DetachIcon from '../icons-components/DetachIcon';
interface OwnProps {
customProps?: { [k: string]: string };
// @flow
import React from 'react';
import SetAssigneePopup from '../popups/SetAssigneePopup';
-import Avatar from '../../../components/ui/Avatar';
-import Toggler from '../../../components/controls/Toggler';
-import DropdownIcon from '../../../components/icons-components/DropdownIcon';
-import { Button } from '../../../components/ui/buttons';
+import Avatar from '../../ui/Avatar';
+import Toggler from '../../controls/Toggler';
+import DropdownIcon from '../../icons-components/DropdownIcon';
+import { Button } from '../../ui/buttons';
import { translate } from '../../../helpers/l10n';
/*:: import type { Issue } from '../types'; */
// @flow
import React from 'react';
import ChangelogPopup from '../popups/ChangelogPopup';
-import DropdownIcon from '../../../components/icons-components/DropdownIcon';
-import DateFromNow from '../../../components/intl/DateFromNow';
-import DateTimeFormatter from '../../../components/intl/DateTimeFormatter';
-import Toggler from '../../../components/controls/Toggler';
-import Tooltip from '../../../components/controls/Tooltip';
-import { Button } from '../../../components/ui/buttons';
+import DropdownIcon from '../../icons-components/DropdownIcon';
+import DateFromNow from '../../intl/DateFromNow';
+import DateTimeFormatter from '../../intl/DateTimeFormatter';
+import Toggler from '../../controls/Toggler';
+import Tooltip from '../../controls/Tooltip';
+import { Button } from '../../ui/buttons';
/*:: import type { Issue } from '../types'; */
/*::
// @flow
import React from 'react';
import { updateIssue } from '../actions';
-import Toggler from '../../../components/controls/Toggler';
-import { Button } from '../../../components/ui/buttons';
+import Toggler from '../../controls/Toggler';
+import { Button } from '../../ui/buttons';
import CommentPopup from '../popups/CommentPopup';
import { addIssueComment } from '../../../api/issues';
import { translate } from '../../../helpers/l10n';
*/
// @flow
import React from 'react';
-import Avatar from '../../../components/ui/Avatar';
-import Toggler from '../../../components/controls/Toggler';
-import EditIcon from '../../../components/icons-components/EditIcon';
-import { EditButton, DeleteButton } from '../../../components/ui/buttons';
+import Avatar from '../../ui/Avatar';
+import Toggler from '../../controls/Toggler';
+import EditIcon from '../../icons-components/EditIcon';
+import { EditButton, DeleteButton } from '../../ui/buttons';
import CommentDeletePopup from '../popups/CommentDeletePopup';
import CommentPopup from '../popups/CommentPopup';
-import DateFromNow from '../../../components/intl/DateFromNow';
+import DateFromNow from '../../intl/DateFromNow';
/*:: import type { IssueComment } from '../types'; */
/*::
import React from 'react';
import SetSeverityPopup from '../popups/SetSeverityPopup';
import { setIssueSeverity } from '../../../api/issues';
-import Toggler from '../../../components/controls/Toggler';
-import DropdownIcon from '../../../components/icons-components/DropdownIcon';
-import SeverityHelper from '../../../components/shared/SeverityHelper';
-import { Button } from '../../../components/ui/buttons';
+import Toggler from '../../controls/Toggler';
+import DropdownIcon from '../../icons-components/DropdownIcon';
+import SeverityHelper from '../../shared/SeverityHelper';
+import { Button } from '../../ui/buttons';
/*:: import type { Issue } from '../types'; */
/*::
import { updateIssue } from '../actions';
import SetIssueTagsPopup from '../popups/SetIssueTagsPopup';
import { setIssueTags } from '../../../api/issues';
-import Toggler from '../../../components/controls/Toggler';
-import TagsList from '../../../components/tags/TagsList';
-import { Button } from '../../../components/ui/buttons';
+import Toggler from '../../controls/Toggler';
+import TagsList from '../../tags/TagsList';
+import { Button } from '../../ui/buttons';
import { translate } from '../../../helpers/l10n';
/*:: import type { Issue } from '../types'; */
import IssueChangelog from './IssueChangelog';
import IssueMessage from './IssueMessage';
import SimilarIssuesFilter from './SimilarIssuesFilter';
-import LinkIcon from '../../../components/icons-components/LinkIcon';
+import LinkIcon from '../../icons-components/LinkIcon';
import LocationIndex from '../../common/LocationIndex';
import Tooltip from '../../controls/Tooltip';
import { getBranchLikeQuery } from '../../../helpers/branches';
import { updateIssue } from '../actions';
import SetTransitionPopup from '../popups/SetTransitionPopup';
import { setIssueTransition } from '../../../api/issues';
-import Toggler from '../../../components/controls/Toggler';
-import DropdownIcon from '../../../components/icons-components/DropdownIcon';
-import StatusHelper from '../../../components/shared/StatusHelper';
-import { Button } from '../../../components/ui/buttons';
+import Toggler from '../../controls/Toggler';
+import DropdownIcon from '../../icons-components/DropdownIcon';
+import StatusHelper from '../../shared/StatusHelper';
+import { Button } from '../../ui/buttons';
/*:: import type { Issue } from '../types'; */
/*::
import React from 'react';
import SetTypePopup from '../popups/SetTypePopup';
import { setIssueType } from '../../../api/issues';
-import Toggler from '../../../components/controls/Toggler';
-import DropdownIcon from '../../../components/icons-components/DropdownIcon';
-import { Button } from '../../../components/ui/buttons';
-import IssueTypeIcon from '../../../components/ui/IssueTypeIcon';
+import Toggler from '../../controls/Toggler';
+import DropdownIcon from '../../icons-components/DropdownIcon';
+import { Button } from '../../ui/buttons';
+import IssueTypeIcon from '../../ui/IssueTypeIcon';
import { translate } from '../../../helpers/l10n';
/*:: import type { Issue } from '../types'; */
// @flow
import React from 'react';
import SimilarIssuesPopup from '../popups/SimilarIssuesPopup';
-import Toggler from '../../../components/controls/Toggler';
-import DropdownIcon from '../../../components/icons-components/DropdownIcon';
-import FilterIcon from '../../../components/icons-components/FilterIcon';
-import { Button } from '../../../components/ui/buttons';
+import Toggler from '../../controls/Toggler';
+import DropdownIcon from '../../icons-components/DropdownIcon';
+import FilterIcon from '../../icons-components/FilterIcon';
+import { Button } from '../../ui/buttons';
import { translate } from '../../../helpers/l10n';
/*:: import type { Issue } from '../types'; */
import React from 'react';
import { getIssueChangelog } from '../../../api/issues';
import { translate } from '../../../helpers/l10n';
-import Avatar from '../../../components/ui/Avatar';
-import DateTimeFormatter from '../../../components/intl/DateTimeFormatter';
+import Avatar from '../../ui/Avatar';
+import DateTimeFormatter from '../../intl/DateTimeFormatter';
import IssueChangelogDiff from '../components/IssueChangelogDiff';
import { DropdownOverlay } from '../../controls/Dropdown';
/*:: import type { ChangelogDiff } from '../components/IssueChangelogDiff'; */
*/
// @flow
import React from 'react';
-import { Button } from '../../../components/ui/buttons';
+import { Button } from '../../ui/buttons';
import { translate } from '../../../helpers/l10n';
import { DropdownOverlay } from '../../controls/Dropdown';
*/
// @flow
import React from 'react';
-import MarkdownTips from '../../../components/common/MarkdownTips';
-import { Button, ResetButtonLink } from '../../../components/ui/buttons';
+import MarkdownTips from '../../common/MarkdownTips';
+import { Button, ResetButtonLink } from '../../ui/buttons';
import { translate } from '../../../helpers/l10n';
import { DropdownOverlay } from '../../controls/Dropdown';
/*:: import type { IssueComment } from '../types'; */
import { map } from 'lodash';
import { connect } from 'react-redux';
import * as PropTypes from 'prop-types';
-import Avatar from '../../../components/ui/Avatar';
-import SelectList from '../../../components/common/SelectList';
-import SelectListItem from '../../../components/common/SelectListItem';
-import SearchBox from '../../../components/controls/SearchBox';
+import Avatar from '../../ui/Avatar';
+import SelectList from '../../common/SelectList';
+import SelectListItem from '../../common/SelectListItem';
+import SearchBox from '../../controls/SearchBox';
import { searchMembers } from '../../../api/organizations';
import { searchUsers } from '../../../api/users';
import { translate } from '../../../helpers/l10n';
*/
import * as React from 'react';
import { difference, without } from 'lodash';
-import TagsSelector from '../../../components/tags/TagsSelector';
+import TagsSelector from '../../tags/TagsSelector';
import { searchIssueTags } from '../../../api/issues';
import { DropdownOverlay } from '../../controls/Dropdown';
import { PopupPlacement } from '../../ui/popups';
// @flow
import React from 'react';
import { translate } from '../../../helpers/l10n';
-import SelectList from '../../../components/common/SelectList';
-import SelectListItem from '../../../components/common/SelectListItem';
-import SeverityIcon from '../../../components/icons-components/SeverityIcon';
+import SelectList from '../../common/SelectList';
+import SelectListItem from '../../common/SelectListItem';
+import SeverityIcon from '../../icons-components/SeverityIcon';
import { DropdownOverlay } from '../../controls/Dropdown';
/*:: import type { Issue } from '../types'; */
*/
// @flow
import React from 'react';
-import SelectList from '../../../components/common/SelectList';
-import SelectListItem from '../../../components/common/SelectListItem';
+import SelectList from '../../common/SelectList';
+import SelectListItem from '../../common/SelectListItem';
import { translate } from '../../../helpers/l10n';
import { DropdownOverlay } from '../../controls/Dropdown';
// @flow
import React from 'react';
import { translate } from '../../../helpers/l10n';
-import IssueTypeIcon from '../../../components/ui/IssueTypeIcon';
-import SelectList from '../../../components/common/SelectList';
-import SelectListItem from '../../../components/common/SelectListItem';
+import IssueTypeIcon from '../../ui/IssueTypeIcon';
+import SelectList from '../../common/SelectList';
+import SelectListItem from '../../common/SelectListItem';
import { DropdownOverlay } from '../../controls/Dropdown';
/*:: import type { Issue } from '../types'; */
*/
// @flow
import React from 'react';
-import SelectList from '../../../components/common/SelectList';
-import SelectListItem from '../../../components/common/SelectListItem';
-import { DropdownOverlay } from '../../../components/controls/Dropdown';
-import SeverityHelper from '../../../components/shared/SeverityHelper';
-import StatusHelper from '../../../components/shared/StatusHelper';
-import QualifierIcon from '../../../components/icons-components/QualifierIcon';
-import TagsIcon from '../../../components/icons-components/TagsIcon';
-import IssueTypeIcon from '../../../components/ui/IssueTypeIcon';
-import Avatar from '../../../components/ui/Avatar';
+import SelectList from '../../common/SelectList';
+import SelectListItem from '../../common/SelectListItem';
+import { DropdownOverlay } from '../../controls/Dropdown';
+import SeverityHelper from '../../shared/SeverityHelper';
+import StatusHelper from '../../shared/StatusHelper';
+import QualifierIcon from '../../icons-components/QualifierIcon';
+import TagsIcon from '../../icons-components/TagsIcon';
+import IssueTypeIcon from '../../ui/IssueTypeIcon';
+import Avatar from '../../ui/Avatar';
import { translate } from '../../../helpers/l10n';
import { fileFromPath, limitComponentName } from '../../../helpers/path';
/*:: import type { Issue } from '../types'; */
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
import * as dates from '../dates';
-import { parseDate } from '../../helpers/dates';
+const { parseDate } = dates;
const recentDate = parseDate('2017-08-16T12:00:00.000Z');
const recentDate2 = parseDate('2016-12-16T12:00:00.000Z');
const oldDate = parseDate('2014-01-12T12:00:00.000Z');