@imposium-hub/components 2.3.10 → 2.4.0-0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/Util.d.ts +0 -1
- package/dist/cjs/Util.js +1 -8
- package/dist/cjs/Util.js.map +1 -1
- package/dist/cjs/components/Tooltip.d.ts +2 -2
- package/dist/cjs/components/Tooltip.js +7 -4
- package/dist/cjs/components/Tooltip.js.map +1 -1
- package/dist/cjs/components/advanced-number-field/AdvancedNumberField.d.ts +1 -1
- package/dist/cjs/components/anchor-field/AnchorField.d.ts +1 -1
- package/dist/cjs/components/app-wrapper/AppWrapper.d.ts +1 -2
- package/dist/cjs/components/app-wrapper/AppWrapper.js +71 -79
- package/dist/cjs/components/app-wrapper/AppWrapper.js.map +1 -1
- package/dist/cjs/components/app-wrapper/AppWrapper_BACKUP_73190.d.ts +27 -0
- package/dist/cjs/components/app-wrapper/AppWrapper_BACKUP_73190.js +243 -0
- package/dist/cjs/components/app-wrapper/AppWrapper_BACKUP_73190.js.map +1 -0
- package/dist/cjs/components/app-wrapper/AppWrapper_BASE_73190.d.ts +28 -0
- package/dist/cjs/components/app-wrapper/AppWrapper_BASE_73190.js +255 -0
- package/dist/cjs/components/app-wrapper/AppWrapper_BASE_73190.js.map +1 -0
- package/dist/cjs/components/app-wrapper/AppWrapper_LOCAL_73190.d.ts +27 -0
- package/dist/cjs/components/app-wrapper/AppWrapper_LOCAL_73190.js +243 -0
- package/dist/cjs/components/app-wrapper/AppWrapper_LOCAL_73190.js.map +1 -0
- package/dist/cjs/components/app-wrapper/AppWrapper_REMOTE_73190.d.ts +28 -0
- package/dist/cjs/components/app-wrapper/AppWrapper_REMOTE_73190.js +251 -0
- package/dist/cjs/components/app-wrapper/AppWrapper_REMOTE_73190.js.map +1 -0
- package/dist/cjs/components/assets/AssetField.js +2 -2
- package/dist/cjs/components/assets/AssetField.js.map +1 -1
- package/dist/cjs/components/assets/AssetsTableDurationCell.js +4 -1
- package/dist/cjs/components/assets/AssetsTableDurationCell.js.map +1 -1
- package/dist/cjs/components/assets/AssetsTableGlobalCell.js +1 -1
- package/dist/cjs/components/assets/AssetsTableGlobalCell.js.map +1 -1
- package/dist/cjs/components/assets/AssetsTableNameCell.js +3 -4
- package/dist/cjs/components/assets/AssetsTableNameCell.js.map +1 -1
- package/dist/cjs/components/assets/AssetsTableRateCell.js +3 -9
- package/dist/cjs/components/assets/AssetsTableRateCell.js.map +1 -1
- package/dist/cjs/components/assets/AssetsTableTypeFilter.js +2 -2
- package/dist/cjs/components/assets/AssetsTableTypeFilter.js.map +1 -1
- package/dist/cjs/components/assets/AssetsUploadMenu.js +34 -157
- package/dist/cjs/components/assets/AssetsUploadMenu.js.map +1 -1
- package/dist/cjs/components/auth-gate/AuthGate.js +8 -5
- package/dist/cjs/components/auth-gate/AuthGate.js.map +1 -1
- package/dist/cjs/components/button-group-field/ButtonGroupField.d.ts +1 -1
- package/dist/cjs/components/checkbox-field/CheckboxField.d.ts +1 -1
- package/dist/cjs/components/color-field/ColorField.d.ts +1 -1
- package/dist/cjs/components/color-field/ColorField.js +2 -2
- package/dist/cjs/components/color-field/ColorField.js.map +1 -1
- package/dist/cjs/components/context-menu/ContextMenu.js +4 -8
- package/dist/cjs/components/context-menu/ContextMenu.js.map +1 -1
- package/dist/cjs/components/data-table/DataTable.js +2 -2
- package/dist/cjs/components/data-table/DataTable.js.map +1 -1
- package/dist/cjs/components/dropdown/{Dropdown.stories.js → dropdown.stories.js} +1 -1
- package/dist/cjs/components/dropdown/{Dropdown.stories.js.map → dropdown.stories.js.map} +1 -1
- package/dist/cjs/components/error-message-preview/ErrorMessagePreview.d.ts +15 -0
- package/dist/cjs/components/error-message-preview/ErrorMessagePreview.js +91 -0
- package/dist/cjs/components/error-message-preview/ErrorMessagePreview.js.map +1 -0
- package/dist/cjs/components/header/Header.d.ts +4 -0
- package/dist/cjs/components/header/Header.js +28 -21
- package/dist/cjs/components/header/Header.js.map +1 -1
- package/dist/cjs/components/header/Header_BACKUP_73021.d.ts +33 -0
- package/dist/cjs/components/header/Header_BACKUP_73021.js +393 -0
- package/dist/cjs/components/header/Header_BACKUP_73021.js.map +1 -0
- package/dist/cjs/components/header/Header_BASE_73021.d.ts +29 -0
- package/dist/cjs/components/header/Header_BASE_73021.js +376 -0
- package/dist/cjs/components/header/Header_BASE_73021.js.map +1 -0
- package/dist/cjs/components/header/Header_LOCAL_73021.d.ts +33 -0
- package/dist/cjs/components/header/Header_LOCAL_73021.js +382 -0
- package/dist/cjs/components/header/Header_LOCAL_73021.js.map +1 -0
- package/dist/cjs/components/header/Header_REMOTE_73021.d.ts +30 -0
- package/dist/cjs/components/header/Header_REMOTE_73021.js +386 -0
- package/dist/cjs/components/header/Header_REMOTE_73021.js.map +1 -0
- package/dist/cjs/components/list-field/ListField.d.ts +1 -1
- package/dist/cjs/components/number-field/NumberField.d.ts +1 -1
- package/dist/cjs/components/publish-wizard/PublishWizard.js +119 -63
- package/dist/cjs/components/publish-wizard/PublishWizard.js.map +1 -1
- package/dist/cjs/components/publish-wizard/publish/EmailWorkflow.js +5 -28
- package/dist/cjs/components/publish-wizard/publish/EmailWorkflow.js.map +1 -1
- package/dist/cjs/components/select-field/SelectField.d.ts +1 -1
- package/dist/cjs/components/select-field/SelectField.js +0 -4
- package/dist/cjs/components/select-field/SelectField.js.map +1 -1
- package/dist/cjs/components/slider-field/SliderField.d.ts +1 -1
- package/dist/cjs/components/smpte-field/SMPTEField.d.ts +1 -1
- package/dist/cjs/components/story-previewer/StoryPreviewer.js +2 -7
- package/dist/cjs/components/story-previewer/StoryPreviewer.js.map +1 -1
- package/dist/cjs/components/text-area-field/TextAreaField.d.ts +1 -1
- package/dist/cjs/components/text-field/TextField.d.ts +1 -1
- package/dist/cjs/constants/copy.d.ts +5 -2
- package/dist/cjs/constants/copy.js +8 -5
- package/dist/cjs/constants/copy.js.map +1 -1
- package/dist/cjs/constants/icons.d.ts +1 -0
- package/dist/cjs/constants/icons.js +3 -1
- package/dist/cjs/constants/icons.js.map +1 -1
- package/dist/cjs/index.d.ts +3 -5
- package/dist/cjs/index.js +3 -8
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/redux/actions/access.d.ts +1 -3
- package/dist/cjs/redux/actions/access.js +10 -43
- package/dist/cjs/redux/actions/access.js.map +1 -1
- package/dist/cjs/redux/actions/asset-uploads.d.ts +11 -6
- package/dist/cjs/redux/actions/asset-uploads.js +182 -262
- package/dist/cjs/redux/actions/asset-uploads.js.map +1 -1
- package/dist/cjs/redux/actions/publish.js +4 -3
- package/dist/cjs/redux/actions/publish.js.map +1 -1
- package/dist/cjs/redux/reducers/access.js +7 -30
- package/dist/cjs/redux/reducers/access.js.map +1 -1
- package/dist/cjs/redux/reducers/asset-uploads.js +24 -10
- package/dist/cjs/redux/reducers/asset-uploads.js.map +1 -1
- package/dist/cjs/services/API.d.ts +2 -2
- package/dist/cjs/services/API.js +1 -2
- package/dist/cjs/services/API.js.map +1 -1
- package/dist/cjs/services/Auth0.js +1 -0
- package/dist/cjs/services/Auth0.js.map +1 -1
- package/dist/cjs/services/Session.d.ts +9 -8
- package/dist/cjs/services/Session.js +31 -127
- package/dist/cjs/services/Session.js.map +1 -1
- package/dist/cjs/utils/assets.d.ts +2 -1
- package/dist/cjs/utils/assets.js.map +1 -1
- package/dist/esm/Util.d.ts +0 -1
- package/dist/esm/Util.js +0 -6
- package/dist/esm/Util.js.map +1 -1
- package/dist/esm/components/Tooltip.d.ts +2 -2
- package/dist/esm/components/Tooltip.js +4 -4
- package/dist/esm/components/Tooltip.js.map +1 -1
- package/dist/esm/components/advanced-number-field/AdvancedNumberField.d.ts +1 -1
- package/dist/esm/components/anchor-field/AnchorField.d.ts +1 -1
- package/dist/esm/components/app-wrapper/AppWrapper.d.ts +1 -2
- package/dist/esm/components/app-wrapper/AppWrapper.js +69 -79
- package/dist/esm/components/app-wrapper/AppWrapper.js.map +1 -1
- package/dist/esm/components/app-wrapper/AppWrapper_BACKUP_73190.d.ts +27 -0
- package/dist/esm/components/app-wrapper/AppWrapper_BACKUP_73190.js +194 -0
- package/dist/esm/components/app-wrapper/AppWrapper_BACKUP_73190.js.map +1 -0
- package/dist/esm/components/app-wrapper/AppWrapper_BASE_73190.d.ts +28 -0
- package/dist/esm/components/app-wrapper/AppWrapper_BASE_73190.js +208 -0
- package/dist/esm/components/app-wrapper/AppWrapper_BASE_73190.js.map +1 -0
- package/dist/esm/components/app-wrapper/AppWrapper_LOCAL_73190.d.ts +27 -0
- package/dist/esm/components/app-wrapper/AppWrapper_LOCAL_73190.js +194 -0
- package/dist/esm/components/app-wrapper/AppWrapper_LOCAL_73190.js.map +1 -0
- package/dist/esm/components/app-wrapper/AppWrapper_REMOTE_73190.d.ts +28 -0
- package/dist/esm/components/app-wrapper/AppWrapper_REMOTE_73190.js +204 -0
- package/dist/esm/components/app-wrapper/AppWrapper_REMOTE_73190.js.map +1 -0
- package/dist/esm/components/assets/AssetField.js +2 -2
- package/dist/esm/components/assets/AssetField.js.map +1 -1
- package/dist/esm/components/assets/AssetsTableDurationCell.js +5 -2
- package/dist/esm/components/assets/AssetsTableDurationCell.js.map +1 -1
- package/dist/esm/components/assets/AssetsTableGlobalCell.js +1 -1
- package/dist/esm/components/assets/AssetsTableGlobalCell.js.map +1 -1
- package/dist/esm/components/assets/AssetsTableNameCell.js +3 -4
- package/dist/esm/components/assets/AssetsTableNameCell.js.map +1 -1
- package/dist/esm/components/assets/AssetsTableRateCell.js +3 -9
- package/dist/esm/components/assets/AssetsTableRateCell.js.map +1 -1
- package/dist/esm/components/assets/AssetsTableTypeFilter.js +2 -2
- package/dist/esm/components/assets/AssetsTableTypeFilter.js.map +1 -1
- package/dist/esm/components/assets/AssetsUploadMenu.js +34 -138
- package/dist/esm/components/assets/AssetsUploadMenu.js.map +1 -1
- package/dist/esm/components/auth-gate/AuthGate.js +9 -6
- package/dist/esm/components/auth-gate/AuthGate.js.map +1 -1
- package/dist/esm/components/button-group-field/ButtonGroupField.d.ts +1 -1
- package/dist/esm/components/checkbox-field/CheckboxField.d.ts +1 -1
- package/dist/esm/components/color-field/ColorField.d.ts +1 -1
- package/dist/esm/components/color-field/ColorField.js +2 -2
- package/dist/esm/components/color-field/ColorField.js.map +1 -1
- package/dist/esm/components/context-menu/ContextMenu.js +3 -7
- package/dist/esm/components/context-menu/ContextMenu.js.map +1 -1
- package/dist/esm/components/data-table/DataTable.js +2 -2
- package/dist/esm/components/data-table/DataTable.js.map +1 -1
- package/dist/esm/components/dropdown/{Dropdown.stories.js → dropdown.stories.js} +1 -1
- package/dist/esm/components/dropdown/{Dropdown.stories.js.map → dropdown.stories.js.map} +1 -1
- package/dist/esm/components/error-message-preview/ErrorMessagePreview.d.ts +15 -0
- package/dist/esm/components/error-message-preview/ErrorMessagePreview.js +35 -0
- package/dist/esm/components/error-message-preview/ErrorMessagePreview.js.map +1 -0
- package/dist/esm/components/header/Header.d.ts +4 -0
- package/dist/esm/components/header/Header.js +28 -21
- package/dist/esm/components/header/Header.js.map +1 -1
- package/dist/esm/components/header/Header_BACKUP_73021.d.ts +33 -0
- package/dist/esm/components/header/Header_BACKUP_73021.js +336 -0
- package/dist/esm/components/header/Header_BACKUP_73021.js.map +1 -0
- package/dist/esm/components/header/Header_BASE_73021.d.ts +29 -0
- package/dist/esm/components/header/Header_BASE_73021.js +322 -0
- package/dist/esm/components/header/Header_BASE_73021.js.map +1 -0
- package/dist/esm/components/header/Header_LOCAL_73021.d.ts +33 -0
- package/dist/esm/components/header/Header_LOCAL_73021.js +328 -0
- package/dist/esm/components/header/Header_LOCAL_73021.js.map +1 -0
- package/dist/esm/components/header/Header_REMOTE_73021.d.ts +30 -0
- package/dist/esm/components/header/Header_REMOTE_73021.js +329 -0
- package/dist/esm/components/header/Header_REMOTE_73021.js.map +1 -0
- package/dist/esm/components/list-field/ListField.d.ts +1 -1
- package/dist/esm/components/number-field/NumberField.d.ts +1 -1
- package/dist/esm/components/publish-wizard/PublishWizard.js +119 -64
- package/dist/esm/components/publish-wizard/PublishWizard.js.map +1 -1
- package/dist/esm/components/publish-wizard/publish/EmailWorkflow.js +5 -28
- package/dist/esm/components/publish-wizard/publish/EmailWorkflow.js.map +1 -1
- package/dist/esm/components/select-field/SelectField.d.ts +1 -1
- package/dist/esm/components/select-field/SelectField.js +0 -3
- package/dist/esm/components/select-field/SelectField.js.map +1 -1
- package/dist/esm/components/slider-field/SliderField.d.ts +1 -1
- package/dist/esm/components/smpte-field/SMPTEField.d.ts +1 -1
- package/dist/esm/components/story-previewer/StoryPreviewer.js +2 -7
- package/dist/esm/components/story-previewer/StoryPreviewer.js.map +1 -1
- package/dist/esm/components/text-area-field/TextAreaField.d.ts +1 -1
- package/dist/esm/components/text-field/TextField.d.ts +1 -1
- package/dist/esm/constants/copy.d.ts +5 -2
- package/dist/esm/constants/copy.js +8 -5
- package/dist/esm/constants/copy.js.map +1 -1
- package/dist/esm/constants/icons.d.ts +1 -0
- package/dist/esm/constants/icons.js +2 -0
- package/dist/esm/constants/icons.js.map +1 -1
- package/dist/esm/index.d.ts +3 -5
- package/dist/esm/index.js +3 -5
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/redux/actions/access.d.ts +1 -3
- package/dist/esm/redux/actions/access.js +8 -37
- package/dist/esm/redux/actions/access.js.map +1 -1
- package/dist/esm/redux/actions/asset-uploads.d.ts +11 -6
- package/dist/esm/redux/actions/asset-uploads.js +167 -224
- package/dist/esm/redux/actions/asset-uploads.js.map +1 -1
- package/dist/esm/redux/actions/publish.js +4 -3
- package/dist/esm/redux/actions/publish.js.map +1 -1
- package/dist/esm/redux/reducers/access.js +5 -8
- package/dist/esm/redux/reducers/access.js.map +1 -1
- package/dist/esm/redux/reducers/asset-uploads.js +47 -15
- package/dist/esm/redux/reducers/asset-uploads.js.map +1 -1
- package/dist/esm/services/API.d.ts +2 -2
- package/dist/esm/services/API.js +1 -2
- package/dist/esm/services/API.js.map +1 -1
- package/dist/esm/services/Auth0.js +1 -0
- package/dist/esm/services/Auth0.js.map +1 -1
- package/dist/esm/services/Session.d.ts +9 -8
- package/dist/esm/services/Session.js +29 -102
- package/dist/esm/services/Session.js.map +1 -1
- package/dist/esm/utils/assets.d.ts +2 -1
- package/dist/esm/utils/assets.js.map +1 -1
- package/dist/styles.css +25 -151
- package/dist/styles.less +100 -280
- package/less/components/assets.less +63 -237
- package/less/components/button.less +1 -7
- package/less/components/data-table.less +11 -17
- package/less/components/header.less +13 -0
- package/less/components/publish-wizard.less +13 -20
- package/less/components/story-previewer.less +0 -1
- package/package.json +6 -6
- package/src/Util.ts +0 -10
- package/src/components/Tooltip.tsx +9 -9
- package/src/components/advanced-number-field/AdvancedNumberField.tsx +1 -1
- package/src/components/anchor-field/AnchorField.tsx +1 -1
- package/src/components/app-wrapper/AppWrapper.tsx +79 -120
- package/src/components/assets/AssetField.tsx +8 -3
- package/src/components/assets/AssetsTableDurationCell.tsx +5 -2
- package/src/components/assets/AssetsTableNameCell.tsx +5 -3
- package/src/components/assets/AssetsTableRateCell.tsx +4 -11
- package/src/components/assets/AssetsTableTypeFilter.tsx +8 -7
- package/src/components/assets/AssetsUploadMenu.tsx +98 -271
- package/src/components/auth-gate/AuthGate.tsx +14 -8
- package/src/components/button-group-field/ButtonGroupField.tsx +1 -1
- package/src/components/checkbox-field/CheckboxField.tsx +1 -1
- package/src/components/color-field/ColorField.tsx +3 -3
- package/src/components/context-menu/ContextMenu.tsx +11 -16
- package/src/components/data-table/DataTable.tsx +2 -2
- package/src/components/header/Header.tsx +75 -41
- package/src/components/list-field/ListField.tsx +1 -1
- package/src/components/number-field/NumberField.tsx +1 -1
- package/src/components/publish-wizard/PublishWizard.tsx +180 -102
- package/src/components/publish-wizard/publish/EmailWorkflow.tsx +10 -42
- package/src/components/select-field/SelectField.tsx +1 -4
- package/src/components/slider-field/SliderField.tsx +1 -1
- package/src/components/smpte-field/SMPTEField.tsx +1 -1
- package/src/components/story-previewer/StoryPreviewer.tsx +6 -10
- package/src/components/text-area-field/TextAreaField.tsx +1 -1
- package/src/components/text-field/TextField.tsx +1 -1
- package/src/constants/copy.ts +9 -5
- package/src/constants/icons.tsx +3 -0
- package/src/index.ts +9 -16
- package/src/redux/actions/access.ts +5 -67
- package/src/redux/actions/asset-uploads.ts +206 -307
- package/src/redux/actions/publish.ts +6 -3
- package/src/redux/reducers/access.ts +5 -8
- package/src/redux/reducers/asset-uploads.ts +47 -17
- package/src/services/API.ts +2 -7
- package/src/services/Auth0.ts +1 -0
- package/src/services/Session.ts +34 -120
- package/src/utils/assets.ts +2 -1
- package/dist/cjs/components/copy-prop-id-button/CopyPropIdButton.d.ts +0 -12
- package/dist/cjs/components/copy-prop-id-button/CopyPropIdButton.js +0 -75
- package/dist/cjs/components/copy-prop-id-button/CopyPropIdButton.js.map +0 -1
- package/dist/esm/components/copy-prop-id-button/CopyPropIdButton.d.ts +0 -12
- package/dist/esm/components/copy-prop-id-button/CopyPropIdButton.js +0 -24
- package/dist/esm/components/copy-prop-id-button/CopyPropIdButton.js.map +0 -1
- package/src/components/assets/AssetsTableGlobalCell.tsx +0 -15
- package/src/components/copy-prop-id-button/CopyPropIdButton.tsx +0 -44
- /package/dist/cjs/components/dropdown/{Dropdown.stories.d.ts → dropdown.stories.d.ts} +0 -0
- /package/dist/esm/components/dropdown/{Dropdown.stories.d.ts → dropdown.stories.d.ts} +0 -0
- /package/src/components/dropdown/{Dropdown.stories.tsx → dropdown.stories.tsx} +0 -0
|
@@ -0,0 +1,329 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import ImposiumDropdown from '../dropdown/Dropdown';
|
|
3
|
+
import ServiceIcon from '../service-icon/ServiceIcon';
|
|
4
|
+
import { string2HexCode, parameterizeServiceUrl } from '../../Util';
|
|
5
|
+
import { ICON_CHEVRON_DOWN, ICON_CHEVRON_UP, ICON_HELP } from '../../constants/icons';
|
|
6
|
+
import { connect } from 'react-redux';
|
|
7
|
+
import Spinner from '../spinner/Spinner';
|
|
8
|
+
import _ from 'lodash';
|
|
9
|
+
import DataTable from '../data-table/DataTable';
|
|
10
|
+
import AssetsTableDateCell from '../assets/AssetsTableDateCell';
|
|
11
|
+
import SessionService from '../../services/Session';
|
|
12
|
+
class ImposiumHeader extends React.PureComponent {
|
|
13
|
+
static DEFAULT_TITLE = 'imposium';
|
|
14
|
+
static SERVICE_MESH_ALIAS = 'services';
|
|
15
|
+
static DOCS_HEADER = 'documentation';
|
|
16
|
+
static PRIVATE_HEADER = 'admin';
|
|
17
|
+
static API_DOCS_LINK_COPY = 'REST API';
|
|
18
|
+
static SDK_DOCS_LINK_COPY = 'Javascript SDK';
|
|
19
|
+
static API_DOCS_LINK = 'https://docs.imposium.com';
|
|
20
|
+
static SDK_DOCS_LINK = 'https://docs.imposium.com/js-sdk/';
|
|
21
|
+
static DEFAULT_ACCOUNT_TOGGLE_COLOR = 'royalblue';
|
|
22
|
+
static NO_STORIES_COPY = 'No stories were found';
|
|
23
|
+
static LOGOUT_COPY = 'logout';
|
|
24
|
+
static UUID_LENGTH = 36;
|
|
25
|
+
static UP = ICON_CHEVRON_UP;
|
|
26
|
+
static DOWN = ICON_CHEVRON_DOWN;
|
|
27
|
+
static PRIVATE_IDS = [9, 10, 11, 12];
|
|
28
|
+
serviceToggleRef = null;
|
|
29
|
+
storyToggleRef = null;
|
|
30
|
+
orgsToggleRef = null;
|
|
31
|
+
COLUMNS = [
|
|
32
|
+
{
|
|
33
|
+
accessor: 'name',
|
|
34
|
+
Header: 'Name',
|
|
35
|
+
width: 115,
|
|
36
|
+
minWidth: 115,
|
|
37
|
+
disableSortBy: false
|
|
38
|
+
},
|
|
39
|
+
// {
|
|
40
|
+
// accessor: 'total_renders',
|
|
41
|
+
// Header: 'Total Renders',
|
|
42
|
+
// width: 60,
|
|
43
|
+
// minWidth: 60,
|
|
44
|
+
// maxWidth: 60,
|
|
45
|
+
// disableSortBy: false
|
|
46
|
+
// },
|
|
47
|
+
{
|
|
48
|
+
accessor: 'last_modified_by',
|
|
49
|
+
Header: 'Last Modified By',
|
|
50
|
+
width: 60,
|
|
51
|
+
minWidth: 60,
|
|
52
|
+
maxWidth: 60,
|
|
53
|
+
disableSortBy: true
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
accessor: 'date_modified',
|
|
57
|
+
Header: 'Last Modified',
|
|
58
|
+
width: 65,
|
|
59
|
+
minWidth: 65,
|
|
60
|
+
maxWidth: 65,
|
|
61
|
+
disableSortBy: false,
|
|
62
|
+
Cell: (cell) => (React.createElement(AssetsTableDateCell, { cell: cell, date_created: false }))
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
accessor: 'date_created',
|
|
66
|
+
Header: 'Created Date',
|
|
67
|
+
width: 65,
|
|
68
|
+
minWidth: 65,
|
|
69
|
+
maxWidth: 65,
|
|
70
|
+
disableSortBy: false,
|
|
71
|
+
Cell: (cell) => (React.createElement(AssetsTableDateCell, { cell: cell, date_created: true }))
|
|
72
|
+
}
|
|
73
|
+
];
|
|
74
|
+
constructor(p) {
|
|
75
|
+
super(p);
|
|
76
|
+
this.state = {
|
|
77
|
+
inactiveOrganizations: [],
|
|
78
|
+
servicesByOrganization: [],
|
|
79
|
+
activeServiceBlob: undefined,
|
|
80
|
+
activeOrganizationBlob: undefined,
|
|
81
|
+
showAccountDropdown: false,
|
|
82
|
+
showStoriesDropdown: false,
|
|
83
|
+
showServiceDropdown: false,
|
|
84
|
+
dropdownToggleColor: ImposiumHeader.DEFAULT_ACCOUNT_TOGGLE_COLOR,
|
|
85
|
+
activeFirstChar: '',
|
|
86
|
+
order: 'date_modified',
|
|
87
|
+
orderDirection: 'desc',
|
|
88
|
+
accessData: null,
|
|
89
|
+
dataLoading: true
|
|
90
|
+
};
|
|
91
|
+
this.serviceToggleRef = React.createRef();
|
|
92
|
+
this.storyToggleRef = React.createRef();
|
|
93
|
+
this.orgsToggleRef = React.createRef();
|
|
94
|
+
}
|
|
95
|
+
componentDidMount = () => {
|
|
96
|
+
this.getAccessDataHandler();
|
|
97
|
+
};
|
|
98
|
+
componentDidUpdate(prevProps) {
|
|
99
|
+
const { accessData } = this.state;
|
|
100
|
+
const { activeOrganization, access } = this.props;
|
|
101
|
+
if (activeOrganization !== prevProps.activeOrganization) {
|
|
102
|
+
if (accessData !== null) {
|
|
103
|
+
this.parseAccessData(accessData, activeOrganization);
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
this.getAccessDataHandler();
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
if (!_.isEqual(access, accessData)) {
|
|
110
|
+
this.setState({ accessData: access }, () => this.parseAccessData(access, activeOrganization));
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
parseAccessData = (accessData, activeOrganization) => {
|
|
114
|
+
const { organizations, services } = accessData;
|
|
115
|
+
let activeOrgId = activeOrganization;
|
|
116
|
+
if (activeOrgId === 'undefined') {
|
|
117
|
+
const session = SessionService.getSession();
|
|
118
|
+
activeOrgId = session.organization_id;
|
|
119
|
+
}
|
|
120
|
+
const activeOrganizationBlob = activeOrgId
|
|
121
|
+
? accessData.organizations.find((org) => org.id === activeOrgId)
|
|
122
|
+
: undefined;
|
|
123
|
+
const inactiveOrganizations = organizations.length > 1 ? organizations.filter((o) => o.id !== activeOrgId) : [];
|
|
124
|
+
const servicesByOrganization = services && activeOrganizationBlob
|
|
125
|
+
? services.filter((s) => activeOrganizationBlob.services.includes(s.id))
|
|
126
|
+
: [];
|
|
127
|
+
const activeServiceBlob = servicesByOrganization.length > 1
|
|
128
|
+
? services.find((s) => window.location.href.includes(s.url))
|
|
129
|
+
: undefined;
|
|
130
|
+
let dropdownToggleColor = ImposiumHeader.DEFAULT_ACCOUNT_TOGGLE_COLOR;
|
|
131
|
+
let activeFirstChar = '';
|
|
132
|
+
if (activeOrganizationBlob && activeOrganizationBlob.hasOwnProperty('name')) {
|
|
133
|
+
dropdownToggleColor = string2HexCode(activeOrganizationBlob.name);
|
|
134
|
+
activeFirstChar = this.pullFirstChar(activeOrganizationBlob.name);
|
|
135
|
+
}
|
|
136
|
+
this.setState({
|
|
137
|
+
servicesByOrganization,
|
|
138
|
+
activeServiceBlob,
|
|
139
|
+
inactiveOrganizations,
|
|
140
|
+
activeOrganizationBlob,
|
|
141
|
+
dropdownToggleColor,
|
|
142
|
+
activeFirstChar
|
|
143
|
+
});
|
|
144
|
+
};
|
|
145
|
+
changeStory = (story) => {
|
|
146
|
+
const { onStoryChange } = this.props;
|
|
147
|
+
if (typeof onStoryChange === 'function') {
|
|
148
|
+
onStoryChange(story);
|
|
149
|
+
this.setState({ showStoriesDropdown: false });
|
|
150
|
+
}
|
|
151
|
+
};
|
|
152
|
+
toggleAccountDropdown = (toggle, newId = '') => {
|
|
153
|
+
const { onOrganizationChange } = this.props;
|
|
154
|
+
if (toggle) {
|
|
155
|
+
this.setState({ showAccountDropdown: true });
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
this.setState({ showAccountDropdown: false });
|
|
159
|
+
// Propagate handler if supplied (more useful in react / redux flow)
|
|
160
|
+
if (newId && onOrganizationChange) {
|
|
161
|
+
onOrganizationChange(newId);
|
|
162
|
+
}
|
|
163
|
+
// V1 Default behavior - redirect to hub on org change
|
|
164
|
+
if (newId && !onOrganizationChange) {
|
|
165
|
+
window.location.replace(`${this.getHomeUrl()}?organization_id=${newId}`);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
};
|
|
169
|
+
getHomeUrl = () => {
|
|
170
|
+
const { location: { hostname, host } } = window;
|
|
171
|
+
if (hostname === 'localhost') {
|
|
172
|
+
return 'http://localhost:3036';
|
|
173
|
+
}
|
|
174
|
+
else if (host.includes('.staging.')) {
|
|
175
|
+
return 'https://launchpad.staging.imposium.com';
|
|
176
|
+
}
|
|
177
|
+
else {
|
|
178
|
+
return 'https://launchpad.imposium.com';
|
|
179
|
+
}
|
|
180
|
+
};
|
|
181
|
+
doLogout = () => {
|
|
182
|
+
this.setState({ showAccountDropdown: false });
|
|
183
|
+
this.props.logout();
|
|
184
|
+
};
|
|
185
|
+
pullFirstChar = (s) => {
|
|
186
|
+
return s ? s.substring(0, 1) : '';
|
|
187
|
+
};
|
|
188
|
+
renderDropdownChevron = (toggle) => {
|
|
189
|
+
return toggle ? ImposiumHeader.UP : ImposiumHeader.DOWN;
|
|
190
|
+
};
|
|
191
|
+
renderServiceAnchor = (s, activeOrganization, activeStory) => (React.createElement("div", { className: 'anchor-wrapper', key: s.id },
|
|
192
|
+
React.createElement("a", { href: parameterizeServiceUrl(activeOrganization, activeStory, s.url, s.id) },
|
|
193
|
+
React.createElement("div", { className: 'icon-fixed' },
|
|
194
|
+
React.createElement(ServiceIcon, { iconName: s.icon, color: `#${s.color}` })),
|
|
195
|
+
s.name)));
|
|
196
|
+
getAccessDataHandler = () => {
|
|
197
|
+
const { auth: { idToken }, baseUrl, activeOrganization } = this.props;
|
|
198
|
+
this.setState({ dataLoading: true });
|
|
199
|
+
SessionService.getAccessData(idToken, baseUrl)
|
|
200
|
+
.then((res) => {
|
|
201
|
+
this.setState({ dataLoading: false, accessData: res }, () => this.parseAccessData(res, activeOrganization));
|
|
202
|
+
})
|
|
203
|
+
.catch((e) => {
|
|
204
|
+
console.error(e);
|
|
205
|
+
});
|
|
206
|
+
};
|
|
207
|
+
render() {
|
|
208
|
+
const { email, activeOrganization, activeStory, hideStoryPicker, story } = this.props;
|
|
209
|
+
const { accessData, showAccountDropdown, servicesByOrganization, activeServiceBlob, showStoriesDropdown, inactiveOrganizations, activeOrganizationBlob, activeFirstChar, dropdownToggleColor, showServiceDropdown, order, orderDirection, dataLoading } = this.state;
|
|
210
|
+
let currentStory;
|
|
211
|
+
let headerBorder;
|
|
212
|
+
let activeService;
|
|
213
|
+
let serviceDropdownColor = {};
|
|
214
|
+
let serviceAnchors;
|
|
215
|
+
let privateAnchors;
|
|
216
|
+
let accountDropdownToggle;
|
|
217
|
+
let activePanel;
|
|
218
|
+
let storyToggle = !hideStoryPicker ? React.createElement(Spinner, null) : null;
|
|
219
|
+
let orgPicker;
|
|
220
|
+
let storyMenuInner = (React.createElement("div", { className: 'no-stories-dialog' }, ImposiumHeader.NO_STORIES_COPY));
|
|
221
|
+
let serviceDropdownToggle;
|
|
222
|
+
let serviceDropdownMenu;
|
|
223
|
+
if (accessData) {
|
|
224
|
+
activeService = servicesByOrganization.find((s) => window.location.href.includes(s.url));
|
|
225
|
+
if (activeService) {
|
|
226
|
+
serviceDropdownColor = { color: `#${activeService.color}` };
|
|
227
|
+
headerBorder = { borderBottom: `4px solid #${activeService.color}` };
|
|
228
|
+
}
|
|
229
|
+
serviceAnchors = servicesByOrganization
|
|
230
|
+
.filter((s) => !s.private && ImposiumHeader.PRIVATE_IDS.indexOf(s.id) === -1)
|
|
231
|
+
.map((s) => this.renderServiceAnchor(s, activeOrganization, activeStory));
|
|
232
|
+
privateAnchors = servicesByOrganization
|
|
233
|
+
.filter((s) => !s.private && ImposiumHeader.PRIVATE_IDS.indexOf(s.id) > -1)
|
|
234
|
+
.map((s) => this.renderServiceAnchor(s, activeOrganization, activeStory));
|
|
235
|
+
serviceDropdownMenu = (React.createElement("div", { className: 'service-menu' },
|
|
236
|
+
React.createElement("section", { className: 'service-menu-section' },
|
|
237
|
+
React.createElement("div", { className: 'service-menu-heading' }, ImposiumHeader.SERVICE_MESH_ALIAS),
|
|
238
|
+
React.createElement("div", { className: 'service-menu-anchors' }, serviceAnchors)),
|
|
239
|
+
privateAnchors.length > 0 && (React.createElement("section", { className: 'service-menu-section' },
|
|
240
|
+
React.createElement("div", { className: 'service-menu-heading' }, ImposiumHeader.PRIVATE_HEADER),
|
|
241
|
+
React.createElement("div", { className: 'service-menu-anchors' }, privateAnchors))),
|
|
242
|
+
React.createElement("section", { className: 'service-menu-section' },
|
|
243
|
+
React.createElement("div", { className: 'service-menu-heading' }, ImposiumHeader.DOCS_HEADER),
|
|
244
|
+
React.createElement("div", { className: 'service-menu-anchors' },
|
|
245
|
+
React.createElement("div", { className: 'anchor-wrapper doc' },
|
|
246
|
+
React.createElement("a", { target: '__blank', href: ImposiumHeader.API_DOCS_LINK },
|
|
247
|
+
React.createElement("div", { className: 'icon-fixed' },
|
|
248
|
+
React.createElement(ServiceIcon, { iconName: 'FaCogs' })),
|
|
249
|
+
ImposiumHeader.API_DOCS_LINK_COPY)),
|
|
250
|
+
React.createElement("div", { className: 'anchor-wrapper doc' },
|
|
251
|
+
React.createElement("a", { target: '__blank', href: ImposiumHeader.SDK_DOCS_LINK },
|
|
252
|
+
React.createElement("div", { className: 'icon-fixed' },
|
|
253
|
+
React.createElement(ServiceIcon, { iconName: 'FaJsSquare' })),
|
|
254
|
+
ImposiumHeader.SDK_DOCS_LINK_COPY))))));
|
|
255
|
+
serviceDropdownToggle = (React.createElement("button", { id: 'btn-toggle-services', className: 'btn-toggle-services', style: serviceDropdownColor, ref: this.serviceToggleRef, onClick: () => this.setState({ showServiceDropdown: !this.state.showServiceDropdown }) },
|
|
256
|
+
React.createElement("span", null, activeServiceBlob
|
|
257
|
+
? activeServiceBlob.name
|
|
258
|
+
: ImposiumHeader.SERVICE_MESH_ALIAS),
|
|
259
|
+
this.renderDropdownChevron(showServiceDropdown)));
|
|
260
|
+
accountDropdownToggle = (React.createElement("button", { id: 'btn-toggle-orgs', className: 'btn-toggle-orgs', ref: this.orgsToggleRef, style: { backgroundColor: dropdownToggleColor }, onClick: () => this.toggleAccountDropdown(!showAccountDropdown) }, activeFirstChar));
|
|
261
|
+
}
|
|
262
|
+
if (accessData && activeOrganizationBlob) {
|
|
263
|
+
activePanel = (React.createElement("div", { className: 'orgs-menu-active-org' },
|
|
264
|
+
React.createElement("div", { className: 'active-first-char', style: { backgroundColor: dropdownToggleColor } }, this.pullFirstChar(activeOrganizationBlob.name)),
|
|
265
|
+
React.createElement("div", null, activeOrganizationBlob.name)));
|
|
266
|
+
}
|
|
267
|
+
if (accessData && accessData.organizations && accessData.organizations.length === 0) {
|
|
268
|
+
storyToggle = null;
|
|
269
|
+
}
|
|
270
|
+
if (accessData && activeOrganizationBlob && !hideStoryPicker) {
|
|
271
|
+
currentStory = activeOrganizationBlob.stories.find((s) => s.id === activeStory);
|
|
272
|
+
storyToggle = (React.createElement("button", { id: 'btn-toggle-story', className: 'btn-toggle-story', ref: this.storyToggleRef, onClick: () => {
|
|
273
|
+
this.setState({ showStoriesDropdown: !showStoriesDropdown }, () => {
|
|
274
|
+
if (showStoriesDropdown === false)
|
|
275
|
+
this.getAccessDataHandler();
|
|
276
|
+
});
|
|
277
|
+
} },
|
|
278
|
+
React.createElement("div", { className: 'story-name' }, currentStory
|
|
279
|
+
? currentStory.name
|
|
280
|
+
: story
|
|
281
|
+
? story.name
|
|
282
|
+
: 'Project Not Found'),
|
|
283
|
+
this.renderDropdownChevron(showStoriesDropdown)));
|
|
284
|
+
if (activeOrganizationBlob.stories.length !== 0) {
|
|
285
|
+
const sortBy = order && orderDirection
|
|
286
|
+
? [{ id: order, desc: orderDirection === 'desc' }]
|
|
287
|
+
: undefined;
|
|
288
|
+
const sortedStories = _.orderBy(activeOrganizationBlob.stories, ['date_modified'], ['desc']);
|
|
289
|
+
storyMenuInner = (React.createElement(DataTable, { columns: this.COLUMNS, data: sortedStories, showInterstitial: dataLoading, sortBy: sortBy, noDataText: ImposiumHeader.NO_STORIES_COPY, itemsPerPage: activeOrganizationBlob.stories.length, hidePaginator: true, onRowClick: this.changeStory }));
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
if (showAccountDropdown) {
|
|
293
|
+
orgPicker = (React.createElement("div", { className: 'orgs-menu-org-picker' }, inactiveOrganizations.map((o) => (React.createElement("button", { key: o.name, className: 'menu-item inactive-org-button', onClick: () => this.toggleAccountDropdown(false, o.id) },
|
|
294
|
+
React.createElement("div", { className: 'inactive-first-char', style: { backgroundColor: string2HexCode(o.name) } }, this.pullFirstChar(o.name)),
|
|
295
|
+
o.name)))));
|
|
296
|
+
}
|
|
297
|
+
return (React.createElement("nav", { id: 'imposium-header', className: 'imposium-header', style: headerBorder },
|
|
298
|
+
React.createElement("div", { className: 'inner-content' },
|
|
299
|
+
React.createElement("span", { className: 'inner-left' },
|
|
300
|
+
React.createElement("div", { className: 'title' },
|
|
301
|
+
React.createElement("div", { className: 'logo' }),
|
|
302
|
+
React.createElement("h1", { className: 'heading' }, ImposiumHeader.DEFAULT_TITLE)),
|
|
303
|
+
serviceDropdownToggle),
|
|
304
|
+
React.createElement("span", { className: 'inner-right' },
|
|
305
|
+
storyToggle,
|
|
306
|
+
accountDropdownToggle,
|
|
307
|
+
React.createElement("a", { href: 'https://flashtalkingus.atlassian.net/wiki/spaces/CPPW/pages/3296723007/IMPOSIUM+Dynamic+Video+Tool', target: '_blank' },
|
|
308
|
+
React.createElement("div", { className: 'btn-help' }, ICON_HELP)))),
|
|
309
|
+
React.createElement(ImposiumDropdown, { key: 'services-dropdown', position: 'bottomleft', show: showServiceDropdown, toggleRef: this.serviceToggleRef, onOutsideClick: () => this.setState({ showServiceDropdown: false }) }, serviceDropdownMenu),
|
|
310
|
+
React.createElement(ImposiumDropdown, { key: 'stories-dropdown', position: 'bottomright', show: showStoriesDropdown, toggleRef: this.storyToggleRef, onOutsideClick: () => this.setState({ showStoriesDropdown: false }) },
|
|
311
|
+
React.createElement("div", { className: 'stories-menu' }, storyMenuInner)),
|
|
312
|
+
React.createElement(ImposiumDropdown, { key: 'org-dropdown', position: 'bottomright', show: showAccountDropdown, toggleRef: this.orgsToggleRef, onOutsideClick: () => this.toggleAccountDropdown(false) },
|
|
313
|
+
React.createElement("div", { className: 'orgs-menu' },
|
|
314
|
+
activePanel,
|
|
315
|
+
orgPicker,
|
|
316
|
+
React.createElement("div", { className: 'orgs-menu-footer' },
|
|
317
|
+
React.createElement("div", { className: 'email' }, email),
|
|
318
|
+
React.createElement("button", { className: 'btn-logout', onClick: () => this.doLogout() }, ImposiumHeader.LOGOUT_COPY))))));
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
const mapStateToProps = (state) => {
|
|
322
|
+
return {
|
|
323
|
+
auth: state.auth,
|
|
324
|
+
story: state.story,
|
|
325
|
+
access: state.access
|
|
326
|
+
};
|
|
327
|
+
};
|
|
328
|
+
export default connect(mapStateToProps, null)(ImposiumHeader);
|
|
329
|
+
//# sourceMappingURL=Header_REMOTE_73021.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Header_REMOTE_73021.js","sourceRoot":"","sources":["../../../../src/components/header/Header_REMOTE_73021.tsx"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import * as React from 'react';
|
|
|
2
2
|
import Button from '../button/Button';
|
|
3
3
|
import SelectField from '../select-field/SelectField';
|
|
4
4
|
import HRule from '../h-rule/HRule';
|
|
5
|
-
import { ICON_DOWNLOAD, ICON_EMAIL, ICON_GLOBE, ICON_HUBSPOT, ICON_IMAGE, ICON_PROJECT_DIAGRAM } from '../../constants/icons';
|
|
5
|
+
import { ICON_DOWNLOAD, ICON_EMAIL, ICON_EXCLAIMATION_TRIANGLE, ICON_GLOBE, ICON_HUBSPOT, ICON_IMAGE, ICON_PROJECT_DIAGRAM, ICON_UP_RIGHT_FROM_SQUARE } from '../../constants/icons';
|
|
6
6
|
import * as copy from '../../constants/copy';
|
|
7
7
|
import { ASSET_TYPES } from '../../constants/assets';
|
|
8
8
|
import HubSpotFlow from './publish/HubSpotFlow';
|
|
@@ -34,11 +34,23 @@ class PublishWizard extends React.PureComponent {
|
|
|
34
34
|
done: false,
|
|
35
35
|
error: false,
|
|
36
36
|
next: false,
|
|
37
|
-
nextStep: false
|
|
37
|
+
nextStep: false,
|
|
38
|
+
publishError: null
|
|
38
39
|
};
|
|
39
40
|
this.emailWorkflow = React.createRef();
|
|
40
41
|
this.hiddenFileInputRef = React.createRef();
|
|
41
42
|
}
|
|
43
|
+
componentDidUpdate(prevProps, prevState) {
|
|
44
|
+
// If we just finished publushing, and we're on the first screen still go to the second screen
|
|
45
|
+
if (prevProps.publishData.publishing &&
|
|
46
|
+
!this.props.publishData.publishing &&
|
|
47
|
+
this.state.screenIndex === 0 &&
|
|
48
|
+
!this.state.publishError) {
|
|
49
|
+
this.setState({
|
|
50
|
+
screenIndex: 1
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
}
|
|
42
54
|
componentDidMount() {
|
|
43
55
|
const { story, api, handleError, activeComposition } = this.props;
|
|
44
56
|
// Pull in all of the access creds for the composition dropdown
|
|
@@ -157,11 +169,23 @@ class PublishWizard extends React.PureComponent {
|
|
|
157
169
|
this.setState({ accessKey: e });
|
|
158
170
|
};
|
|
159
171
|
handlePublish() {
|
|
160
|
-
const { story: { id }, api, handleError } = this.props;
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
172
|
+
const { story: { id }, api, handleError, fromCrM } = this.props;
|
|
173
|
+
if (fromCrM) {
|
|
174
|
+
this.props
|
|
175
|
+
.publishVersion(api, id)
|
|
176
|
+
.then(() => {
|
|
177
|
+
this.setState({ screenIndex: 1 });
|
|
178
|
+
})
|
|
179
|
+
.catch((e) => {
|
|
180
|
+
this.setState({ publishError: e });
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
else {
|
|
184
|
+
this.props.publishVersion(api, id).catch((e) => {
|
|
185
|
+
handleError(e);
|
|
186
|
+
});
|
|
187
|
+
this.setState({ screenIndex: 1 });
|
|
188
|
+
}
|
|
165
189
|
}
|
|
166
190
|
onCloseHandler = () => {
|
|
167
191
|
if (this.props.onDeleteBatch !== undefined) {
|
|
@@ -175,7 +199,7 @@ class PublishWizard extends React.PureComponent {
|
|
|
175
199
|
};
|
|
176
200
|
renderLowerButtons() {
|
|
177
201
|
const { screenIndex, done, error, next } = this.state;
|
|
178
|
-
const { publishing } = this.props;
|
|
202
|
+
const { publishing } = this.props.publishData;
|
|
179
203
|
const lowerButtons = [];
|
|
180
204
|
// publish and skip buttons
|
|
181
205
|
if (screenIndex === 0) {
|
|
@@ -197,10 +221,6 @@ class PublishWizard extends React.PureComponent {
|
|
|
197
221
|
nextStep: false,
|
|
198
222
|
error: false,
|
|
199
223
|
done: false
|
|
200
|
-
}, () => {
|
|
201
|
-
if (this.props.onBackBtn) {
|
|
202
|
-
this.props.onBackBtn();
|
|
203
|
-
}
|
|
204
224
|
}), color: 'primary' }, copy.publish.btnBack));
|
|
205
225
|
// reimport after column align
|
|
206
226
|
if (error) {
|
|
@@ -210,16 +230,23 @@ class PublishWizard extends React.PureComponent {
|
|
|
210
230
|
return lowerButtons;
|
|
211
231
|
}
|
|
212
232
|
renderPublish() {
|
|
233
|
+
const { publishing } = this.props.publishData;
|
|
234
|
+
const { publishError } = this.state;
|
|
235
|
+
const error = publishError ? (React.createElement("p", { className: 'publish-error' },
|
|
236
|
+
React.createElement("span", { className: 'icon' }, ICON_EXCLAIMATION_TRIANGLE),
|
|
237
|
+
"\u00A0\u00A0",
|
|
238
|
+
publishError)) : null;
|
|
213
239
|
return (React.createElement("div", null,
|
|
214
240
|
React.createElement("h2", null, copy.publish.publishStepTitle),
|
|
215
241
|
React.createElement(HRule, null),
|
|
216
|
-
React.createElement("p", null, copy.publish.publishStepDesc)
|
|
242
|
+
React.createElement("p", null, publishing ? copy.publish.publishInProgress : copy.publish.publishStepDesc),
|
|
243
|
+
error));
|
|
217
244
|
}
|
|
218
245
|
renderDistributionOptions() {
|
|
219
246
|
const compOpts = [];
|
|
220
247
|
const credOpts = [];
|
|
221
248
|
const { compositions, afterEffects, selectedComposition, credentials, accessKey } = this.state;
|
|
222
|
-
const { publishDataset } = this.props;
|
|
249
|
+
const { publishDataset, fromCrM, story, creativeManagerBaseUrl } = this.props;
|
|
223
250
|
for (const comp of compositions) {
|
|
224
251
|
compOpts.push({
|
|
225
252
|
value: comp.id,
|
|
@@ -238,50 +265,67 @@ class PublishWizard extends React.PureComponent {
|
|
|
238
265
|
label: cred.name
|
|
239
266
|
});
|
|
240
267
|
}
|
|
241
|
-
let distributionOptions =
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
268
|
+
let distributionOptions = !fromCrM
|
|
269
|
+
? [
|
|
270
|
+
{
|
|
271
|
+
label: (React.createElement("span", null,
|
|
272
|
+
ICON_GLOBE,
|
|
273
|
+
"\u00A0",
|
|
274
|
+
copy.publish.btnWebsite)),
|
|
275
|
+
onClick: (e) => this.onSelectOption(2)
|
|
276
|
+
},
|
|
277
|
+
{
|
|
278
|
+
label: (React.createElement("span", null,
|
|
279
|
+
ICON_EMAIL,
|
|
280
|
+
"\u00A0",
|
|
281
|
+
copy.publish.btnEmail)),
|
|
282
|
+
onClick: (e) => this.onSelectOption(3)
|
|
283
|
+
},
|
|
284
|
+
{
|
|
285
|
+
label: (React.createElement("span", null,
|
|
286
|
+
ICON_HUBSPOT,
|
|
287
|
+
"\u00A0",
|
|
288
|
+
copy.publish.btnHubspot)),
|
|
289
|
+
onClick: (e) => this.onSelectOption(5)
|
|
290
|
+
},
|
|
291
|
+
{
|
|
292
|
+
label: (React.createElement("span", null,
|
|
293
|
+
ICON_PROJECT_DIAGRAM,
|
|
294
|
+
"\u00A0",
|
|
295
|
+
copy.publish.btnAPI)),
|
|
296
|
+
onClick: (e) => this.onSelectOption(6)
|
|
297
|
+
},
|
|
298
|
+
{
|
|
299
|
+
label: (React.createElement("span", null,
|
|
300
|
+
ICON_DOWNLOAD,
|
|
301
|
+
"\u00A0",
|
|
302
|
+
copy.publish.btnExport)),
|
|
303
|
+
onClick: (e) => this.onSelectOption(7)
|
|
304
|
+
},
|
|
305
|
+
{
|
|
306
|
+
label: (React.createElement("span", null,
|
|
307
|
+
ICON_IMAGE,
|
|
308
|
+
"\u00A0",
|
|
309
|
+
copy.publish.btnCRM)),
|
|
310
|
+
onClick: (e) => this.onSelectOption(8)
|
|
311
|
+
}
|
|
312
|
+
]
|
|
313
|
+
: [
|
|
314
|
+
{
|
|
315
|
+
label: (React.createElement("span", null,
|
|
316
|
+
ICON_DOWNLOAD,
|
|
317
|
+
"\u00A0",
|
|
318
|
+
copy.publish.btnRunTestBatch)),
|
|
319
|
+
onClick: (e) => this.onSelectOption(7)
|
|
320
|
+
},
|
|
321
|
+
{
|
|
322
|
+
label: (React.createElement("span", null,
|
|
323
|
+
ICON_UP_RIGHT_FROM_SQUARE,
|
|
324
|
+
"\u00A0",
|
|
325
|
+
copy.publish.btnCrM)),
|
|
326
|
+
link: `${creativeManagerBaseUrl}/library/${story.creativeLibraryId}/creative/${story.creativeLibraryId}/versions/`
|
|
327
|
+
}
|
|
328
|
+
];
|
|
285
329
|
if (publishDataset) {
|
|
286
330
|
const indexes = [0, 2, 3];
|
|
287
331
|
distributionOptions = distributionOptions.reduce((acc, value, index) => {
|
|
@@ -291,17 +335,28 @@ class PublishWizard extends React.PureComponent {
|
|
|
291
335
|
return acc;
|
|
292
336
|
}, []);
|
|
293
337
|
}
|
|
338
|
+
const compDropdown = !fromCrM ? (React.createElement(SelectField, { label: copy.project.compName, value: selectedComposition, onChange: this.onCompositionChange, options: compOpts, tooltip: copy.project.tooltipCompId })) : null;
|
|
339
|
+
const accessKeyDropdown = !fromCrM ? (React.createElement(SelectField, { label: copy.publish.accessKey, value: accessKey, onChange: this.onCredentialsChange, options: credOpts, tooltip: copy.publish.tooltipAccessKey })) : null;
|
|
294
340
|
return (React.createElement("div", null,
|
|
295
|
-
React.createElement("h2", null,
|
|
341
|
+
React.createElement("h2", null, !fromCrM
|
|
342
|
+
? copy.publish.distributeStepTitle
|
|
343
|
+
: copy.publish.distributeStepTitleFromCrM),
|
|
296
344
|
React.createElement(HRule, null),
|
|
297
|
-
React.createElement("p", null,
|
|
345
|
+
React.createElement("p", null, !fromCrM
|
|
346
|
+
? copy.publish.distributeStepDesc
|
|
347
|
+
: copy.publish.distributeStepDescFromCrM),
|
|
298
348
|
React.createElement(HRule, null),
|
|
299
|
-
!this.state.selectedComposition && (React.createElement("p", { className: 'text-danger' }, copy.publish.noCompErrorDesc)),
|
|
349
|
+
!this.state.selectedComposition && !fromCrM && (React.createElement("p", { className: 'text-danger' }, copy.publish.noCompErrorDesc)),
|
|
300
350
|
React.createElement("div", { style: { marginTop: '10px' } },
|
|
301
|
-
|
|
302
|
-
|
|
351
|
+
compDropdown,
|
|
352
|
+
accessKeyDropdown,
|
|
303
353
|
React.createElement("div", { className: 'link-wrapper' }, distributionOptions?.map((option, index) => {
|
|
304
|
-
|
|
354
|
+
if (option.link) {
|
|
355
|
+
return (React.createElement(BigLink, { key: index, label: option.label, link: option.link }));
|
|
356
|
+
}
|
|
357
|
+
else {
|
|
358
|
+
return (React.createElement(BigButton, { key: index, disabled: !selectedComposition, label: option.label, onClick: option.onClick }));
|
|
359
|
+
}
|
|
305
360
|
})))));
|
|
306
361
|
}
|
|
307
362
|
nextClickHandler = () => {
|