infopark_fiona7 1.2.0.1.3 → 1.2.0.1.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,33 +0,0 @@
1
- 'use strict';
2
-
3
- (function () {
4
- scrivito.BinaryUtils = {
5
- validateBinaryOptions: function validateBinaryOptions(options) {
6
- if (_.has(options, 'filename') && !options.filename) {
7
- throw new scrivito.ArgumentError('filename cannot be blank');
8
- }
9
-
10
- if (_.has(options, 'content_type') && !options.content_type) {
11
- throw new scrivito.ArgumentError('content_type cannot be blank');
12
- }
13
-
14
- if (_.has(options, 'contentType') && !options.contentType) {
15
- throw new scrivito.ArgumentError('contentType cannot be blank');
16
- }
17
- },
18
-
19
- isBlob: function isBlob(obj) {
20
- return !!obj && _.isNumber(obj.size) && _.isString(obj.type);
21
- },
22
-
23
- isFile: function isFile(obj) {
24
- return this.isBlob(obj) && _.isDate(obj.lastModifiedDate) && _.isString(obj.name);
25
- },
26
-
27
- // -- PATCH BEGINS HERE --
28
- isBlobWithName: function isBlobWithName(obj) {
29
- return obj && typeof obj === 'object' && this.isBlob(obj.blob_to_upload);
30
- }
31
- };
32
- })();
33
- // -- PATCH ENDS HERE --
@@ -1,490 +0,0 @@
1
- 'use strict';
2
-
3
- var _slicedToArray = (function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i['return']) _i['return'](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError('Invalid attempt to destructure non-iterable instance'); } }; })();
4
-
5
- var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();
6
-
7
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
8
-
9
- (function () {
10
- var MIN_REQUEST_TIME = 5;
11
- var DEFAULT_REQUEST_TIMEOUT = 120000; // <-- PATCH HERE
12
- var backendEndpoint = undefined;
13
- var tenant = undefined;
14
-
15
- scrivito.CmsRestApi = {
16
- init: function init(endpoint, initTenant) {
17
- backendEndpoint = endpoint;
18
- tenant = initTenant;
19
- },
20
-
21
- get: function get(path, requestParams) {
22
- return fetch('GET', path, requestParams);
23
- },
24
-
25
- put: function put(path, requestParams) {
26
- return fetch('PUT', path, requestParams);
27
- },
28
-
29
- post: function post(path, requestParams) {
30
- return fetch('POST', path, requestParams);
31
- },
32
-
33
- 'delete': function _delete(path) {
34
- return fetch('DELETE', path);
35
- }
36
- };
37
-
38
- var Timer = (function () {
39
- function Timer() {
40
- var timeout = arguments.length <= 0 || arguments[0] === undefined ? DEFAULT_REQUEST_TIMEOUT : arguments[0];
41
-
42
- _classCallCheck(this, Timer);
43
-
44
- this.timesOutAt = Date.now() + timeout;
45
- }
46
-
47
- _createClass(Timer, [{
48
- key: 'timedOut',
49
- value: function timedOut() {
50
- return this.remainingTime() < MIN_REQUEST_TIME;
51
- }
52
- }, {
53
- key: 'remainingTime',
54
- value: function remainingTime() {
55
- return Math.max(this.timesOutAt - Date.now(), 0);
56
- }
57
- }, {
58
- key: 'cover',
59
- value: function cover(time) {
60
- return time <= this.timesOutAt - MIN_REQUEST_TIME;
61
- }
62
- }]);
63
-
64
- return Timer;
65
- })();
66
-
67
- function fetch(method, path, requestParams) {
68
- return request(method, path, requestParams).then(function (result) {
69
- if (result && result.task && _.size(result) === 1) {
70
- return handleTask(result.task);
71
- }
72
- return result;
73
- });
74
- }
75
-
76
- function request(method, path, requestParams) {
77
- var timer = new Timer();
78
- return retryOnceOnError(timer, method, function () {
79
- return retryOnRateLimit(timer, function () {
80
- return scrivito.SessionKeeper.performWithToken(function (token) {
81
- var ajaxDeferred = ajax(method, path, requestParams, timer.remainingTime(), token);
82
- return scrivito.Promise.resolve(ajaxDeferred)['catch'](checkAuthorization);
83
- });
84
- })['catch'](function (error) {
85
- return raiseError(error);
86
- });
87
- });
88
- }
89
-
90
- function retryOnceOnError(timer, method, requestCallback) {
91
- if (method === 'POST') {
92
- return requestCallback();
93
- }
94
-
95
- return requestCallback()['catch'](function (error) {
96
- if (!timer.timedOut()) {
97
- if (error instanceof scrivito.BackendError) {
98
- return requestCallback();
99
- }
100
- if (error instanceof scrivito.NetworkError) {
101
- return requestCallback();
102
- }
103
- }
104
- throw error;
105
- });
106
- }
107
-
108
- function retryOnRateLimit(timer, requestCallback) {
109
- var retry = function retry(retryCount) {
110
- return requestCallback()['catch'](function (error) {
111
- if (error.status === 429) {
112
- var timeout = calculateTimeout(error.getResponseHeader('Retry-After'), retryCount);
113
- if (timer.cover(Date.now() + timeout)) {
114
- return scrivito.Promise.resolve(scrivito.waitMs(timeout)).then(function () {
115
- return retry(retryCount + 1);
116
- });
117
- }
118
- throw new scrivito.RateLimitExceededError('rate limit exceeded', 429);
119
- }
120
- throw error;
121
- });
122
- };
123
-
124
- return retry(0);
125
- }
126
-
127
- function calculateTimeout(retryAfter, retryCount) {
128
- var calculatedTimeout = Math.pow(2, retryCount) * 0.5 * 1000;
129
- return Math.max(calculatedTimeout, retryAfter * 1000);
130
- }
131
-
132
- function raiseError(error) {
133
- if (error.status === undefined || !_.isNumber(error.status)) {
134
- throw error;
135
- } else if (error.status === 0) {
136
- throw new scrivito.NetworkError(error.statusText, error.status);
137
- }
138
-
139
- var errorBody = parseError(error);
140
- var specificOutput = errorBody.error;
141
-
142
- if (error.status === 403) {
143
- throw new scrivito.AccessDeniedError(specificOutput, error.status, errorBody.code);
144
- } else if (error.status.toString()[0] === '4' && specificOutput) {
145
- throw new scrivito.ClientError(specificOutput, error.status, errorBody.code);
146
- } else if (error.status === 500 && specificOutput) {
147
- throw new scrivito.BackendError(specificOutput, error.status);
148
- }
149
- throw new scrivito.NetworkError(error.responseText, error.status);
150
- }
151
-
152
- function checkAuthorization(error) {
153
- if (error.status === 401) {
154
- var errorBody = parseError(error);
155
- var specificOutput = errorBody.error;
156
- throw new scrivito.UnauthorizedError(specificOutput, error.status, errorBody.code);
157
- }
158
- throw error;
159
- }
160
-
161
- function parseError(error) {
162
- try {
163
- return JSON.parse(error.responseText);
164
- } catch (err) {
165
- if (err instanceof SyntaxError) {
166
- throw new scrivito.NetworkError(error.responseText, error.status);
167
- }
168
- throw err;
169
- }
170
- }
171
-
172
- function prepareAjaxParams(method, path) {
173
- var requestParams = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2];
174
-
175
- var ajaxParams = {
176
- path: path,
177
- verb: method,
178
- params: requestParams
179
- };
180
-
181
- return {
182
- data: JSON.stringify(ajaxParams)
183
- };
184
- }
185
-
186
- function ajax(method, path, requestParams, timeout, token) {
187
- // -- PATCH BEGINS HERE --
188
- if (ajaxWithFormDataRequired(requestParams) /* || true */) {
189
- return ajaxWithFormData(method, path, requestParams, timeout, token);
190
- }
191
- // -- PATCH ENDS HERE --
192
-
193
- var ajaxParams = prepareAjaxParams(method, path, requestParams);
194
- var ajaxMethod = method === 'POST' ? 'POST' : 'PUT';
195
- var url = '/_f7/tenants/' + tenant + '/perform'; // <-- PATCH HERE
196
-
197
- return $.ajax(_.extend({
198
- url: url,
199
- method: ajaxMethod,
200
- contentType: 'application/json; charset=utf-8',
201
- dataType: 'json',
202
- //headers: { Authorization: `Session ${token}` }, // <-- PATCH HERE
203
- timeout: timeout,
204
- cache: false, // Don't cache GET requests.
205
- xhrFields: { withCredentials: true }
206
- }, ajaxParams)).then(function (result, textStatus, xhr) {
207
- return $.Deferred().resolve(result);
208
- }, function (xhr, textStatus, xhrError) {
209
- return $.Deferred().reject(xhr);
210
- });
211
- }
212
-
213
- // -- PATCH BEGINS HERE --
214
- function ajaxWithFormDataRequired(params) {
215
- var objParams = params && params.obj;
216
- var result = false;
217
-
218
- if (!objParams) {
219
- return result;
220
- }
221
-
222
- var _iteratorNormalCompletion = true;
223
- var _didIteratorError = false;
224
- var _iteratorError = undefined;
225
-
226
- try {
227
- for (var _iterator = Object.keys(objParams)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
228
- var k = _step.value;
229
-
230
- // if params[k] is an array
231
- if (objParams[k].pop) {
232
- // file uploads require form data
233
- result = objParams[k][1] && (scrivito.BinaryUtils.isFile(objParams[k][1]) || scrivito.BinaryUtils.isBlob(objParams[k][1]) || scrivito.BinaryUtils.isBlobWithName(objParams[k][1]));
234
- if (result) {
235
- return result;
236
- }
237
- }
238
- }
239
- } catch (err) {
240
- _didIteratorError = true;
241
- _iteratorError = err;
242
- } finally {
243
- try {
244
- if (!_iteratorNormalCompletion && _iterator['return']) {
245
- _iterator['return']();
246
- }
247
- } finally {
248
- if (_didIteratorError) {
249
- throw _iteratorError;
250
- }
251
- }
252
- }
253
-
254
- return result;
255
- }
256
-
257
- function ajaxWithFormData(method, path, requestParams, timeout, token) {
258
- var formData = paramsToFormData(method, path, requestParams);
259
- var ajaxMethod = method === 'POST' ? 'POST' : 'PUT';
260
- var url = '/_f7/tenants/' + tenant + '/perform';
261
-
262
- return $.ajax(_.extend({
263
- url: url,
264
- method: ajaxMethod,
265
- contentType: false,
266
- processData: false,
267
- data: formData,
268
- timeout: timeout,
269
- cache: false, // Don't cache GET requests.
270
- xhrFields: { withCredentials: true }
271
- })).then(function (result, textStatus, xhr) {
272
- return $.Deferred().resolve(result);
273
- }, function (xhr, textStatus, xhrError) {
274
- return $.Deferred().reject(xhr);
275
- });
276
- }
277
-
278
- function paramsToFormData(verb, path, params) {
279
- var objParams = params && params.obj || {};
280
- var fd = new FormData();
281
- fd.append('verb', verb);
282
- fd.append('path', path);
283
-
284
- var _iteratorNormalCompletion2 = true;
285
- var _didIteratorError2 = false;
286
- var _iteratorError2 = undefined;
287
-
288
- try {
289
- for (var _iterator2 = Object.keys(objParams)[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
290
- var attr = _step2.value;
291
-
292
- // attr is a [type, value] pair
293
- if (objParams[attr] && typeof objParams[attr] === 'object' && objParams[attr].pop) {
294
- var _objParams$attr = _slicedToArray(objParams[attr], 2);
295
-
296
- var type = _objParams$attr[0];
297
- var value = _objParams$attr[1];
298
-
299
- if (value.pop) {
300
- // multienum / stringlist / widgetlist
301
- fd.append('params[obj][' + attr + '[]', type);
302
- for (var i = 0; i < value.length; ++i) {
303
- fd.append('params[obj][' + attr + '[][formdata$workaround][]', value[i]);
304
- }
305
- } else if (scrivito.BinaryUtils.isFile(value) || scrivito.BinaryUtils.isBlob(value)) {
306
- // upload
307
- fd.append('params[obj][' + attr + '][]', type);
308
- fd.append('params[obj][' + attr + '][]', value);
309
- } else if (scrivito.BinaryUtils.isBlobWithName(value)) {
310
- fd.append('params[obj][' + attr + '][]', type);
311
- fd.append('params[obj][' + attr + '][]', value.blob_to_upload, value.filename);
312
- } else if (value && typeof value === 'object') {
313
- // blob/copy rename
314
- fd.append('params[obj][' + attr + '[]', type);
315
- var _iteratorNormalCompletion3 = true;
316
- var _didIteratorError3 = false;
317
- var _iteratorError3 = undefined;
318
-
319
- try {
320
- for (var _iterator3 = Object.keys(value)[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
321
- var l = _step3.value;
322
-
323
- fd.append('params[obj][' + attr + '][][' + l + ']', value[l]);
324
- }
325
- } catch (err) {
326
- _didIteratorError3 = true;
327
- _iteratorError3 = err;
328
- } finally {
329
- try {
330
- if (!_iteratorNormalCompletion3 && _iterator3['return']) {
331
- _iterator3['return']();
332
- }
333
- } finally {
334
- if (_didIteratorError3) {
335
- throw _iteratorError3;
336
- }
337
- }
338
- }
339
- } else if (typeof value !== 'undefined') {
340
- fd.append('params[obj][' + attr + '][]', type);
341
- fd.append('params[obj][' + attr + '][]', value);
342
- }
343
- // special handling for widget pool
344
- } else if (attr === '_widget_pool') {
345
- var value = objParams[attr];
346
- var _iteratorNormalCompletion4 = true;
347
- var _didIteratorError4 = false;
348
- var _iteratorError4 = undefined;
349
-
350
- try {
351
- for (var _iterator4 = Object.keys(value)[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {
352
- var widgetId = _step4.value;
353
-
354
- var widget = value[widgetId];
355
- var _iteratorNormalCompletion5 = true;
356
- var _didIteratorError5 = false;
357
- var _iteratorError5 = undefined;
358
-
359
- try {
360
- for (var _iterator5 = Object.keys(widget)[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {
361
- var widgetAttr = _step5.value;
362
-
363
- if (widget[widgetAttr].pop) {
364
- var _widget$widgetAttr = _slicedToArray(widget[widgetAttr], 2);
365
-
366
- var widgetAttrType = _widget$widgetAttr[0];
367
- var widgetValue = _widget$widgetAttr[1];
368
-
369
- // FIXME: Duplication
370
- if (widgetValue.pop) {
371
- // multienum / stringlist / widgetlist
372
- fd.append('params[obj][' + attr + '][' + widgetId + '][' + widgetAttr + '][]', widgetAttrType);
373
- for (var i = 0; i < widgetValue.length; ++i) {
374
- fd.append('params[obj][' + attr + '][' + widgetId + '][' + widgetAttr + '][][formdata$workaround][]', widgetValue[i]);
375
- }
376
- } else if (scrivito.BinaryUtils.isFile(widgetValue) || scrivito.BinaryUtils.isBlob(widgetValue)) {
377
- // upload
378
- fd.append('params[obj][' + attr + '][' + widgetId + '][' + widgetAttr + '][]', widgetAttrType);
379
- fd.append('params[obj][' + attr + '][' + widgetId + '][' + widgetAttr + '][]', widgetValue);
380
- } else if (scrivito.BinaryUtils.isBlobWithName(widgetValue)) {
381
- fd.append('params[obj][' + attr + '][' + widgetId + '][' + widgetAttr + '][]', widgetAttrType);
382
- fd.append('params[obj][' + attr + '][' + widgetId + '][' + widgetAttr + '][]', widgetValue.blob_to_upload, widgetValue.filename);
383
- } else if (widgetValue && typeof widgetValue === 'object') {
384
- // blob/copy rename
385
- fd.append('params[obj][' + attr + '][' + widgetId + '][' + widgetAttr + '][]', widgetAttrType);
386
- var _iteratorNormalCompletion6 = true;
387
- var _didIteratorError6 = false;
388
- var _iteratorError6 = undefined;
389
-
390
- try {
391
- for (var _iterator6 = Object.keys(widgetValue)[Symbol.iterator](), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) {
392
- var l = _step6.value;
393
-
394
- fd.append('params[obj][' + attr + '][' + widgetId + '][' + widgetAttr + '][][' + l + ']', widgetValue[l]);
395
- }
396
- } catch (err) {
397
- _didIteratorError6 = true;
398
- _iteratorError6 = err;
399
- } finally {
400
- try {
401
- if (!_iteratorNormalCompletion6 && _iterator6['return']) {
402
- _iterator6['return']();
403
- }
404
- } finally {
405
- if (_didIteratorError6) {
406
- throw _iteratorError6;
407
- }
408
- }
409
- }
410
- } else {
411
- // normal value
412
- fd.append('params[obj][' + attr + '][' + widgetId + '][' + widgetAttr + '][]', widgetAttrType);
413
- fd.append('params[obj][' + attr + '][' + widgetId + '][' + widgetAttr + '][]', widgetValue);
414
- }
415
- } else {
416
- // hopefully a built-in attribute :-)
417
- fd.append('params[obj][' + attr + '][' + widgetId + '][' + widgetAttr + ']', widget[widgetAttr]);
418
- }
419
- }
420
- } catch (err) {
421
- _didIteratorError5 = true;
422
- _iteratorError5 = err;
423
- } finally {
424
- try {
425
- if (!_iteratorNormalCompletion5 && _iterator5['return']) {
426
- _iterator5['return']();
427
- }
428
- } finally {
429
- if (_didIteratorError5) {
430
- throw _iteratorError5;
431
- }
432
- }
433
- }
434
- }
435
- } catch (err) {
436
- _didIteratorError4 = true;
437
- _iteratorError4 = err;
438
- } finally {
439
- try {
440
- if (!_iteratorNormalCompletion4 && _iterator4['return']) {
441
- _iterator4['return']();
442
- }
443
- } finally {
444
- if (_didIteratorError4) {
445
- throw _iteratorError4;
446
- }
447
- }
448
- }
449
- } else {
450
- // hopefully a built-in attribute :-)
451
- fd.append('params[obj][' + attr + ']', objParams[attr]);
452
- }
453
- }
454
- } catch (err) {
455
- _didIteratorError2 = true;
456
- _iteratorError2 = err;
457
- } finally {
458
- try {
459
- if (!_iteratorNormalCompletion2 && _iterator2['return']) {
460
- _iterator2['return']();
461
- }
462
- } finally {
463
- if (_didIteratorError2) {
464
- throw _iteratorError2;
465
- }
466
- }
467
- }
468
-
469
- return fd;
470
- }
471
-
472
- // -- PATCH ENDS HERE --
473
-
474
- function handleTask(task) {
475
- switch (task.status) {
476
- case 'success':
477
- return task.result;
478
- case 'error':
479
- throw new scrivito.ClientError(task.message, undefined, task.code);
480
- case 'open':
481
- return scrivito.wait(2).then(function () {
482
- return request('GET', 'tasks/' + task.id).then(function (result) {
483
- return handleTask(result);
484
- });
485
- });
486
- default:
487
- throw new scrivito.ScrivitoError('Invalid task response (unknown status)');
488
- }
489
- }
490
- })();