learningtribes-studio-frontend 1.4.2-alpha.1 → 1.4.2-alpha.2
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/accessibilityPolicy.min.js +1 -1
- package/dist/assets.min.js +1 -1
- package/dist/common.min.css +2 -2
- package/dist/common.min.js +4 -4
- package/dist/common.min.js.map +1 -1
- package/dist/courseHealthCheck.min.js +1 -1
- package/dist/courseOutlineHealthCheck.min.js +1 -1
- package/dist/editImageModal.min.css +1 -1
- package/dist/editImageModal.min.js +1 -1
- package/dist/editImageModal.min.js.map +1 -1
- package/package.json +1 -1
- package/src/components/AssetsDropZone/AssetsDropZone.scss +38 -46
- package/src/components/AssetsDropZone/AssetsDropZone.test.jsx +1 -1
- package/src/components/AssetsDropZone/index.jsx +15 -19
- package/src/components/AssetsList/AssetsList.scss +48 -41
- package/src/components/AssetsList/index.jsx +9 -4
- package/src/components/EditImageModal/EditImageModal.scss +52 -35
- package/src/components/EditImageModal/EditImageModal.test.jsx +18 -16
- package/src/components/EditImageModal/displayMessages.jsx +6 -1
- package/src/components/EditImageModal/index.jsx +38 -31
- package/src/data/i18n/default/transifex_input.json +3 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Button,
|
|
1
|
+
import { Button, CheckBox, Fieldset, InputText, Modal, StatusAlert, Variant } from '@edx/paragon';
|
|
2
2
|
import classNames from 'classnames';
|
|
3
3
|
import { connect } from 'react-redux';
|
|
4
4
|
import FontAwesomeStyles from 'font-awesome/css/font-awesome.min.css';
|
|
@@ -57,6 +57,7 @@ const initialEditImageModalState = {
|
|
|
57
57
|
isModalOpen: false,
|
|
58
58
|
isStatusAlertOpen: false,
|
|
59
59
|
pageNumber: 1,
|
|
60
|
+
editingExisting: false,
|
|
60
61
|
shouldShowPreviousButton: false,
|
|
61
62
|
};
|
|
62
63
|
|
|
@@ -122,12 +123,27 @@ export default class EditImageModal extends React.Component {
|
|
|
122
123
|
break;
|
|
123
124
|
}
|
|
124
125
|
default: {
|
|
125
|
-
if (nextProps.selectedAsset.portable_url
|
|
126
|
+
if (nextProps.selectedAsset.portable_url &&
|
|
127
|
+
nextProps.selectedAsset.id !== this.props.selectedAsset.id) {
|
|
126
128
|
newState.imageSource = nextProps.selectedAsset.portable_url;
|
|
127
129
|
}
|
|
128
130
|
break;
|
|
129
131
|
}
|
|
130
132
|
}
|
|
133
|
+
|
|
134
|
+
if (nextProps.assetsStatus.type !== assetActions.upload.UPLOAD_ASSET_SUCCESS &&
|
|
135
|
+
!nextProps.selectedAsset.id && this.state.imageSource && nextProps.assetsList.length) {
|
|
136
|
+
const source = this.state.imageSource;
|
|
137
|
+
const match = nextProps.assetsList.find(asset => (
|
|
138
|
+
asset.id && (
|
|
139
|
+
asset.portable_url === source || asset.url === source || asset.external_url === source
|
|
140
|
+
)
|
|
141
|
+
));
|
|
142
|
+
if (match) {
|
|
143
|
+
nextProps.selectAsset(match);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
|
|
131
147
|
this.setState(state => ({
|
|
132
148
|
...newState,
|
|
133
149
|
assetsPageType: getPageType(nextProps, state.assetsPageType),
|
|
@@ -408,6 +424,8 @@ export default class EditImageModal extends React.Component {
|
|
|
408
424
|
<WrappedMessage message={messages.editImageModalImageDescriptionDescription} />
|
|
409
425
|
{' '}
|
|
410
426
|
{this.getLearnMoreLink()}
|
|
427
|
+
{' '}
|
|
428
|
+
<WrappedMessage message={messages.editImageModalImageDecorativeDescription} />
|
|
411
429
|
</React.Fragment>
|
|
412
430
|
);
|
|
413
431
|
|
|
@@ -422,8 +440,8 @@ export default class EditImageModal extends React.Component {
|
|
|
422
440
|
}}
|
|
423
441
|
variantIconDescription={<WrappedMessage message={messages.editImageModalFormError} />}
|
|
424
442
|
>
|
|
425
|
-
<div className=
|
|
426
|
-
<div className=
|
|
443
|
+
<div className={styles['dimensions-row']}>
|
|
444
|
+
<div className={styles['dimension-field']}>
|
|
427
445
|
<InputText
|
|
428
446
|
name="imageWidth"
|
|
429
447
|
label={
|
|
@@ -437,10 +455,8 @@ export default class EditImageModal extends React.Component {
|
|
|
437
455
|
onBlur={this.onImageDimensionBlur('width')}
|
|
438
456
|
/>
|
|
439
457
|
</div>
|
|
440
|
-
<
|
|
441
|
-
|
|
442
|
-
</div>
|
|
443
|
-
<div className="col">
|
|
458
|
+
<span className={styles['dimensions-separator']} aria-hidden="true">x</span>
|
|
459
|
+
<div className={styles['dimension-field']}>
|
|
444
460
|
<InputText
|
|
445
461
|
name={imageHeightID}
|
|
446
462
|
label={
|
|
@@ -559,16 +575,16 @@ export default class EditImageModal extends React.Component {
|
|
|
559
575
|
|
|
560
576
|
getModalHeader = () => {
|
|
561
577
|
let header;
|
|
562
|
-
if (this.state.pageNumber ===
|
|
578
|
+
if (this.state.pageNumber === 2 || this.state.editingExisting) {
|
|
563
579
|
header = (
|
|
564
580
|
<WrappedMessage
|
|
565
|
-
message={messages.
|
|
581
|
+
message={messages.editImageModalEditTitle}
|
|
566
582
|
/>
|
|
567
583
|
);
|
|
568
|
-
} else
|
|
584
|
+
} else {
|
|
569
585
|
header = (
|
|
570
586
|
<WrappedMessage
|
|
571
|
-
message={messages.
|
|
587
|
+
message={messages.editImageModalInsertTitle}
|
|
572
588
|
/>
|
|
573
589
|
);
|
|
574
590
|
}
|
|
@@ -594,11 +610,7 @@ export default class EditImageModal extends React.Component {
|
|
|
594
610
|
case pageTypes.NORMAL:
|
|
595
611
|
return (<WrappedAssetsList />);
|
|
596
612
|
case pageTypes.NO_ASSETS:
|
|
597
|
-
return
|
|
598
|
-
<div className="mt-3">
|
|
599
|
-
<WrappedMessage message={messages.editImageModalAssetsListNoAssetsMessage} tagName="h3" />
|
|
600
|
-
</div>
|
|
601
|
-
);
|
|
613
|
+
return null;
|
|
602
614
|
case pageTypes.NO_RESULTS:
|
|
603
615
|
return (
|
|
604
616
|
<React.Fragment>
|
|
@@ -649,7 +661,7 @@ export default class EditImageModal extends React.Component {
|
|
|
649
661
|
{this.getImageSelectionModalBodyAssetsList(this.state.assetsPageType)}
|
|
650
662
|
</div>
|
|
651
663
|
</div>
|
|
652
|
-
{this.isAssetSelected() && (
|
|
664
|
+
{(this.isAssetSelected() || this.state.imageSource) && (
|
|
653
665
|
<div className="row mt-3">
|
|
654
666
|
<div className="col">
|
|
655
667
|
{/* Hidden image to load dimensions */}
|
|
@@ -663,7 +675,7 @@ export default class EditImageModal extends React.Component {
|
|
|
663
675
|
style={{ display: 'none' }}
|
|
664
676
|
/>
|
|
665
677
|
)}
|
|
666
|
-
<form ref={this.setImageFormRef}>
|
|
678
|
+
<form className={styles['image-fields']} ref={this.setImageFormRef}>
|
|
667
679
|
{this.getImageDescriptionInput()}
|
|
668
680
|
{this.getImageDimensionsInput()}
|
|
669
681
|
</form>
|
|
@@ -684,7 +696,7 @@ export default class EditImageModal extends React.Component {
|
|
|
684
696
|
{this.getImagePreview()}
|
|
685
697
|
</div>
|
|
686
698
|
<div className="col">
|
|
687
|
-
<form ref={this.setImageFormRef}>
|
|
699
|
+
<form className={styles['image-fields']} ref={this.setImageFormRef}>
|
|
688
700
|
{this.getImageDescriptionInput()}
|
|
689
701
|
{this.getImageDimensionsInput()}
|
|
690
702
|
</form>
|
|
@@ -696,12 +708,7 @@ export default class EditImageModal extends React.Component {
|
|
|
696
708
|
getModalButtons = () => {
|
|
697
709
|
let buttons;
|
|
698
710
|
if (this.state.pageNumber === 1) {
|
|
699
|
-
|
|
700
|
-
if (this.isAssetSelected()) {
|
|
701
|
-
buttons = this.getInsertImageButton();
|
|
702
|
-
} else {
|
|
703
|
-
buttons = this.getNextPageButton();
|
|
704
|
-
}
|
|
711
|
+
buttons = this.getInsertImageButton();
|
|
705
712
|
} else if (this.state.pageNumber === 2) {
|
|
706
713
|
buttons = this.getInsertImageButton();
|
|
707
714
|
}
|
|
@@ -742,6 +749,7 @@ export default class EditImageModal extends React.Component {
|
|
|
742
749
|
/>
|
|
743
750
|
}
|
|
744
751
|
buttonType="primary"
|
|
752
|
+
disabled={!this.isAssetSelected() && !this.state.imageSource}
|
|
745
753
|
onClick={this.onInsertImageButtonClick}
|
|
746
754
|
/>
|
|
747
755
|
);
|
|
@@ -785,16 +793,15 @@ export default class EditImageModal extends React.Component {
|
|
|
785
793
|
} : {},
|
|
786
794
|
imageSource: eventSource || '',
|
|
787
795
|
imageStyle: event.detail.style || '',
|
|
796
|
+
editingExisting: !isEventSourceEmpty,
|
|
788
797
|
// if existing img had a source, assume it could be loaded and show the image preview
|
|
789
798
|
isImageLoaded: !!eventSource,
|
|
790
799
|
isModalOpen: true,
|
|
791
|
-
pageNumber:
|
|
792
|
-
shouldShowPreviousButton:
|
|
800
|
+
pageNumber: 1,
|
|
801
|
+
shouldShowPreviousButton: false,
|
|
793
802
|
}));
|
|
794
803
|
|
|
795
|
-
|
|
796
|
-
this.props.getAssets({ assetTypes: { Images: true }, pageSize: 1000 }, this.props.courseDetails);
|
|
797
|
-
}
|
|
804
|
+
this.props.getAssets({ assetTypes: { Images: true }, pageSize: 1000 }, this.props.courseDetails);
|
|
798
805
|
}
|
|
799
806
|
|
|
800
807
|
validateImageDescription = () => {
|
|
@@ -145,12 +145,13 @@
|
|
|
145
145
|
"editImageModalFormValidImageDescription": "Add an image description or specify that the image is decorative only.",
|
|
146
146
|
"editImageModalFormValidImageDimensions": "Image dimensions must be positive numbers.",
|
|
147
147
|
"editImageModalImageDescriptionDescription": "Alternative text for users who cannot view the image, such as \"The sky with clouds\".",
|
|
148
|
-
"editImageModalImageDescriptionLabel": "Image Description
|
|
148
|
+
"editImageModalImageDescriptionLabel": "Image Description",
|
|
149
|
+
"editImageModalImageDecorativeDescription": "If this image is purely decorative, it does not require alternative text.",
|
|
149
150
|
"editImageModalImageDescriptionLegend": "Image Description",
|
|
150
151
|
"editImageModalDimensionsLegend": "Image Dimensions",
|
|
151
152
|
"editImageModalImageHeight": "Height",
|
|
152
153
|
"editImageModalImagePreviewText": "Image Preview",
|
|
153
|
-
"editImageModalInsertImageButton": "
|
|
154
|
+
"editImageModalInsertImageButton": "Save",
|
|
154
155
|
"editImageModalLearnMore": "Learn more.",
|
|
155
156
|
"editImageModalLockImageProportionsCheckboxLabel": "Lock proportions",
|
|
156
157
|
"editImageModalImageWidth": "Width",
|