iobroker.javascript 7.0.7 → 7.0.8
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/README.md +2 -1
- package/admin/asset-manifest.json +5 -5
- package/admin/google-blockly/blockly_compressed.js +1469 -1704
- package/admin/google-blockly/blocks_compressed.js +164 -218
- package/admin/google-blockly/javascript_compressed.js +100 -328
- package/admin/google-blockly/msg/js/de.js +64 -70
- package/admin/google-blockly/msg/js/en.js +14 -20
- package/admin/google-blockly/msg/js/es.js +39 -45
- package/admin/google-blockly/msg/js/fr.js +59 -65
- package/admin/google-blockly/msg/js/it.js +19 -25
- package/admin/google-blockly/msg/js/nl.js +55 -61
- package/admin/google-blockly/msg/js/pl.js +46 -52
- package/admin/google-blockly/msg/js/pt.js +30 -36
- package/admin/google-blockly/msg/js/ru.js +41 -47
- package/admin/google-blockly/msg/js/uk.js +13 -17
- package/admin/google-blockly/msg/js/zh-cn.js +86 -92
- package/admin/google-blockly/own/blocks_action.js +4 -4
- package/admin/google-blockly/own/blocks_other.js +103 -0
- package/admin/google-blockly/own/blocks_procedures.js +63 -62
- package/admin/google-blockly/own/blocks_sendto.js +62 -60
- package/admin/google-blockly/own/blocks_switch.js +40 -29
- package/admin/google-blockly/own/blocks_system.js +113 -170
- package/admin/google-blockly/own/blocks_time.js +35 -35
- package/admin/google-blockly/own/blocks_timeout.js +42 -42
- package/admin/google-blockly/own/blocks_trigger.js +51 -68
- package/admin/google-blockly/own/blocks_words.js +8 -9
- package/admin/google-blockly/own/field_cron.js +189 -139
- package/admin/google-blockly/own/field_oid.js +250 -170
- package/admin/google-blockly/own/field_script.js +168 -122
- package/admin/static/js/98.bf3dfa2b.chunk.js +2 -0
- package/admin/static/js/98.bf3dfa2b.chunk.js.map +1 -0
- package/admin/static/js/{main.d86fb9de.js → main.d9e7d255.js} +2 -2
- package/admin/static/js/{main.d86fb9de.js.map → main.d9e7d255.js.map} +1 -1
- package/admin/tab.html +1 -1
- package/io-package.json +14 -14
- package/package.json +1 -1
- package/admin/google-blockly/own/blocks_logic.js +0 -64
- package/admin/google-blockly/own/blocks_number.js +0 -25
- package/admin/google-blockly/own/blocks_text.js +0 -23
- package/admin/static/js/98.f78be4fc.chunk.js +0 -2
- package/admin/static/js/98.f78be4fc.chunk.js.map +0 -1
|
@@ -85,7 +85,6 @@ Blockly.Blocks['on_ext'] = {
|
|
|
85
85
|
mutationToDom: function () {
|
|
86
86
|
const container = document.createElement('mutation');
|
|
87
87
|
container.setAttribute('items', this.itemCount_);
|
|
88
|
-
|
|
89
88
|
return container;
|
|
90
89
|
},
|
|
91
90
|
/**
|
|
@@ -106,7 +105,6 @@ Blockly.Blocks['on_ext'] = {
|
|
|
106
105
|
decompose: function (workspace) {
|
|
107
106
|
const containerBlock = workspace.newBlock('on_ext_oid_container');
|
|
108
107
|
containerBlock.initSvg();
|
|
109
|
-
|
|
110
108
|
let connection = containerBlock.getInput('STACK').connection;
|
|
111
109
|
for (let i = 0; i < this.itemCount_; i++) {
|
|
112
110
|
const itemBlock = workspace.newBlock('on_ext_oid');
|
|
@@ -114,7 +112,6 @@ Blockly.Blocks['on_ext'] = {
|
|
|
114
112
|
connection.connect(itemBlock.previousConnection);
|
|
115
113
|
connection = itemBlock.nextConnection;
|
|
116
114
|
}
|
|
117
|
-
|
|
118
115
|
return containerBlock;
|
|
119
116
|
},
|
|
120
117
|
/**
|
|
@@ -131,19 +128,18 @@ Blockly.Blocks['on_ext'] = {
|
|
|
131
128
|
itemBlock = itemBlock.nextConnection &&
|
|
132
129
|
itemBlock.nextConnection.targetBlock();
|
|
133
130
|
}
|
|
134
|
-
|
|
135
131
|
// Disconnect any children that don't belong.
|
|
136
132
|
for (let k = 0; k < this.itemCount_; k++) {
|
|
137
|
-
|
|
133
|
+
const connection = this.getInput('OID' + k).connection.targetConnection;
|
|
138
134
|
if (connection && connections.indexOf(connection) === -1) {
|
|
139
135
|
connection.disconnect();
|
|
140
136
|
}
|
|
141
137
|
}
|
|
142
|
-
|
|
143
138
|
this.itemCount_ = connections.length;
|
|
144
|
-
if (this.itemCount_ < 1)
|
|
139
|
+
if (this.itemCount_ < 1) {
|
|
140
|
+
this.itemCount_ = 1;
|
|
141
|
+
}
|
|
145
142
|
this.updateShape_();
|
|
146
|
-
|
|
147
143
|
// Reconnect any child blocks.
|
|
148
144
|
for (let i = 0; i < this.itemCount_; i++) {
|
|
149
145
|
Blockly.Mutator.reconnect(connections[i], this, 'OID' + i);
|
|
@@ -157,9 +153,8 @@ Blockly.Blocks['on_ext'] = {
|
|
|
157
153
|
saveConnections: function(containerBlock) {
|
|
158
154
|
let itemBlock = containerBlock.getInputTargetBlock('STACK');
|
|
159
155
|
let i = 0;
|
|
160
|
-
|
|
161
156
|
while (itemBlock) {
|
|
162
|
-
|
|
157
|
+
const input = this.getInput('OID' + i);
|
|
163
158
|
itemBlock.valueConnection_ = input && input.connection.targetConnection;
|
|
164
159
|
i++;
|
|
165
160
|
itemBlock = itemBlock.nextConnection &&
|
|
@@ -191,7 +186,8 @@ Blockly.Blocks['on_ext'] = {
|
|
|
191
186
|
// Add new inputs.
|
|
192
187
|
const wp = this.workspace;
|
|
193
188
|
|
|
194
|
-
|
|
189
|
+
let i;
|
|
190
|
+
for (i = 0; i < this.itemCount_; i++) {
|
|
195
191
|
let _input = this.getInput('OID' + i);
|
|
196
192
|
if (!_input) {
|
|
197
193
|
_input = this.appendValueInput('OID' + i);
|
|
@@ -220,7 +216,6 @@ Blockly.Blocks['on_ext'] = {
|
|
|
220
216
|
}, 100, _input);
|
|
221
217
|
}
|
|
222
218
|
}
|
|
223
|
-
|
|
224
219
|
// Remove deleted inputs.
|
|
225
220
|
while (this.getInput('OID' + i)) {
|
|
226
221
|
this.removeInput('OID' + i);
|
|
@@ -257,14 +252,13 @@ Blockly.Blocks['on_ext'] = {
|
|
|
257
252
|
};
|
|
258
253
|
Blockly.JavaScript['on_ext'] = function(block) {
|
|
259
254
|
const dropdown_condition = block.getFieldValue('CONDITION');
|
|
255
|
+
const statements_name = Blockly.JavaScript.statementToCode(block, 'STATEMENT');
|
|
260
256
|
const ack_condition = block.getFieldValue('ACK_CONDITION');
|
|
261
|
-
const statement = Blockly.JavaScript.statementToCode(block, 'STATEMENT');
|
|
262
|
-
|
|
263
257
|
let val;
|
|
264
258
|
if (dropdown_condition === 'true' || dropdown_condition === 'false') {
|
|
265
259
|
val = 'val: ' + dropdown_condition;
|
|
266
260
|
} else {
|
|
267
|
-
val =
|
|
261
|
+
val = 'change: "' + dropdown_condition + '"';
|
|
268
262
|
}
|
|
269
263
|
|
|
270
264
|
const oids = [];
|
|
@@ -280,12 +274,12 @@ Blockly.JavaScript['on_ext'] = function(block) {
|
|
|
280
274
|
}
|
|
281
275
|
}
|
|
282
276
|
}
|
|
283
|
-
|
|
284
277
|
const oid = '[].concat(' + oids.join(').concat(') + ')';
|
|
285
278
|
|
|
286
|
-
|
|
279
|
+
const code = 'on({ id: ' + oid + ', ' + val + (ack_condition ? ', ack: ' + ack_condition : '') + ' }, async (obj) => {\n' +
|
|
287
280
|
(oids.length === 1 ? Blockly.JavaScript.prefixLines('let value = obj.state.val;\nlet oldValue = obj.oldState.val;', Blockly.JavaScript.INDENT) + '\n' : '') +
|
|
288
|
-
|
|
281
|
+
statements_name + '});\n';
|
|
282
|
+
return code;
|
|
289
283
|
};
|
|
290
284
|
|
|
291
285
|
// --- ON -----------------------------------------------------------
|
|
@@ -344,8 +338,8 @@ Blockly.JavaScript['on'] = function(block) {
|
|
|
344
338
|
const value_objectid = block.getFieldValue('OID');
|
|
345
339
|
const dropdown_condition = block.getFieldValue('CONDITION');
|
|
346
340
|
const ack_condition = block.getFieldValue('ACK_CONDITION');
|
|
347
|
-
const
|
|
348
|
-
const
|
|
341
|
+
const statements_name = Blockly.JavaScript.statementToCode(block, 'STATEMENT');
|
|
342
|
+
const objectname = main.objects[value_objectid] && main.objects[value_objectid].common && main.objects[value_objectid].common.name ? main.objects[value_objectid].common.name : '';
|
|
349
343
|
|
|
350
344
|
Blockly.Msg.VARIABLES_DEFAULT_NAME = 'value';
|
|
351
345
|
|
|
@@ -353,13 +347,13 @@ Blockly.JavaScript['on'] = function(block) {
|
|
|
353
347
|
if (dropdown_condition === 'true' || dropdown_condition === 'false') {
|
|
354
348
|
val = 'val: ' + dropdown_condition;
|
|
355
349
|
} else {
|
|
356
|
-
val =
|
|
350
|
+
val = 'change: "' + dropdown_condition + '"';
|
|
357
351
|
}
|
|
358
352
|
|
|
359
|
-
return
|
|
360
|
-
Blockly.JavaScript.prefixLines('let value = obj.state.val
|
|
353
|
+
return 'on({ id: "' + value_objectid + '"' + (objectname ? '/*' + objectname + '*/' : '') + ', ' + val + (ack_condition ? ', ack: ' + ack_condition : '') + ' }, async (obj) => {\n' +
|
|
354
|
+
Blockly.JavaScript.prefixLines('let value = obj.state.val;\n', Blockly.JavaScript.INDENT) + '\n' +
|
|
361
355
|
Blockly.JavaScript.prefixLines('let oldValue = obj.oldState.val;', Blockly.JavaScript.INDENT) + '\n' +
|
|
362
|
-
|
|
356
|
+
+ statements_name +
|
|
363
357
|
'});\n';
|
|
364
358
|
};
|
|
365
359
|
|
|
@@ -376,7 +370,6 @@ Blockly.Blocks['on_source'] = {
|
|
|
376
370
|
* @this Blockly.Block
|
|
377
371
|
*/
|
|
378
372
|
init: function() {
|
|
379
|
-
|
|
380
373
|
this.appendDummyInput()
|
|
381
374
|
.appendField('↪');
|
|
382
375
|
|
|
@@ -404,7 +397,7 @@ Blockly.Blocks['on_source'] = {
|
|
|
404
397
|
[Blockly.Translate('on_source_oldstate_ack'), 'oldState.ack'],
|
|
405
398
|
[Blockly.Translate('on_source_oldstate_lc'), 'oldState.lc'],
|
|
406
399
|
[Blockly.Translate('on_source_oldstate_c'), 'oldState.c'],
|
|
407
|
-
[Blockly.Translate('on_source_oldstate_user'),
|
|
400
|
+
[Blockly.Translate('on_source_oldstate_user'), 'oldState.user']
|
|
408
401
|
]), 'ATTR');
|
|
409
402
|
|
|
410
403
|
this.setInputsInline(true);
|
|
@@ -424,7 +417,7 @@ Blockly.Blocks['on_source'] = {
|
|
|
424
417
|
// Is the block nested in a trigger?
|
|
425
418
|
let block = this;
|
|
426
419
|
do {
|
|
427
|
-
if (this.FUNCTION_TYPES.
|
|
420
|
+
if (this.FUNCTION_TYPES.includes(block.type)) {
|
|
428
421
|
legal = true;
|
|
429
422
|
break;
|
|
430
423
|
}
|
|
@@ -447,13 +440,11 @@ Blockly.Blocks['on_source'] = {
|
|
|
447
440
|
Blockly.JavaScript['on_source'] = function(block) {
|
|
448
441
|
let attr = block.getFieldValue('ATTR');
|
|
449
442
|
const parts = attr.split('.');
|
|
450
|
-
|
|
451
443
|
if (parts.length > 1) {
|
|
452
444
|
attr = '(obj.' + parts[0] + ' ? obj.' + attr + ' : "")';
|
|
453
445
|
} else {
|
|
454
446
|
attr = 'obj.' + attr;
|
|
455
447
|
}
|
|
456
|
-
|
|
457
448
|
return [attr, Blockly.JavaScript.ORDER_ATOMIC];
|
|
458
449
|
};
|
|
459
450
|
|
|
@@ -461,6 +452,9 @@ Blockly.JavaScript['on_source'] = function(block) {
|
|
|
461
452
|
Blockly.Trigger.blocks['schedule'] =
|
|
462
453
|
'<block type="schedule">'
|
|
463
454
|
+ ' <value name="SCHEDULE">'
|
|
455
|
+
//+ ' <shadow type="text">'
|
|
456
|
+
//+ ' <field name="TEXT">test</field>'
|
|
457
|
+
//+ ' </shadow>'
|
|
464
458
|
+ ' </value>'
|
|
465
459
|
+ ' <value name="STATEMENT">'
|
|
466
460
|
+ ' </value>'
|
|
@@ -487,16 +481,15 @@ Blockly.Blocks['schedule'] = {
|
|
|
487
481
|
};
|
|
488
482
|
Blockly.JavaScript['schedule'] = function(block) {
|
|
489
483
|
let schedule = block.getFieldValue('SCHEDULE');
|
|
490
|
-
const
|
|
484
|
+
const statements_name = Blockly.JavaScript.statementToCode(block, 'STATEMENT');
|
|
491
485
|
|
|
492
486
|
if (schedule[0] === '{') {
|
|
493
487
|
schedule = "'" + schedule + "'";
|
|
494
488
|
} else {
|
|
495
489
|
schedule = '"' + schedule + '"';
|
|
496
490
|
}
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
statement +
|
|
491
|
+
return 'schedule(' + schedule + ', async () => {\n' +
|
|
492
|
+
statements_name +
|
|
500
493
|
'});\n';
|
|
501
494
|
};
|
|
502
495
|
|
|
@@ -559,11 +552,11 @@ Blockly.Blocks['astro'] = {
|
|
|
559
552
|
};
|
|
560
553
|
Blockly.JavaScript['astro'] = function(block) {
|
|
561
554
|
const astrotype = block.getFieldValue('TYPE');
|
|
562
|
-
const offset
|
|
563
|
-
const
|
|
555
|
+
const offset = parseInt(block.getFieldValue('OFFSET'), 10);
|
|
556
|
+
const statements_name = Blockly.JavaScript.statementToCode(block, 'STATEMENT');
|
|
564
557
|
|
|
565
|
-
return
|
|
566
|
-
|
|
558
|
+
return 'schedule({ astro: "' + astrotype + '", shift: ' + offset + ' }, async () => {\n' +
|
|
559
|
+
statements_name +
|
|
567
560
|
'});\n';
|
|
568
561
|
};
|
|
569
562
|
|
|
@@ -683,10 +676,10 @@ Blockly.Blocks['schedule_create'] = {
|
|
|
683
676
|
Blockly.JavaScript['schedule_create'] = function (block) {
|
|
684
677
|
const name = Blockly.JavaScript.variableDB_.safeName_(block.getFieldValue('NAME'));
|
|
685
678
|
const schedule = Blockly.JavaScript.valueToCode(block, 'SCHEDULE', Blockly.JavaScript.ORDER_ATOMIC);
|
|
686
|
-
const
|
|
679
|
+
const statements_name = Blockly.JavaScript.statementToCode(block, 'STATEMENT');
|
|
687
680
|
|
|
688
681
|
return name + ' = schedule(' + schedule + ', async () => {\n' +
|
|
689
|
-
|
|
682
|
+
statements_name +
|
|
690
683
|
'});\n';
|
|
691
684
|
};
|
|
692
685
|
|
|
@@ -741,7 +734,7 @@ Blockly.Blocks['schedule_clear'] = {
|
|
|
741
734
|
|
|
742
735
|
Blockly.JavaScript['schedule_clear'] = function(block) {
|
|
743
736
|
const name = Blockly.JavaScript.variableDB_.safeName_(block.getFieldValue('NAME'));
|
|
744
|
-
return
|
|
737
|
+
return '(function () { if (' + name + ') { clearSchedule(' + name + '); ' + name + ' = null; }})();\n';
|
|
745
738
|
};
|
|
746
739
|
|
|
747
740
|
// --- CRON dialog --------------------------------------------------
|
|
@@ -769,7 +762,7 @@ Blockly.Blocks['field_cron'] = {
|
|
|
769
762
|
|
|
770
763
|
Blockly.JavaScript['field_cron'] = function(block) {
|
|
771
764
|
const cron = block.getFieldValue('CRON');
|
|
772
|
-
return [
|
|
765
|
+
return ['\'' + cron + '\'', Blockly.JavaScript.ORDER_ATOMIC]
|
|
773
766
|
};
|
|
774
767
|
|
|
775
768
|
// --- CRON builder --------------------------------------------------
|
|
@@ -795,7 +788,6 @@ Blockly.Trigger.blocks['cron_builder'] =
|
|
|
795
788
|
Blockly.Blocks['cron_builder'] = {
|
|
796
789
|
// Checkbox.
|
|
797
790
|
init: function() {
|
|
798
|
-
|
|
799
791
|
this.appendDummyInput()
|
|
800
792
|
.appendField(Blockly.Translate('cron_builder_CRON'));
|
|
801
793
|
|
|
@@ -809,7 +801,6 @@ Blockly.Blocks['cron_builder'] = {
|
|
|
809
801
|
.appendField(Blockly.Translate('cron_builder_dow'));
|
|
810
802
|
|
|
811
803
|
const wp = this.workspace;
|
|
812
|
-
|
|
813
804
|
setTimeout(function (_input) {
|
|
814
805
|
if (!_input.connection.isConnected()) {
|
|
815
806
|
const _shadow = wp.newBlock('text');
|
|
@@ -819,9 +810,9 @@ Blockly.Blocks['cron_builder'] = {
|
|
|
819
810
|
}
|
|
820
811
|
}, 100, _input);
|
|
821
812
|
|
|
813
|
+
|
|
822
814
|
_input = this.appendValueInput('MONTHS')
|
|
823
815
|
.appendField(Blockly.Translate('cron_builder_month'));
|
|
824
|
-
|
|
825
816
|
setTimeout(function (_input) {
|
|
826
817
|
if (!_input.connection.isConnected()) {
|
|
827
818
|
const _shadow = wp.newBlock('text');
|
|
@@ -833,7 +824,6 @@ Blockly.Blocks['cron_builder'] = {
|
|
|
833
824
|
|
|
834
825
|
_input = this.appendValueInput('DAYS')
|
|
835
826
|
.appendField(Blockly.Translate('cron_builder_day'));
|
|
836
|
-
|
|
837
827
|
setTimeout(function (_input) {
|
|
838
828
|
if (!_input.connection.isConnected()) {
|
|
839
829
|
const _shadow = wp.newBlock('text');
|
|
@@ -845,7 +835,6 @@ Blockly.Blocks['cron_builder'] = {
|
|
|
845
835
|
|
|
846
836
|
_input = this.appendValueInput('HOURS')
|
|
847
837
|
.appendField(Blockly.Translate('cron_builder_hour'));
|
|
848
|
-
|
|
849
838
|
setTimeout(function (_input) {
|
|
850
839
|
if (!_input.connection.isConnected()) {
|
|
851
840
|
const _shadow = wp.newBlock('text');
|
|
@@ -857,7 +846,6 @@ Blockly.Blocks['cron_builder'] = {
|
|
|
857
846
|
|
|
858
847
|
_input = this.appendValueInput('MINUTES')
|
|
859
848
|
.appendField(Blockly.Translate('cron_builder_minutes'));
|
|
860
|
-
|
|
861
849
|
setTimeout(function (_input) {
|
|
862
850
|
if (!_input.connection.isConnected()) {
|
|
863
851
|
const _shadow = wp.newBlock('text');
|
|
@@ -890,7 +878,6 @@ Blockly.Blocks['cron_builder'] = {
|
|
|
890
878
|
const container = document.createElement('mutation');
|
|
891
879
|
container.setAttribute('seconds', this.seconds_);
|
|
892
880
|
container.setAttribute('as_line', this.as_line_);
|
|
893
|
-
|
|
894
881
|
return container;
|
|
895
882
|
},
|
|
896
883
|
/**
|
|
@@ -943,12 +930,11 @@ Blockly.JavaScript['cron_builder'] = function(block) {
|
|
|
943
930
|
const code =
|
|
944
931
|
(withSeconds === 'TRUE' || withSeconds === 'true' || withSeconds === true ?
|
|
945
932
|
seconds + '.toString().trim() + \' \' + ' : '') +
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
933
|
+
minutes + '.toString().trim() + \' \' + ' +
|
|
934
|
+
hours + '.toString().trim() + \' \' + ' +
|
|
935
|
+
days + '.toString().trim() + \' \' + ' +
|
|
936
|
+
months + '.toString().trim() + \' \' + ' +
|
|
937
|
+
dow + '.toString().trim()';
|
|
952
938
|
return [code, Blockly.JavaScript.ORDER_ATOMIC]
|
|
953
939
|
};
|
|
954
940
|
|
|
@@ -986,10 +972,10 @@ Blockly.Blocks['onMessage'] = {
|
|
|
986
972
|
|
|
987
973
|
Blockly.JavaScript['onMessage'] = function (block) {
|
|
988
974
|
const message = block.getFieldValue('MESSAGE');
|
|
989
|
-
const
|
|
975
|
+
const statements_name = Blockly.JavaScript.statementToCode(block, 'STATEMENT');
|
|
990
976
|
|
|
991
|
-
return
|
|
992
|
-
|
|
977
|
+
return 'onMessage("' + message + '", async (data) => {\n' +
|
|
978
|
+
statements_name +
|
|
993
979
|
'});\n';
|
|
994
980
|
};
|
|
995
981
|
|
|
@@ -1037,18 +1023,16 @@ Blockly.Blocks['onFile'] = {
|
|
|
1037
1023
|
this.setHelpUrl(getHelp('onFile_help'));
|
|
1038
1024
|
}
|
|
1039
1025
|
};
|
|
1040
|
-
|
|
1041
1026
|
Blockly.JavaScript['onFile'] = function (block) {
|
|
1042
1027
|
const value_objectid = Blockly.JavaScript.valueToCode(block, 'OID', Blockly.JavaScript.ORDER_ATOMIC);
|
|
1043
1028
|
const file = Blockly.JavaScript.valueToCode(block, 'FILE', Blockly.JavaScript.ORDER_ATOMIC);
|
|
1044
1029
|
const withFile = block.getFieldValue('WITH_FILE');
|
|
1045
|
-
const
|
|
1046
|
-
const
|
|
1030
|
+
const statements_name = Blockly.JavaScript.statementToCode(block, 'STATEMENT');
|
|
1031
|
+
const objectname = main.objects[value_objectid] && main.objects[value_objectid].common && main.objects[value_objectid].common.name ? main.objects[value_objectid].common.name : '';
|
|
1047
1032
|
|
|
1048
|
-
return
|
|
1049
|
-
'
|
|
1050
|
-
|
|
1051
|
-
'});\n';
|
|
1033
|
+
return 'onFile(' + value_objectid + (objectname ? '/*' + objectname + '*/' : '') + ', ' +
|
|
1034
|
+
file + ', ' + (withFile === 'TRUE' ? 'true' : 'false') +
|
|
1035
|
+
', async (id, fileName, size, data, mimeType) => {\n' + statements_name + '});\n';
|
|
1052
1036
|
};
|
|
1053
1037
|
|
|
1054
1038
|
// --- onFile -----------------------------------------------------------
|
|
@@ -1083,11 +1067,10 @@ Blockly.Blocks['offFile'] = {
|
|
|
1083
1067
|
this.setHelpUrl(getHelp('offFile_help'));
|
|
1084
1068
|
}
|
|
1085
1069
|
};
|
|
1086
|
-
|
|
1087
1070
|
Blockly.JavaScript['offFile'] = function (block) {
|
|
1088
1071
|
const value_objectid = Blockly.JavaScript.valueToCode(block, 'OID', Blockly.JavaScript.ORDER_ATOMIC);
|
|
1089
1072
|
const file = Blockly.JavaScript.valueToCode(block, 'FILE', Blockly.JavaScript.ORDER_ATOMIC);
|
|
1090
|
-
const
|
|
1073
|
+
const objectname = main.objects[value_objectid] && main.objects[value_objectid].common && main.objects[value_objectid].common.name ? main.objects[value_objectid].common.name : '';
|
|
1091
1074
|
|
|
1092
|
-
return
|
|
1093
|
-
};
|
|
1075
|
+
return 'offFile(' + value_objectid + (objectname ? '/*' + objectname + '*/' : '') + ', ' + file + ');\n';
|
|
1076
|
+
};
|
|
@@ -444,17 +444,16 @@ Blockly.Words['onMessage_message'] = {'en': 'message',
|
|
|
444
444
|
Blockly.Words['onMessage_tooltip'] = {'en': 'message', 'de': 'Meldung', 'ru': 'сообщение', 'pt': 'mensagem', 'nl': 'bericht', 'fr': 'message', 'it': 'messaggio', 'es': 'mensaje', 'pl': 'komunikat', 'zh-cn': '消息', 'uk': 'повідомлення'};
|
|
445
445
|
Blockly.Words['onMessage_help'] = {'en': 'onMessage', 'de': 'onMessage', 'ru': 'onMessage', 'pt': 'onMessage', 'nl': 'onMessage', 'fr': 'onMessage', 'it': 'onMessage', 'es': 'onMessage', 'pl': 'onMessage', 'zh-cn': 'onMessage', 'uk': 'onMessage'};
|
|
446
446
|
|
|
447
|
-
// ---
|
|
448
|
-
Blockly.Words['
|
|
449
|
-
Blockly.Words['logic_between_max'] = { "en": "Max", "de": "Max", "ru": "Макс", "pt": "Max", "nl": "Max", "fr": "Max", "it": "Max", "es": "Max", "pl": "Max", "uk": "Макс", "zh-cn": "Max" };
|
|
447
|
+
// --- OTHER --------------------------------------------------
|
|
448
|
+
Blockly.Words['Other'] = {'en': 'Other', 'de': 'Sonstige', 'ru': 'Другое', 'pt': 'Outros', 'nl': 'Andere', 'fr': 'Autres', 'it': 'Altri', 'es': 'Otros', 'pl': 'Inny', 'zh-cn': '其他', 'uk': 'Інше'};
|
|
450
449
|
|
|
451
|
-
// ---
|
|
452
|
-
Blockly.Words['
|
|
453
|
-
Blockly.Words['
|
|
450
|
+
// --- other between --------------------------------------------------
|
|
451
|
+
Blockly.Words['other_between_min'] = { "en": "Min", "de": "Min", "ru": "Мин", "pt": "Min", "nl": "Min", "fr": "Min", "it": "Min", "es": "Min", "pl": "Min", "uk": "Мінуси", "zh-cn": "明 明" };
|
|
452
|
+
Blockly.Words['other_between_max'] = { "en": "Max", "de": "Max", "ru": "Макс", "pt": "Max", "nl": "Max", "fr": "Max", "it": "Max", "es": "Max", "pl": "Max", "uk": "Макс", "zh-cn": "Max" };
|
|
454
453
|
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
}
|
|
454
|
+
// --- other_ifempty --------------------------------------------------
|
|
455
|
+
Blockly.Words['other_ifempty'] = { "en": "if empty", "de": "wenn leer", "ru": "если пусто", "pt": "se vazio", "nl": "_", "fr": "si vide", "it": "se vuoto", "es": "si está vacío", "pl": "jeśli chodzi o puste", "uk": "якщо порожній", "zh-cn": "空" };
|
|
456
|
+
Blockly.Words['other_ifempty_then'] = { "en": "then", "de": "dann", "ru": "затем", "pt": "então", "nl": "dan", "fr": "puis", "it": "allora", "es": "entonces", "pl": "potem", "uk": "потім", "zh-cn": "然后" };
|
|
458
457
|
|
|
459
458
|
Blockly.Translate = function (word, lang) {
|
|
460
459
|
lang = lang || systemLang;
|