@configuratorware/configurator-frontendgui 1.46.10 → 1.47.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/App/Modules/Creator/Components/Option/index.js +2 -1
- package/App/Modules/Designer/Components/ColorPalettes/ColorPalettesSearch.js +1 -0
- package/App/Modules/Designer/Components/ColorPalettes/index.js +2 -0
- package/App/Modules/Designer/Components/DesignAreaControlbox/index.js +2 -0
- package/App/Modules/Designer/Components/DesignerSelectionToolbox/CustomFontOverlay.js +2 -1
- package/App/Modules/Designer/Components/ImageColorize/index.js +1 -0
- package/App/Modules/Designer/Components/ImageEditDialog/ImageUpload.js +3 -1
- package/App/Modules/Designer/Components/ImageEditDialog/index.js +32 -2
- package/App/Modules/Designer/Components/TextControlbox/index.js +2 -0
- package/App/Modules/Designer/Containers/ImageEditDialog.js +6 -2
- package/App/Reducers/Configurator/Actions.js +1 -0
- package/App/Reducers/ImageGallery/Actions.js +11 -2
- package/App/Reducers/ImageGallery/Reducer.js +8 -1
- package/App/Services/DesignerService.js +11 -6
- package/App/Shared/Components/AcceptDesign/index.js +1 -0
- package/App/Shared/Components/AddToBasket/index.js +1 -0
- package/App/Shared/Components/ReceiveOfferForm/index.js +5 -0
- package/App/configuration.js +1 -0
- package/package.json +4 -4
- package/public/translations/de_DE.json +3 -2
- package/public/translations/en_GB.json +3 -2
- package/src/App/Modules/Creator/Components/Option/__snapshots__/index.test.js.snap +1 -0
- package/src/App/Modules/Creator/Components/Option/index.js +1 -0
- package/src/App/Modules/Designer/Components/ColorPalettes/ColorPalettesSearch.js +1 -0
- package/src/App/Modules/Designer/Components/ColorPalettes/index.js +2 -0
- package/src/App/Modules/Designer/Components/DesignAreaControlbox/index.js +2 -0
- package/src/App/Modules/Designer/Components/DesignerSelectionToolbox/CustomFontOverlay.js +1 -0
- package/src/App/Modules/Designer/Components/ImageColorize/__snapshots__/ImageColorize.test.js.snap +2 -0
- package/src/App/Modules/Designer/Components/ImageColorize/index.js +1 -0
- package/src/App/Modules/Designer/Components/ImageEditDialog/ImageUpload.js +2 -0
- package/src/App/Modules/Designer/Components/ImageEditDialog/index.js +34 -0
- package/src/App/Modules/Designer/Components/TextControlbox/__snapshots__/index.test.jsx.snap +2 -0
- package/src/App/Modules/Designer/Components/TextControlbox/index.js +2 -0
- package/src/App/Modules/Designer/Containers/ImageEditDialog.js +6 -0
- package/src/App/Reducers/Configurator/Actions.js +1 -0
- package/src/App/Reducers/ImageGallery/Actions.js +9 -1
- package/src/App/Reducers/ImageGallery/Reducer.js +7 -0
- package/src/App/Services/DesignerService.js +6 -0
- package/src/App/Shared/Components/AcceptDesign/index.js +1 -0
- package/src/App/Shared/Components/AddToBasket/index.js +1 -0
- package/src/App/Shared/Components/ReceiveOfferForm/__snapshots__/index.test.jsx.snap +10 -0
- package/src/App/Shared/Components/ReceiveOfferForm/index.js +5 -0
- package/src/App/configuration.js +1 -0
|
@@ -408,7 +408,8 @@ var Option = function Option(_ref) {
|
|
|
408
408
|
label: '',
|
|
409
409
|
value: inputText,
|
|
410
410
|
onChange: handleTextInputChange,
|
|
411
|
-
disabled: !selected
|
|
411
|
+
disabled: !selected,
|
|
412
|
+
translate: "no"
|
|
412
413
|
});
|
|
413
414
|
};
|
|
414
415
|
var getRootClassName = function getRootClassName() {
|
|
@@ -102,6 +102,7 @@ var ColorPalettesSearch = exports.ColorPalettesSearch = (0, _styles.withStyles)(
|
|
|
102
102
|
onChange: props.changeText,
|
|
103
103
|
onKeyUp: keyUp,
|
|
104
104
|
margin: "normal",
|
|
105
|
+
translate: "no",
|
|
105
106
|
InputProps: {
|
|
106
107
|
endAdornment: /*#__PURE__*/_react["default"].createElement(_InputAdornment["default"], {
|
|
107
108
|
position: "end"
|
|
@@ -584,6 +584,7 @@ var ColorPalettes = /*#__PURE__*/function (_React$Component) {
|
|
|
584
584
|
},
|
|
585
585
|
fullWidth: true,
|
|
586
586
|
value: colorPalette.title,
|
|
587
|
+
translate: "no",
|
|
587
588
|
InputProps: {
|
|
588
589
|
classes: {
|
|
589
590
|
input: classes.outlinedInput,
|
|
@@ -656,6 +657,7 @@ var ColorPalettes = /*#__PURE__*/function (_React$Component) {
|
|
|
656
657
|
variant: "outlined",
|
|
657
658
|
label: (0, _i18n.t)('colorPalettes.colorCode'),
|
|
658
659
|
placeholder: (0, _i18n.t)('colorPalettes.colorSpecify'),
|
|
660
|
+
translate: "no",
|
|
659
661
|
fullWidth: true,
|
|
660
662
|
InputProps: {
|
|
661
663
|
classes: {
|
|
@@ -308,6 +308,7 @@ var DesignAreaControlbox = /*#__PURE__*/function (_React$Component) {
|
|
|
308
308
|
},
|
|
309
309
|
fullWidth: true,
|
|
310
310
|
value: area.title,
|
|
311
|
+
translate: "no",
|
|
311
312
|
InputProps: {
|
|
312
313
|
classes: {
|
|
313
314
|
input: classes.outlinedInput,
|
|
@@ -353,6 +354,7 @@ var DesignAreaControlbox = /*#__PURE__*/function (_React$Component) {
|
|
|
353
354
|
},
|
|
354
355
|
fullWidth: true,
|
|
355
356
|
value: productionMethod.title,
|
|
357
|
+
translate: "no",
|
|
356
358
|
InputProps: {
|
|
357
359
|
classes: {
|
|
358
360
|
input: classes.outlinedInput,
|
|
@@ -112,7 +112,8 @@ var CustomFontOverlay = exports.CustomFontOverlay = function CustomFontOverlay(p
|
|
|
112
112
|
classes: {
|
|
113
113
|
input: classes.customFieldInput
|
|
114
114
|
}
|
|
115
|
-
}
|
|
115
|
+
},
|
|
116
|
+
translate: "no"
|
|
116
117
|
}))), /*#__PURE__*/_react["default"].createElement(_DialogActions["default"], null, /*#__PURE__*/_react["default"].createElement(_MainButton["default"], {
|
|
117
118
|
onClick: closeOverlay,
|
|
118
119
|
size: "medium",
|
|
@@ -456,6 +456,7 @@ var ImageColorize = /*#__PURE__*/function (_React$Component) {
|
|
|
456
456
|
return !disableInputs && _this2.onEditClick(colorKey);
|
|
457
457
|
},
|
|
458
458
|
value: _this2.getColorName(vectorizeColorsMap[colorKey]),
|
|
459
|
+
translate: "no",
|
|
459
460
|
InputProps: {
|
|
460
461
|
disableUnderline: true
|
|
461
462
|
},
|
|
@@ -351,7 +351,8 @@ var ImageEditDialog = /*#__PURE__*/function (_React$Component) {
|
|
|
351
351
|
ownershipChecked: false,
|
|
352
352
|
ownershipErrorVisible: false,
|
|
353
353
|
error: null,
|
|
354
|
-
imageData: null
|
|
354
|
+
imageData: null,
|
|
355
|
+
uploadDelayed: false
|
|
355
356
|
};
|
|
356
357
|
_this.ownershipGroup = /*#__PURE__*/_react["default"].createRef();
|
|
357
358
|
_this.dropZone = /*#__PURE__*/_react["default"].createRef();
|
|
@@ -395,6 +396,7 @@ var ImageEditDialog = /*#__PURE__*/function (_React$Component) {
|
|
|
395
396
|
onChange: this.handleInputChange
|
|
396
397
|
}))), selectedFile !== null && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, imageData && /*#__PURE__*/_react["default"].createElement("img", {
|
|
397
398
|
className: "".concat(classes.imagePreview, " ").concat(imageData.isBright ? classes.checkerBackground : ''),
|
|
399
|
+
alt: selectedFile.name,
|
|
398
400
|
src: imageData.src
|
|
399
401
|
}), error === null ? /*#__PURE__*/_react["default"].createElement("div", {
|
|
400
402
|
className: classes.uploadTextIconContainer
|
|
@@ -302,6 +302,29 @@ var styles = function styles(theme) {
|
|
|
302
302
|
},
|
|
303
303
|
buttonContent: {
|
|
304
304
|
color: theme.palette.primary.darkText
|
|
305
|
+
},
|
|
306
|
+
delayMessageContainer: {
|
|
307
|
+
position: 'absolute',
|
|
308
|
+
top: 0,
|
|
309
|
+
left: 0,
|
|
310
|
+
bottom: 0,
|
|
311
|
+
right: 0,
|
|
312
|
+
display: 'flex',
|
|
313
|
+
alignItems: 'center',
|
|
314
|
+
zIndex: 3,
|
|
315
|
+
backgroundColor: 'transparent'
|
|
316
|
+
},
|
|
317
|
+
delayMessageInner: {
|
|
318
|
+
flex: 1,
|
|
319
|
+
alignItems: 'center',
|
|
320
|
+
flexDirection: 'column',
|
|
321
|
+
display: 'flex',
|
|
322
|
+
paddingTop: 72
|
|
323
|
+
},
|
|
324
|
+
delayMessage: {
|
|
325
|
+
color: theme.palette.text.secondary,
|
|
326
|
+
fontSize: 18,
|
|
327
|
+
fontWeight: 'bold'
|
|
305
328
|
}
|
|
306
329
|
};
|
|
307
330
|
};
|
|
@@ -397,7 +420,8 @@ var ImageEditDialog = /*#__PURE__*/function (_React$Component) {
|
|
|
397
420
|
onNewUploadClick = _this$props2.onNewUploadClick,
|
|
398
421
|
uploadImage = _this$props2.uploadImage,
|
|
399
422
|
selectUserImage = _this$props2.selectUserImage,
|
|
400
|
-
showUploadPanel = _this$props2.showUploadPanel
|
|
423
|
+
showUploadPanel = _this$props2.showUploadPanel,
|
|
424
|
+
uploadDelayed = _this$props2.uploadDelayed;
|
|
401
425
|
var userImagesIndex = this.state.userImagesIndex;
|
|
402
426
|
var userImagesIndexes = [];
|
|
403
427
|
for (var i = userImagesIndex; i < userImages.length && i < userImagesIndex + 3; i++) {
|
|
@@ -416,7 +440,13 @@ var ImageEditDialog = /*#__PURE__*/function (_React$Component) {
|
|
|
416
440
|
scroll: "paper"
|
|
417
441
|
}, /*#__PURE__*/_react["default"].createElement(_DialogContent["default"], {
|
|
418
442
|
className: "".concat(classes.dialogContent, " ").concat(colorPreviewBlockActive ? 'color-preview-block' : '')
|
|
419
|
-
}, loaderComponent, /*#__PURE__*/_react["default"].createElement(
|
|
443
|
+
}, loaderComponent, uploadDelayed && /*#__PURE__*/_react["default"].createElement("div", {
|
|
444
|
+
className: classes.delayMessageContainer
|
|
445
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
446
|
+
className: classes.delayMessageInner
|
|
447
|
+
}, /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
|
|
448
|
+
className: classes.delayMessage
|
|
449
|
+
}, (0, _i18n.t)('imageEditDialog.uploadDelayed')))), /*#__PURE__*/_react["default"].createElement(_Grid["default"], {
|
|
420
450
|
container: true,
|
|
421
451
|
className: classes.rootContainerWrapper
|
|
422
452
|
}, showNewUploadArea && /*#__PURE__*/_react["default"].createElement(_Grid["default"], {
|
|
@@ -295,6 +295,7 @@ var TextControlbox = /*#__PURE__*/function (_React$Component2) {
|
|
|
295
295
|
margin: "normal",
|
|
296
296
|
fullWidth: true,
|
|
297
297
|
variant: "outlined",
|
|
298
|
+
translate: "no",
|
|
298
299
|
multiline: true,
|
|
299
300
|
editorBackgroundColor: editorBackgroundColor
|
|
300
301
|
}, renderEditorComponent(_this2.props)) : /*#__PURE__*/_react["default"].createElement(_TextField["default"], {
|
|
@@ -305,6 +306,7 @@ var TextControlbox = /*#__PURE__*/function (_React$Component2) {
|
|
|
305
306
|
margin: "normal",
|
|
306
307
|
fullWidth: true,
|
|
307
308
|
variant: "outlined",
|
|
309
|
+
translate: "no",
|
|
308
310
|
multiline: true,
|
|
309
311
|
rowsMax: 2,
|
|
310
312
|
InputLabelProps: {
|
|
@@ -753,7 +753,8 @@ var ImageEditDialogContainer = exports.ImageEditDialogContainer = /*#__PURE__*/f
|
|
|
753
753
|
customControlElements = _this$props6.customControlElements,
|
|
754
754
|
checkOwnership = _this$props6.checkOwnership,
|
|
755
755
|
designProductionMethod = _this$props6.designProductionMethod,
|
|
756
|
-
client = _this$props6.client
|
|
756
|
+
client = _this$props6.client,
|
|
757
|
+
uploadDelayed = _this$props6.uploadDelayed;
|
|
757
758
|
var _this$state3 = this.state,
|
|
758
759
|
preview = _this$state3.preview,
|
|
759
760
|
clipping = _this$state3.clipping,
|
|
@@ -785,6 +786,7 @@ var ImageEditDialogContainer = exports.ImageEditDialogContainer = /*#__PURE__*/f
|
|
|
785
786
|
backgroundSelected: clipping,
|
|
786
787
|
preview: preview,
|
|
787
788
|
colorPickerEnabled: !!clipping,
|
|
789
|
+
uploadDelayed: uploadDelayed,
|
|
788
790
|
continueButtonDisabled: continueButtonDisabled,
|
|
789
791
|
continueClick: this.continueClick,
|
|
790
792
|
showWarningMessage: showWarningMessage,
|
|
@@ -892,6 +894,7 @@ var mapStateToProps = function mapStateToProps(state) {
|
|
|
892
894
|
var initialColorMaxAmount = (0, _Selectors2.getInitialMaxColorAmount)(state);
|
|
893
895
|
var colorPreviewRequirementFulfilled = (0, _Selectors3.isColorPreviewCompatible)(state, userImage);
|
|
894
896
|
var client = (0, _Selectors5.getClient)((0, _Selectors5.getConfigurator)(state));
|
|
897
|
+
var uploadDelayed = imageGallery.uploadDelayed;
|
|
895
898
|
return {
|
|
896
899
|
Component: open ? ImageEditDialogContainer : function () {
|
|
897
900
|
return null;
|
|
@@ -920,7 +923,8 @@ var mapStateToProps = function mapStateToProps(state) {
|
|
|
920
923
|
initialColorMaxAmount: initialColorMaxAmount,
|
|
921
924
|
colorPreviewRequirementFulfilled: colorPreviewRequirementFulfilled,
|
|
922
925
|
designProductionMethod: designProductionMethod,
|
|
923
|
-
client: client
|
|
926
|
+
client: client,
|
|
927
|
+
uploadDelayed: uploadDelayed
|
|
924
928
|
};
|
|
925
929
|
};
|
|
926
930
|
var mapDispatchToProps = function mapDispatchToProps(dispatch) {
|
|
@@ -676,6 +676,7 @@ var fetchInitialConfiguration = exports.fetchInitialConfiguration = function fet
|
|
|
676
676
|
dispatch((0, _Actions2.reportConfigurationNotFoundError)((0, _i18n.t)('loadConfiguration.error.loadingFailed')));
|
|
677
677
|
} else {
|
|
678
678
|
_ServiceLocator.Services.analytics.triggerEvent(_Constant.EventTypes.load_item, configuration.data.item.identifier);
|
|
679
|
+
dispatch(setLoadCode(null));
|
|
679
680
|
}
|
|
680
681
|
});
|
|
681
682
|
} else if ((0, _configuration.getConf)('loadVariantsFirst')) {
|
|
@@ -4,7 +4,7 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.uploadImage = exports.updateImage = exports.setSelectedImageData = exports.setSelectedImageByIdentifier = exports.setSelectedImage = exports.setModeToEdit = exports.setModeToAdd = exports.selectTags = exports.selectTag = exports.receiveGalleryTags = exports.getGalleryUrlForTags = exports.fetchTags = exports.fetchGallery = exports.editImage = exports.dismissError = exports.commitChanges = exports.addImagesFromDesignArea = exports.addGalleryImageToUserImages = exports.WN_UPLOAD_IMAGE = exports.WN_LOAD_TAGS = exports.WN_LOAD_IMAGES = exports.URL_UPLOAD = exports.URL_TAGS = exports.URL_GALLERY = exports.UPDATE_IMAGE = exports.SET_SELECTED_IMAGE = exports.SET_MODE = exports.SELECT_GALLERY_TAGS = exports.SELECT_GALLERY_TAG = exports.RECEIVE_IMAGE_UPLOAD_DATA = exports.RECEIVE_GALLERY_TAGS = exports.RECEIVE_GALLERY = exports.ImageGalleryModes = exports.DISMISS_ERROR = exports.COMMIT_CHANGES = exports.ADD_IMAGES_FROM_DESIGN_AREA = exports.ADD_GALLERY_IMAGE_TO_USER_IMAGES = void 0;
|
|
7
|
+
exports.uploadImage = exports.updateUploadDelayed = exports.updateImage = exports.setSelectedImageData = exports.setSelectedImageByIdentifier = exports.setSelectedImage = exports.setModeToEdit = exports.setModeToAdd = exports.selectTags = exports.selectTag = exports.receiveGalleryTags = exports.getGalleryUrlForTags = exports.fetchTags = exports.fetchGallery = exports.editImage = exports.dismissError = exports.commitChanges = exports.addImagesFromDesignArea = exports.addGalleryImageToUserImages = exports.WN_UPLOAD_IMAGE = exports.WN_LOAD_TAGS = exports.WN_LOAD_IMAGES = exports.URL_UPLOAD = exports.URL_TAGS = exports.URL_GALLERY = exports.UPDATE_UPLOAD_DELAYED = exports.UPDATE_IMAGE = exports.SET_SELECTED_IMAGE = exports.SET_MODE = exports.SELECT_GALLERY_TAGS = exports.SELECT_GALLERY_TAG = exports.RECEIVE_IMAGE_UPLOAD_DATA = exports.RECEIVE_GALLERY_TAGS = exports.RECEIVE_GALLERY = exports.ImageGalleryModes = exports.DISMISS_ERROR = exports.COMMIT_CHANGES = exports.ADD_IMAGES_FROM_DESIGN_AREA = exports.ADD_GALLERY_IMAGE_TO_USER_IMAGES = void 0;
|
|
8
8
|
var _Actions = require("../Actions");
|
|
9
9
|
var _Actions2 = require("../UI/Actions");
|
|
10
10
|
var _Selectors = require("./Selectors");
|
|
@@ -28,6 +28,7 @@ var RECEIVE_IMAGE_UPLOAD_DATA = exports.RECEIVE_IMAGE_UPLOAD_DATA = 'imageGaller
|
|
|
28
28
|
var WN_LOAD_IMAGES = exports.WN_LOAD_IMAGES = 'imageGallery/LOAD_IMAGES';
|
|
29
29
|
var WN_LOAD_TAGS = exports.WN_LOAD_TAGS = 'imageGallery/LOAD_TAGS';
|
|
30
30
|
var WN_UPLOAD_IMAGE = exports.WN_UPLOAD_IMAGE = 'imageGallery/UPLOAD_IMAGE';
|
|
31
|
+
var UPDATE_UPLOAD_DELAYED = exports.UPDATE_UPLOAD_DELAYED = 'imageGallery/UPDATE_UPLOAD_DELAYED';
|
|
31
32
|
var URL_TAGS = exports.URL_TAGS = 'imagegalleryimage/tags';
|
|
32
33
|
var URL_GALLERY = exports.URL_GALLERY = 'imagegalleryimage?&tags={tag}';
|
|
33
34
|
var URL_UPLOAD = exports.URL_UPLOAD = 'userimages/designer/edit';
|
|
@@ -110,6 +111,12 @@ var updateImage = exports.updateImage = function updateImage(identifier, imageDa
|
|
|
110
111
|
});
|
|
111
112
|
};
|
|
112
113
|
};
|
|
114
|
+
var updateUploadDelayed = exports.updateUploadDelayed = function updateUploadDelayed(uploadDelayed) {
|
|
115
|
+
return {
|
|
116
|
+
type: UPDATE_UPLOAD_DELAYED,
|
|
117
|
+
uploadDelayed: uploadDelayed
|
|
118
|
+
};
|
|
119
|
+
};
|
|
113
120
|
var uploadImage = exports.uploadImage = function uploadImage(file) {
|
|
114
121
|
return (0, _Actions2.createAsyncTask)(WN_UPLOAD_IMAGE, /*#__PURE__*/function () {
|
|
115
122
|
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(dispatch, getState) {
|
|
@@ -126,7 +133,9 @@ var uploadImage = exports.uploadImage = function uploadImage(file) {
|
|
|
126
133
|
_context.next = 8;
|
|
127
134
|
return dispatch((0, _Actions.postDataAsync)(URL_UPLOAD, data, (0, _Actions.createDefaultReceiver)(RECEIVE_IMAGE_UPLOAD_DATA, {
|
|
128
135
|
vectorizedLogoMandatory: vectorizedLogoMandatory
|
|
129
|
-
}), {
|
|
136
|
+
}), {
|
|
137
|
+
timeout: 180000
|
|
138
|
+
}, {}, {
|
|
130
139
|
useLocalErrorHandling: true
|
|
131
140
|
}));
|
|
132
141
|
case 8:
|
|
@@ -56,7 +56,8 @@ var initialState = {
|
|
|
56
56
|
userImages: [],
|
|
57
57
|
selectedImage: null,
|
|
58
58
|
lastErrorCode: null,
|
|
59
|
-
mode: null
|
|
59
|
+
mode: null,
|
|
60
|
+
uploadDelayed: false
|
|
60
61
|
};
|
|
61
62
|
function imageGalleryReducer() {
|
|
62
63
|
var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;
|
|
@@ -254,6 +255,12 @@ function imageGalleryReducer() {
|
|
|
254
255
|
lastErrorCode: null
|
|
255
256
|
});
|
|
256
257
|
}
|
|
258
|
+
case actionTypes.UPDATE_UPLOAD_DELAYED:
|
|
259
|
+
{
|
|
260
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
261
|
+
uploadDelayed: action.uploadDelayed
|
|
262
|
+
});
|
|
263
|
+
}
|
|
257
264
|
default:
|
|
258
265
|
return state;
|
|
259
266
|
}
|
|
@@ -235,27 +235,32 @@ var DesignerService = exports["default"] = /*#__PURE__*/function () {
|
|
|
235
235
|
key: "uploadFile",
|
|
236
236
|
value: function () {
|
|
237
237
|
var _uploadFile = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(file) {
|
|
238
|
-
var response, url, term;
|
|
238
|
+
var timeout, response, url, term;
|
|
239
239
|
return _regeneratorRuntime().wrap(function _callee5$(_context5) {
|
|
240
240
|
while (1) switch (_context5.prev = _context5.next) {
|
|
241
241
|
case 0:
|
|
242
|
-
|
|
242
|
+
timeout = setTimeout(function () {
|
|
243
|
+
_ServiceLocator.Services.store.dispatch((0, _Actions.updateUploadDelayed)(true));
|
|
244
|
+
}, 10000);
|
|
245
|
+
_context5.next = 3;
|
|
243
246
|
return _ServiceLocator.Services.store.dispatch((0, _Actions.uploadImage)(file));
|
|
244
|
-
case
|
|
247
|
+
case 3:
|
|
245
248
|
response = _context5.sent;
|
|
249
|
+
clearTimeout(timeout);
|
|
246
250
|
url = (0, _get["default"])(response, 'data.preview.url');
|
|
247
251
|
term = (0, _get["default"])(response, 'data.message');
|
|
248
252
|
if (term) {
|
|
249
253
|
_ServiceLocator.Services.ui.alertMessage((0, _i18n.t)(term));
|
|
250
254
|
}
|
|
251
255
|
if (url) {
|
|
252
|
-
_context5.next =
|
|
256
|
+
_context5.next = 10;
|
|
253
257
|
break;
|
|
254
258
|
}
|
|
255
259
|
throw new Error('Preview image url is not specified!');
|
|
256
|
-
case
|
|
260
|
+
case 10:
|
|
261
|
+
_ServiceLocator.Services.store.dispatch((0, _Actions.updateUploadDelayed)(false));
|
|
257
262
|
return _context5.abrupt("return", "".concat((0, _configuration.getConf)('network.host')).concat(url));
|
|
258
|
-
case
|
|
263
|
+
case 12:
|
|
259
264
|
case "end":
|
|
260
265
|
return _context5.stop();
|
|
261
266
|
}
|
|
@@ -211,6 +211,7 @@ var ReceiveOfferForm = /*#__PURE__*/function (_React$Component) {
|
|
|
211
211
|
label: (0, _i18n.t)('receiveOfferForm.name'),
|
|
212
212
|
margin: "dense",
|
|
213
213
|
variant: "outlined",
|
|
214
|
+
translate: "no",
|
|
214
215
|
fullWidth: true,
|
|
215
216
|
error: !!name.error,
|
|
216
217
|
helperText: getErrorMessage(name.error),
|
|
@@ -233,6 +234,7 @@ var ReceiveOfferForm = /*#__PURE__*/function (_React$Component) {
|
|
|
233
234
|
label: (0, _i18n.t)('receiveOfferForm.company'),
|
|
234
235
|
margin: "dense",
|
|
235
236
|
variant: "outlined",
|
|
237
|
+
translate: "no",
|
|
236
238
|
fullWidth: true,
|
|
237
239
|
error: !!company.error,
|
|
238
240
|
helperText: getErrorMessage(company.error),
|
|
@@ -310,6 +312,7 @@ var ReceiveOfferForm = /*#__PURE__*/function (_React$Component) {
|
|
|
310
312
|
label: (0, _i18n.t)('receiveOfferForm.city'),
|
|
311
313
|
margin: "dense",
|
|
312
314
|
variant: "outlined",
|
|
315
|
+
translate: "no",
|
|
313
316
|
fullWidth: true,
|
|
314
317
|
error: !!city.error,
|
|
315
318
|
helperText: getErrorMessage(city.error),
|
|
@@ -332,6 +335,7 @@ var ReceiveOfferForm = /*#__PURE__*/function (_React$Component) {
|
|
|
332
335
|
label: (0, _i18n.t)('receiveOfferForm.street'),
|
|
333
336
|
margin: "dense",
|
|
334
337
|
variant: "outlined",
|
|
338
|
+
translate: "no",
|
|
335
339
|
fullWidth: true,
|
|
336
340
|
error: !!street.error,
|
|
337
341
|
helperText: getErrorMessage(street.error),
|
|
@@ -354,6 +358,7 @@ var ReceiveOfferForm = /*#__PURE__*/function (_React$Component) {
|
|
|
354
358
|
label: (0, _i18n.t)('receiveOfferForm.country'),
|
|
355
359
|
margin: "dense",
|
|
356
360
|
variant: "outlined",
|
|
361
|
+
translate: "no",
|
|
357
362
|
fullWidth: true,
|
|
358
363
|
error: !!country.error,
|
|
359
364
|
helperText: getErrorMessage(country.error),
|
package/App/configuration.js
CHANGED
|
@@ -397,6 +397,7 @@ function setLanguage() {
|
|
|
397
397
|
}
|
|
398
398
|
applicationConfiguration.language = language.replace('_', '-');
|
|
399
399
|
_Api["default"].setLanguage(applicationConfiguration.language);
|
|
400
|
+
document.documentElement.lang = language.substring(0, 2);
|
|
400
401
|
(0, _Translations.initLanguage)(applicationConfiguration.language, applicationConfiguration.network.baseURL);
|
|
401
402
|
}
|
|
402
403
|
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@configuratorware/configurator-frontendgui",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.47.0",
|
|
4
4
|
"license": "UNLICENSED",
|
|
5
5
|
"private": false,
|
|
6
6
|
"main": "./index.js",
|
|
7
7
|
"dependencies": {
|
|
8
8
|
"@babel/polyfill": "^7.12.1",
|
|
9
|
-
"@configuratorware/scripts": "1.
|
|
9
|
+
"@configuratorware/scripts": "1.47.0",
|
|
10
10
|
"@material-ui/core": "^4.12.4",
|
|
11
11
|
"@material-ui/icons": "^4.11.3",
|
|
12
12
|
"@material-ui/lab": "^4.0.0-alpha.61",
|
|
@@ -36,8 +36,8 @@
|
|
|
36
36
|
"react-router-dom": "^5.3.4",
|
|
37
37
|
"react-swipeable": "^5.5.1",
|
|
38
38
|
"react-zoom-pan-pinch": "^2.1.3",
|
|
39
|
-
"redhotmagma-graphics-editor": "1.
|
|
40
|
-
"redhotmagma-visualization": "1.
|
|
39
|
+
"redhotmagma-graphics-editor": "1.47.0",
|
|
40
|
+
"redhotmagma-visualization": "1.47.0",
|
|
41
41
|
"redux": "^4.1.0",
|
|
42
42
|
"redux-logger": "^3.0.6",
|
|
43
43
|
"redux-persist": "^5.10.0",
|
|
@@ -104,7 +104,7 @@
|
|
|
104
104
|
"imageOwnershipError": "Bitte bestätigen, um fortzufahren",
|
|
105
105
|
"uploadSizeError": "Die gewählte Datei is größer als die maximal erlaubte Größe von %{uploadSize} MB",
|
|
106
106
|
"uploadFormatError": "Zulässige Bildformate: %{formats}",
|
|
107
|
-
"processingFailed": "
|
|
107
|
+
"processingFailed": "Bei der Verarbeitung der Bilddatei ist ein Problem aufgetreten. Ihre Bilddatei ist möglicherweise zu groß oder beschädigt.",
|
|
108
108
|
"termsAndConditions": "Ich habe die %{termsAndConditionsLink} gelesen und erkläre mich einverstanden.",
|
|
109
109
|
"termsAndConditionsLink": "",
|
|
110
110
|
"termsAndConditionsLinkLabel": "AGB",
|
|
@@ -327,7 +327,8 @@
|
|
|
327
327
|
"changeColorAmount": "Farbanzahl wählen",
|
|
328
328
|
"imageWithoutVectorization": "Das gewählte Produktionsverfahren „%{designProductionMethodName}“ ermöglicht den Druck mit beliebigen Farben. Eine Bearbeitung des Bildes ist also nicht notwendig. <br/> Sollten Sie dennoch wünschen, die Farben Ihres Bildes zu verändern, nutzen Sie die Funktion „Farben bearbeiten“",
|
|
329
329
|
"editColors": "Farben bearbeiten",
|
|
330
|
-
"resetButton": "Bearbeitung zurücksetzen"
|
|
330
|
+
"resetButton": "Bearbeitung zurücksetzen",
|
|
331
|
+
"uploadDelayed": "Bitte haben Sie Geduld, dieser Vorgang kann länger dauern!"
|
|
331
332
|
},
|
|
332
333
|
"vector_not_paths_only": "Bei eingebetteten Texten oder Bildern kann es zu Abweichungen in der Darstellung kommen. Um eine einheitliche Darstellung zu garantieren, sollten diese in Pfade umgewandelt werden.",
|
|
333
334
|
"errorTypes": {
|
|
@@ -104,7 +104,7 @@
|
|
|
104
104
|
"imageOwnershipError": "Please accept to confirm.",
|
|
105
105
|
"uploadSizeError": "The selected file is larger than the maximum allowed size of %{uploadSize} MB.",
|
|
106
106
|
"uploadFormatError": "Allowed file types: %{formats}",
|
|
107
|
-
"processingFailed": "
|
|
107
|
+
"processingFailed": "There was a problem in processing the image file. Your image file might be too huge or could be corrupted.",
|
|
108
108
|
"termsAndConditions": "I have read the %{termsAndConditionsLink} and agree to them.",
|
|
109
109
|
"termsAndConditionsLink": "",
|
|
110
110
|
"termsAndConditionsLinkLabel": "terms and conditions",
|
|
@@ -327,7 +327,8 @@
|
|
|
327
327
|
"imageWithoutVectorization": "The chosen production method „%{designProductionMethodName}“ allows printing with any colours. It is therefore not necessary to edit the image. <br/> Should you nevertheless wish to change the colours of your image, use the function „Edit colours“",
|
|
328
328
|
"editColors": "edit colors",
|
|
329
329
|
"resetButton": "Reset changes",
|
|
330
|
-
"pictureEmbroideryHint": "For visualization of the embroidery on the product, please activate color preview."
|
|
330
|
+
"pictureEmbroideryHint": "For visualization of the embroidery on the product, please activate color preview.",
|
|
331
|
+
"uploadDelayed": "Please be patient, this operation might take longer!"
|
|
331
332
|
},
|
|
332
333
|
"vector_not_paths_only": "Embedded texts or images can lead to anomalous results. To ensure a consistent display those embedded data should be converted to vectors.",
|
|
333
334
|
"errorTypes": {
|
|
@@ -325,6 +325,7 @@ exports[`Option renders with TextInput 1`] = `
|
|
|
325
325
|
</div>
|
|
326
326
|
<div
|
|
327
327
|
class="MuiFormControl-root MuiTextField-root Option-optionTextInput-148"
|
|
328
|
+
translate="no"
|
|
328
329
|
>
|
|
329
330
|
<div
|
|
330
331
|
class="MuiInputBase-root MuiInput-root MuiInput-underline Mui-disabled Mui-disabled MuiInputBase-formControl MuiInput-formControl"
|
|
@@ -591,6 +591,7 @@ class ColorPalettes extends React.Component {
|
|
|
591
591
|
inputProps={{ readOnly: true }}
|
|
592
592
|
fullWidth={true}
|
|
593
593
|
value={colorPalette.title}
|
|
594
|
+
translate="no"
|
|
594
595
|
InputProps={{
|
|
595
596
|
classes: {
|
|
596
597
|
input: classes.outlinedInput,
|
|
@@ -672,6 +673,7 @@ class ColorPalettes extends React.Component {
|
|
|
672
673
|
variant="outlined"
|
|
673
674
|
label={t('colorPalettes.colorCode')}
|
|
674
675
|
placeholder={t('colorPalettes.colorSpecify')}
|
|
676
|
+
translate="no"
|
|
675
677
|
fullWidth
|
|
676
678
|
InputProps={{
|
|
677
679
|
classes: {
|
|
@@ -356,6 +356,7 @@ class DesignAreaControlbox extends React.Component {
|
|
|
356
356
|
inputProps={{ readOnly: true }}
|
|
357
357
|
fullWidth={true}
|
|
358
358
|
value={area.title}
|
|
359
|
+
translate="no"
|
|
359
360
|
InputProps={{
|
|
360
361
|
classes: {
|
|
361
362
|
input: classes.outlinedInput,
|
|
@@ -422,6 +423,7 @@ class DesignAreaControlbox extends React.Component {
|
|
|
422
423
|
inputProps={{ readOnly: true }}
|
|
423
424
|
fullWidth={true}
|
|
424
425
|
value={productionMethod.title}
|
|
426
|
+
translate="no"
|
|
425
427
|
InputProps={{
|
|
426
428
|
classes: {
|
|
427
429
|
input: classes.outlinedInput,
|
package/src/App/Modules/Designer/Components/ImageColorize/__snapshots__/ImageColorize.test.js.snap
CHANGED
|
@@ -125,6 +125,7 @@ Array [
|
|
|
125
125
|
>
|
|
126
126
|
<div
|
|
127
127
|
class="MuiFormControl-root MuiTextField-root MuiFormControl-fullWidth"
|
|
128
|
+
translate="no"
|
|
128
129
|
>
|
|
129
130
|
<div
|
|
130
131
|
class="MuiInputBase-root MuiInput-root Mui-disabled Mui-disabled MuiInputBase-fullWidth MuiInput-fullWidth MuiInputBase-formControl MuiInput-formControl"
|
|
@@ -187,6 +188,7 @@ Array [
|
|
|
187
188
|
>
|
|
188
189
|
<div
|
|
189
190
|
class="MuiFormControl-root MuiTextField-root MuiFormControl-fullWidth"
|
|
191
|
+
translate="no"
|
|
190
192
|
>
|
|
191
193
|
<div
|
|
192
194
|
class="MuiInputBase-root MuiInput-root Mui-disabled Mui-disabled MuiInputBase-fullWidth MuiInput-fullWidth MuiInputBase-formControl MuiInput-formControl"
|
|
@@ -433,6 +433,7 @@ class ImageColorize extends React.Component {
|
|
|
433
433
|
fullWidth
|
|
434
434
|
onClick={() => !disableInputs && this.onEditClick(colorKey)}
|
|
435
435
|
value={this.getColorName(vectorizeColorsMap[colorKey])}
|
|
436
|
+
translate="no"
|
|
436
437
|
InputProps={{ disableUnderline: true }}
|
|
437
438
|
inputProps={{ className: classes.colorInput }}
|
|
438
439
|
/>
|
|
@@ -192,6 +192,7 @@ class ImageEditDialog extends React.Component {
|
|
|
192
192
|
ownershipErrorVisible: false,
|
|
193
193
|
error: null,
|
|
194
194
|
imageData: null,
|
|
195
|
+
uploadDelayed: false,
|
|
195
196
|
};
|
|
196
197
|
this.ownershipGroup = React.createRef();
|
|
197
198
|
this.dropZone = React.createRef();
|
|
@@ -355,6 +356,7 @@ class ImageEditDialog extends React.Component {
|
|
|
355
356
|
className={`${classes.imagePreview} ${
|
|
356
357
|
imageData.isBright ? classes.checkerBackground : ''
|
|
357
358
|
}`}
|
|
359
|
+
alt={selectedFile.name}
|
|
358
360
|
src={imageData.src}
|
|
359
361
|
/>
|
|
360
362
|
)}
|
|
@@ -316,6 +316,29 @@ const styles = theme => ({
|
|
|
316
316
|
buttonContent: {
|
|
317
317
|
color: theme.palette.primary.darkText,
|
|
318
318
|
},
|
|
319
|
+
delayMessageContainer: {
|
|
320
|
+
position: 'absolute',
|
|
321
|
+
top: 0,
|
|
322
|
+
left: 0,
|
|
323
|
+
bottom: 0,
|
|
324
|
+
right: 0,
|
|
325
|
+
display: 'flex',
|
|
326
|
+
alignItems: 'center',
|
|
327
|
+
zIndex: 3,
|
|
328
|
+
backgroundColor: 'transparent',
|
|
329
|
+
},
|
|
330
|
+
delayMessageInner: {
|
|
331
|
+
flex: 1,
|
|
332
|
+
alignItems: 'center',
|
|
333
|
+
flexDirection: 'column',
|
|
334
|
+
display: 'flex',
|
|
335
|
+
paddingTop: 72,
|
|
336
|
+
},
|
|
337
|
+
delayMessage: {
|
|
338
|
+
color: theme.palette.text.secondary,
|
|
339
|
+
fontSize: 18,
|
|
340
|
+
fontWeight: 'bold',
|
|
341
|
+
},
|
|
319
342
|
});
|
|
320
343
|
|
|
321
344
|
class ImageEditDialog extends React.Component {
|
|
@@ -344,6 +367,7 @@ class ImageEditDialog extends React.Component {
|
|
|
344
367
|
galleryHasImages: PropTypes.bool,
|
|
345
368
|
showWarningMessage: PropTypes.bool,
|
|
346
369
|
displayColorPreview: PropTypes.bool,
|
|
370
|
+
uploadDelayed: PropTypes.bool,
|
|
347
371
|
onOriginalImageAndColorPreviewToggleClick: PropTypes.func,
|
|
348
372
|
originalImagePreview: PropTypes.string,
|
|
349
373
|
embroideryNoticeRef: PropTypes.object,
|
|
@@ -456,6 +480,7 @@ class ImageEditDialog extends React.Component {
|
|
|
456
480
|
uploadImage,
|
|
457
481
|
selectUserImage,
|
|
458
482
|
showUploadPanel,
|
|
483
|
+
uploadDelayed,
|
|
459
484
|
} = this.props;
|
|
460
485
|
|
|
461
486
|
const { userImagesIndex } = this.state;
|
|
@@ -486,6 +511,15 @@ class ImageEditDialog extends React.Component {
|
|
|
486
511
|
}`}
|
|
487
512
|
>
|
|
488
513
|
{loaderComponent}
|
|
514
|
+
{uploadDelayed && (
|
|
515
|
+
<div className={classes.delayMessageContainer}>
|
|
516
|
+
<div className={classes.delayMessageInner}>
|
|
517
|
+
<Typography className={classes.delayMessage}>
|
|
518
|
+
{t('imageEditDialog.uploadDelayed')}
|
|
519
|
+
</Typography>
|
|
520
|
+
</div>
|
|
521
|
+
</div>
|
|
522
|
+
)}
|
|
489
523
|
<Grid container className={classes.rootContainerWrapper}>
|
|
490
524
|
{showNewUploadArea && (
|
|
491
525
|
<Grid item xs={12} sm={12} className={classes.imageEditDialogItem}>
|
package/src/App/Modules/Designer/Components/TextControlbox/__snapshots__/index.test.jsx.snap
CHANGED
|
@@ -16,6 +16,7 @@ exports[`renders a boxed component with the boxed prop 1`] = `
|
|
|
16
16
|
>
|
|
17
17
|
<div
|
|
18
18
|
class="MuiFormControl-root MuiTextField-root TextControlbox-textEditor-22 MuiFormControl-marginNormal MuiFormControl-fullWidth"
|
|
19
|
+
translate="no"
|
|
19
20
|
>
|
|
20
21
|
<label
|
|
21
22
|
class="MuiFormLabel-root MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-shrink MuiInputLabel-outlined MuiFormLabel-filled"
|
|
@@ -251,6 +252,7 @@ exports[`renders correctly 1`] = `
|
|
|
251
252
|
>
|
|
252
253
|
<div
|
|
253
254
|
class="MuiFormControl-root MuiTextField-root TextControlbox-textEditor-22 MuiFormControl-marginNormal MuiFormControl-fullWidth"
|
|
255
|
+
translate="no"
|
|
254
256
|
>
|
|
255
257
|
<label
|
|
256
258
|
class="MuiFormLabel-root MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-shrink MuiInputLabel-outlined MuiFormLabel-filled"
|
|
@@ -308,6 +308,7 @@ class TextControlbox extends React.Component {
|
|
|
308
308
|
margin="normal"
|
|
309
309
|
fullWidth
|
|
310
310
|
variant="outlined"
|
|
311
|
+
translate="no"
|
|
311
312
|
multiline
|
|
312
313
|
editorBackgroundColor={editorBackgroundColor}
|
|
313
314
|
>
|
|
@@ -322,6 +323,7 @@ class TextControlbox extends React.Component {
|
|
|
322
323
|
margin="normal"
|
|
323
324
|
fullWidth
|
|
324
325
|
variant="outlined"
|
|
326
|
+
translate="no"
|
|
325
327
|
multiline
|
|
326
328
|
rowsMax={2}
|
|
327
329
|
InputLabelProps={{ shrink: true }}
|
|
@@ -127,6 +127,8 @@ export class ImageEditDialogContainer extends React.Component {
|
|
|
127
127
|
customControlElements: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),
|
|
128
128
|
checkOwnership: PropTypes.bool,
|
|
129
129
|
client: PropTypes.object,
|
|
130
|
+
designProductionMethod: PropTypes.object,
|
|
131
|
+
uploadDelayed: PropTypes.bool,
|
|
130
132
|
};
|
|
131
133
|
|
|
132
134
|
static defaultProps = {
|
|
@@ -679,6 +681,7 @@ export class ImageEditDialogContainer extends React.Component {
|
|
|
679
681
|
checkOwnership,
|
|
680
682
|
designProductionMethod,
|
|
681
683
|
client,
|
|
684
|
+
uploadDelayed,
|
|
682
685
|
} = this.props;
|
|
683
686
|
const {
|
|
684
687
|
preview,
|
|
@@ -723,6 +726,7 @@ export class ImageEditDialogContainer extends React.Component {
|
|
|
723
726
|
backgroundSelected={clipping}
|
|
724
727
|
preview={preview}
|
|
725
728
|
colorPickerEnabled={!!clipping}
|
|
729
|
+
uploadDelayed={uploadDelayed}
|
|
726
730
|
continueButtonDisabled={continueButtonDisabled}
|
|
727
731
|
continueClick={this.continueClick}
|
|
728
732
|
showWarningMessage={showWarningMessage}
|
|
@@ -828,6 +832,7 @@ const mapStateToProps = state => {
|
|
|
828
832
|
const initialColorMaxAmount = getInitialMaxColorAmount(state);
|
|
829
833
|
const colorPreviewRequirementFulfilled = isColorPreviewCompatible(state, userImage);
|
|
830
834
|
const client = getClient(getConfigurator(state));
|
|
835
|
+
const uploadDelayed = imageGallery.uploadDelayed;
|
|
831
836
|
|
|
832
837
|
return {
|
|
833
838
|
Component: open ? ImageEditDialogContainer : () => null,
|
|
@@ -856,6 +861,7 @@ const mapStateToProps = state => {
|
|
|
856
861
|
colorPreviewRequirementFulfilled,
|
|
857
862
|
designProductionMethod,
|
|
858
863
|
client,
|
|
864
|
+
uploadDelayed,
|
|
859
865
|
};
|
|
860
866
|
};
|
|
861
867
|
|
|
@@ -620,6 +620,7 @@ export const fetchInitialConfiguration = () => (dispatch, getState) => {
|
|
|
620
620
|
dispatch(reportConfigurationNotFoundError(t('loadConfiguration.error.loadingFailed')));
|
|
621
621
|
} else {
|
|
622
622
|
Services.analytics.triggerEvent(EventTypes.load_item, configuration.data.item.identifier);
|
|
623
|
+
dispatch(setLoadCode(null));
|
|
623
624
|
}
|
|
624
625
|
});
|
|
625
626
|
} else if (getConf('loadVariantsFirst')) {
|
|
@@ -19,6 +19,7 @@ export const RECEIVE_IMAGE_UPLOAD_DATA = 'imageGallery/RECEIVE_IMAGE_UPLOAD_DATA
|
|
|
19
19
|
export const WN_LOAD_IMAGES = 'imageGallery/LOAD_IMAGES';
|
|
20
20
|
export const WN_LOAD_TAGS = 'imageGallery/LOAD_TAGS';
|
|
21
21
|
export const WN_UPLOAD_IMAGE = 'imageGallery/UPLOAD_IMAGE';
|
|
22
|
+
export const UPDATE_UPLOAD_DELAYED = 'imageGallery/UPDATE_UPLOAD_DELAYED';
|
|
22
23
|
|
|
23
24
|
export const URL_TAGS = 'imagegalleryimage/tags';
|
|
24
25
|
export const URL_GALLERY = 'imagegalleryimage?&tags={tag}';
|
|
@@ -97,6 +98,11 @@ export const updateImage = (identifier, imageDataPatch, immediateCommit = false)
|
|
|
97
98
|
});
|
|
98
99
|
};
|
|
99
100
|
|
|
101
|
+
export const updateUploadDelayed = uploadDelayed => ({
|
|
102
|
+
type: UPDATE_UPLOAD_DELAYED,
|
|
103
|
+
uploadDelayed,
|
|
104
|
+
});
|
|
105
|
+
|
|
100
106
|
export const uploadImage = file =>
|
|
101
107
|
createAsyncTask(WN_UPLOAD_IMAGE, async (dispatch, getState) => {
|
|
102
108
|
const designProductionMethod = getSelectedDesignProductionMethod(getState());
|
|
@@ -112,7 +118,9 @@ export const uploadImage = file =>
|
|
|
112
118
|
createDefaultReceiver(RECEIVE_IMAGE_UPLOAD_DATA, {
|
|
113
119
|
vectorizedLogoMandatory,
|
|
114
120
|
}),
|
|
115
|
-
{
|
|
121
|
+
{
|
|
122
|
+
timeout: 180000,
|
|
123
|
+
},
|
|
116
124
|
{},
|
|
117
125
|
{
|
|
118
126
|
useLocalErrorHandling: true,
|
|
@@ -47,6 +47,7 @@ const initialState = {
|
|
|
47
47
|
selectedImage: null,
|
|
48
48
|
lastErrorCode: null,
|
|
49
49
|
mode: null,
|
|
50
|
+
uploadDelayed: false,
|
|
50
51
|
};
|
|
51
52
|
|
|
52
53
|
export function imageGalleryReducer(state = initialState, action = {}) {
|
|
@@ -271,6 +272,12 @@ export function imageGalleryReducer(state = initialState, action = {}) {
|
|
|
271
272
|
lastErrorCode: null,
|
|
272
273
|
};
|
|
273
274
|
}
|
|
275
|
+
case actionTypes.UPDATE_UPLOAD_DELAYED: {
|
|
276
|
+
return {
|
|
277
|
+
...state,
|
|
278
|
+
uploadDelayed: action.uploadDelayed,
|
|
279
|
+
};
|
|
280
|
+
}
|
|
274
281
|
default:
|
|
275
282
|
return state;
|
|
276
283
|
}
|
|
@@ -20,6 +20,7 @@ import {
|
|
|
20
20
|
fetchGallery,
|
|
21
21
|
setModeToEdit,
|
|
22
22
|
setModeToAdd,
|
|
23
|
+
updateUploadDelayed,
|
|
23
24
|
} from '../Reducers/ImageGallery/Actions';
|
|
24
25
|
import {
|
|
25
26
|
createColorData,
|
|
@@ -169,7 +170,11 @@ export default class DesignerService {
|
|
|
169
170
|
}
|
|
170
171
|
|
|
171
172
|
async uploadFile(file) {
|
|
173
|
+
const timeout = setTimeout(() => {
|
|
174
|
+
Services.store.dispatch(updateUploadDelayed(true));
|
|
175
|
+
}, 10000);
|
|
172
176
|
const response = await Services.store.dispatch(uploadImage(file));
|
|
177
|
+
clearTimeout(timeout);
|
|
173
178
|
const url = get(response, 'data.preview.url');
|
|
174
179
|
const term = get(response, 'data.message');
|
|
175
180
|
if (term) {
|
|
@@ -178,6 +183,7 @@ export default class DesignerService {
|
|
|
178
183
|
if (!url) {
|
|
179
184
|
throw new Error('Preview image url is not specified!');
|
|
180
185
|
}
|
|
186
|
+
Services.store.dispatch(updateUploadDelayed(false));
|
|
181
187
|
return `${getConf('network.host')}${url}`;
|
|
182
188
|
}
|
|
183
189
|
|
|
@@ -37,6 +37,7 @@ Array [
|
|
|
37
37
|
</div>,
|
|
38
38
|
<div
|
|
39
39
|
class="MuiFormControl-root MuiTextField-root MuiFormControl-marginDense MuiFormControl-fullWidth"
|
|
40
|
+
translate="no"
|
|
40
41
|
>
|
|
41
42
|
<label
|
|
42
43
|
class="MuiFormLabel-root MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-marginDense MuiInputLabel-outlined ReceiveOfferForm-outlinedLabel-4"
|
|
@@ -70,6 +71,7 @@ Array [
|
|
|
70
71
|
</div>,
|
|
71
72
|
<div
|
|
72
73
|
class="MuiFormControl-root MuiTextField-root MuiFormControl-marginDense MuiFormControl-fullWidth"
|
|
74
|
+
translate="no"
|
|
73
75
|
>
|
|
74
76
|
<label
|
|
75
77
|
class="MuiFormLabel-root MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-marginDense MuiInputLabel-outlined ReceiveOfferForm-outlinedLabel-4"
|
|
@@ -179,6 +181,7 @@ Array [
|
|
|
179
181
|
>
|
|
180
182
|
<div
|
|
181
183
|
class="MuiFormControl-root MuiTextField-root MuiFormControl-marginDense MuiFormControl-fullWidth"
|
|
184
|
+
translate="no"
|
|
182
185
|
>
|
|
183
186
|
<label
|
|
184
187
|
class="MuiFormLabel-root MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-marginDense MuiInputLabel-outlined ReceiveOfferForm-outlinedLabel-4"
|
|
@@ -214,6 +217,7 @@ Array [
|
|
|
214
217
|
</div>,
|
|
215
218
|
<div
|
|
216
219
|
class="MuiFormControl-root MuiTextField-root MuiFormControl-marginDense MuiFormControl-fullWidth"
|
|
220
|
+
translate="no"
|
|
217
221
|
>
|
|
218
222
|
<label
|
|
219
223
|
class="MuiFormLabel-root MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-marginDense MuiInputLabel-outlined ReceiveOfferForm-outlinedLabel-4"
|
|
@@ -247,6 +251,7 @@ Array [
|
|
|
247
251
|
</div>,
|
|
248
252
|
<div
|
|
249
253
|
class="MuiFormControl-root MuiTextField-root MuiFormControl-marginDense MuiFormControl-fullWidth"
|
|
254
|
+
translate="no"
|
|
250
255
|
>
|
|
251
256
|
<label
|
|
252
257
|
class="MuiFormLabel-root MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-marginDense MuiInputLabel-outlined ReceiveOfferForm-outlinedLabel-4"
|
|
@@ -318,6 +323,7 @@ Array [
|
|
|
318
323
|
</div>,
|
|
319
324
|
<div
|
|
320
325
|
class="MuiFormControl-root MuiTextField-root MuiFormControl-marginDense MuiFormControl-fullWidth"
|
|
326
|
+
translate="no"
|
|
321
327
|
>
|
|
322
328
|
<label
|
|
323
329
|
class="MuiFormLabel-root MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-marginDense MuiInputLabel-outlined ReceiveOfferForm-outlinedLabel-4"
|
|
@@ -351,6 +357,7 @@ Array [
|
|
|
351
357
|
</div>,
|
|
352
358
|
<div
|
|
353
359
|
class="MuiFormControl-root MuiTextField-root MuiFormControl-marginDense MuiFormControl-fullWidth"
|
|
360
|
+
translate="no"
|
|
354
361
|
>
|
|
355
362
|
<label
|
|
356
363
|
class="MuiFormLabel-root MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-marginDense MuiInputLabel-outlined ReceiveOfferForm-outlinedLabel-4"
|
|
@@ -460,6 +467,7 @@ Array [
|
|
|
460
467
|
>
|
|
461
468
|
<div
|
|
462
469
|
class="MuiFormControl-root MuiTextField-root MuiFormControl-marginDense MuiFormControl-fullWidth"
|
|
470
|
+
translate="no"
|
|
463
471
|
>
|
|
464
472
|
<label
|
|
465
473
|
class="MuiFormLabel-root MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-marginDense MuiInputLabel-outlined ReceiveOfferForm-outlinedLabel-4"
|
|
@@ -495,6 +503,7 @@ Array [
|
|
|
495
503
|
</div>,
|
|
496
504
|
<div
|
|
497
505
|
class="MuiFormControl-root MuiTextField-root MuiFormControl-marginDense MuiFormControl-fullWidth"
|
|
506
|
+
translate="no"
|
|
498
507
|
>
|
|
499
508
|
<label
|
|
500
509
|
class="MuiFormLabel-root MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-marginDense MuiInputLabel-outlined ReceiveOfferForm-outlinedLabel-4"
|
|
@@ -528,6 +537,7 @@ Array [
|
|
|
528
537
|
</div>,
|
|
529
538
|
<div
|
|
530
539
|
class="MuiFormControl-root MuiTextField-root MuiFormControl-marginDense MuiFormControl-fullWidth"
|
|
540
|
+
translate="no"
|
|
531
541
|
>
|
|
532
542
|
<label
|
|
533
543
|
class="MuiFormLabel-root MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-marginDense MuiInputLabel-outlined ReceiveOfferForm-outlinedLabel-4"
|
|
@@ -202,6 +202,7 @@ class ReceiveOfferForm extends React.Component {
|
|
|
202
202
|
label={t('receiveOfferForm.name')}
|
|
203
203
|
margin="dense"
|
|
204
204
|
variant="outlined"
|
|
205
|
+
translate="no"
|
|
205
206
|
fullWidth
|
|
206
207
|
error={!!name.error}
|
|
207
208
|
helperText={getErrorMessage(name.error)}
|
|
@@ -225,6 +226,7 @@ class ReceiveOfferForm extends React.Component {
|
|
|
225
226
|
label={t('receiveOfferForm.company')}
|
|
226
227
|
margin="dense"
|
|
227
228
|
variant="outlined"
|
|
229
|
+
translate="no"
|
|
228
230
|
fullWidth
|
|
229
231
|
error={!!company.error}
|
|
230
232
|
helperText={getErrorMessage(company.error)}
|
|
@@ -298,6 +300,7 @@ class ReceiveOfferForm extends React.Component {
|
|
|
298
300
|
label={t('receiveOfferForm.city')}
|
|
299
301
|
margin="dense"
|
|
300
302
|
variant="outlined"
|
|
303
|
+
translate="no"
|
|
301
304
|
fullWidth
|
|
302
305
|
error={!!city.error}
|
|
303
306
|
helperText={getErrorMessage(city.error)}
|
|
@@ -323,6 +326,7 @@ class ReceiveOfferForm extends React.Component {
|
|
|
323
326
|
label={t('receiveOfferForm.street')}
|
|
324
327
|
margin="dense"
|
|
325
328
|
variant="outlined"
|
|
329
|
+
translate="no"
|
|
326
330
|
fullWidth
|
|
327
331
|
error={!!street.error}
|
|
328
332
|
helperText={getErrorMessage(street.error)}
|
|
@@ -346,6 +350,7 @@ class ReceiveOfferForm extends React.Component {
|
|
|
346
350
|
label={t('receiveOfferForm.country')}
|
|
347
351
|
margin="dense"
|
|
348
352
|
variant="outlined"
|
|
353
|
+
translate="no"
|
|
349
354
|
fullWidth
|
|
350
355
|
error={!!country.error}
|
|
351
356
|
helperText={getErrorMessage(country.error)}
|
package/src/App/configuration.js
CHANGED
|
@@ -437,6 +437,7 @@ function setLanguage() {
|
|
|
437
437
|
}
|
|
438
438
|
applicationConfiguration.language = language.replace('_', '-');
|
|
439
439
|
Api.setLanguage(applicationConfiguration.language);
|
|
440
|
+
document.documentElement.lang = language.substring(0, 2);
|
|
440
441
|
initLanguage(applicationConfiguration.language, applicationConfiguration.network.baseURL);
|
|
441
442
|
}
|
|
442
443
|
|