@@ -24,13 +24,15 @@ Blockly.Translate =
2424Blockly . Words [ "google-spreadsheet" ] = { en : "Google Spreadsheet" , de : "Google Tabelle" } ;
2525Blockly . Words [ "google-spreadsheet_instance" ] = { en : "instance" , de : "Instanz" } ;
2626Blockly . Words [ "google-spreadsheet_append" ] = { en : "append to Google Spreadsheet" , de : "An Google Tabelle anhängen" } ;
27- Blockly . Words [ "google-spreadsheet_createSheet" ] = { en : "create a new sheet in Google Spreadsheet" , de : "Neues sheet" } ;
28- Blockly . Words [ "google-spreadsheet_deleteSheet" ] = { en : "delete a sheet in Google Spreadsheet" , de : "Sheet löschen" } ;
27+ Blockly . Words [ "google-spreadsheet_createSheet" ] = { en : "create a new sheet in Google Spreadsheet" , de : "Neues Blatt" } ;
28+ Blockly . Words [ "google-spreadsheet_deleteSheet" ] = { en : "delete a sheet in Google Spreadsheet" , de : "Blatt löschen" } ;
29+ Blockly . Words [ "google-spreadsheet_duplicateSheet" ] = { en : "duplicate a sheet in Google Spreadsheet" , de : "Blatt duplizieren" } ;
2930Blockly . Words [ "google-spreadsheet_data" ] = { en : "data" , de : "Daten" } ;
3031Blockly . Words [ "google-spreadsheet_deleteRows" ] = { en : "delete rows from Google Spreadsheet" , de : "Zeilen aus Google Tabelle löschen" } ;
3132Blockly . Words [ "google-spreadsheet_startRow" ] = { en : "from row" , de : "ab Zeile" } ;
3233Blockly . Words [ "google-spreadsheet_endRow" ] = { en : "to row" , de : "bis Zeile" } ;
33- Blockly . Words [ "google-spreadsheet_sheetName" ] = { en : "sheet name" , de : "Tab Name" } ;
34+ Blockly . Words [ "google-spreadsheet_sheetName" ] = { en : "sheet name" , de : "Blattname" } ;
35+ Blockly . Words [ "google-spreadsheet_newSheetName" ] = { en : "sheet name" , de : "Neuer Blasttname" } ;
3436
3537
3638Blockly . Words [ "google-spreadsheet_anyInstance" ] = { en : "all instances" , de : "Alle Instanzen" } ;
@@ -98,6 +100,19 @@ Blockly.Sendto.blocks["google-spreadsheet.append"] =
98100 " </value>" +
99101 "</block>" ;
100102
103+
104+ Blockly . Sendto . blocks [ "google-spreadsheetduplicateSheet" ] =
105+ '<block type="google-spreadsheet.duplicateSheet">' +
106+ ' <value name="NAME">' +
107+ " </value>" +
108+ ' <value name="INSTANCE">' +
109+ " </value>" +
110+ ' <value name="SHEET_NAME">' +
111+ " </value>" +
112+ ' <value name="NEW_SHEET_NAME">' +
113+ " </value>" +
114+ "</block>" ;
115+
101116Blockly . Blocks [ "google-spreadsheet.append" ] = {
102117 init : function ( ) {
103118 var options = [ [ Blockly . Translate ( "google-spreadsheet_anyInstance" ) , "" ] ] ;
@@ -297,7 +312,57 @@ Blockly.Blocks["google-spreadsheet.deleteSheet"] = {
297312
298313Blockly . JavaScript [ "google-spreadsheet.deleteSheet" ] = function ( block ) {
299314 var dropdown_instance = block . getFieldValue ( "INSTANCE" ) ;
300- var data = Blockly . JavaScript . valueToCode ( block , "SHEETNAME " , Blockly . JavaScript . ORDER_ATOMIC ) ;
315+ var data = Blockly . JavaScript . valueToCode ( block , "SHEET_NAME " , Blockly . JavaScript . ORDER_ATOMIC ) ;
301316
302317 return 'sendTo("google-spreadsheet' + dropdown_instance + '", "deleteSheet", ' + data + ");\n" ;
318+ } ;
319+ Blockly . Blocks [ "google-spreadsheet.duplicateSheet" ] = {
320+ init : function ( ) {
321+ var options = [ [ Blockly . Translate ( "google-spreadsheet_anyInstance" ) , "" ] ] ;
322+ if ( typeof main !== "undefined" && main . instances ) {
323+ for ( var i = 0 ; i < main . instances . length ; i ++ ) {
324+ var m = main . instances [ i ] . match ( / ^ s y s t e m .a d a p t e r .g o o g l e - s p r e a d s h e e t .( \d + ) $ / ) ;
325+ if ( m ) {
326+ var n = parseInt ( m [ 1 ] , 10 ) ;
327+ options . push ( [ "google-spreadsheet." + n , "." + n ] ) ;
328+ }
329+ }
330+ }
331+
332+ if ( ! options . length ) {
333+ for ( var u = 0 ; u <= 4 ; u ++ ) {
334+ options . push ( [ "google-spreadsheet." + u , "." + u ] ) ;
335+ }
336+ }
337+
338+ this . appendDummyInput ( "NAME" )
339+ . appendField ( Blockly . Translate ( "google-spreadsheet_duplicateSheet" ) ) ;
340+
341+ this . appendDummyInput ( "INSTANCE" )
342+ . appendField ( Blockly . Translate ( "google-spreadsheet_instance" ) )
343+ . appendField ( new Blockly . FieldDropdown ( options ) , "INSTANCE" ) ;
344+
345+ this . appendValueInput ( "SHEET_NAME" ) . appendField ( Blockly . Translate ( "google-spreadsheet_sheetName" ) ) ;
346+ this . appendValueInput ( "NEW_SHEET_NAME" ) . appendField ( Blockly . Translate ( "google-spreadsheet_newSheetName" ) ) ;
347+
348+ /* if (input && input.connection) {
349+ input.connection._optional = true;
350+ }*/
351+
352+ this . setInputsInline ( false ) ;
353+ this . setPreviousStatement ( true , null ) ;
354+ this . setNextStatement ( true , null ) ;
355+
356+ this . setColour ( Blockly . Sendto . HUE ) ;
357+ this . setTooltip ( Blockly . Translate ( "google-spreadsheet_tooltip" ) ) ;
358+ this . setHelpUrl ( Blockly . Translate ( "google-spreadsheet_help" ) ) ;
359+ } ,
360+ } ;
361+
362+ Blockly . JavaScript [ "google-spreadsheet.duplicateSheet" ] = function ( block ) {
363+ var dropdown_instance = block . getFieldValue ( "INSTANCE" ) ;
364+ var source = Blockly . JavaScript . valueToCode ( block , "SHEET_NAME" , Blockly . JavaScript . ORDER_ATOMIC ) ;
365+ var target = Blockly . JavaScript . valueToCode ( block , "NEW_SHEET_NAME" , Blockly . JavaScript . ORDER_ATOMIC ) ;
366+
367+ return 'sendTo("google-spreadsheet' + dropdown_instance + '", "duplicateSheet", {"source": ' + source + ', "target": ' + target + '}' + ");\n" ;
303368} ;
0 commit comments