Commit Graph

39 Commits

Author SHA1 Message Date
Erik Pasternak
060c2b34df Revert "Propagate the visible state when blocks connect (#2003)"
This reverts commit ec78eeb39b.
2019-07-19 17:06:38 -07:00
Erik Pasternak
a002621ec2 Revert "Properly set the display style on blocks when connections are unhidden"
This reverts commit bacfae24dd.
2019-07-19 17:06:28 -07:00
Erik Pasternak
198e445cb7 Revert "Fix wrong method call"
This reverts commit 3adc554f6b.
2019-07-19 17:06:19 -07:00
Erik Pasternak
7e3bdf024f Fix wrong method call 2019-07-18 16:14:30 -07:00
Erik Pasternak
c95d5771c8 Properly set the display style on blocks when connections are unhidden
We weren't always setting the display style on blocks when the hidden
state changed on a connection. This meant that sometimes unhiding a
connection would cause the attached block to be invisible.

This moves the display style code into the setHidden so it is never
skipped.
2019-07-18 16:14:22 -07:00
Neil Fraser
848d3a3509 Move setCssTransform & createSvgElement to dom.
Also move SVG_NS and HTML_NS properties.
2019-06-07 10:32:57 -07:00
Neil Fraser
d1a29739d8 Move utilities into own directory.
TODO: There are more functions which may be migrated into dom and string.
2019-06-07 10:32:57 -07:00
Neil Fraser
5bf7069a2f Remove goog.math.Coordinate 2019-06-07 10:32:57 -07:00
Neil Fraser
9f528922a7 Fix some dependencies 2019-05-24 15:45:05 -07:00
RoboErikG
ec78eeb39b Propagate the visible state when blocks connect (#2003)
* Propagate the visible state when blocks connect

This fixes #1967.

In rendered connections when connecting:
- If the superior connection is hidden this hides the newly connected block.
- If the superior connection isn't hidden it makes sure the block is visible.

In rendered connections when disconnecting:
- If the superior connection is hidden, make the disconnected block stack visible.

TODO before review:
 - write tests.
 - update collapsed message

* Add missing overrides

* Add tests for hidden connections and fix a bug while disposing
2019-04-15 16:23:19 -07:00
alschmiedt
a759fffcc1 Fixes bumping too much when in RTL 2019-04-04 15:54:17 -07:00
Beka Westberg
1b2ec7230c Added randomness to bumping per Issue #2011 2018-12-02 12:34:34 -08:00
Andrew n marshall
411ec9724e Replacing node.parentNode.removeChild(node)
...with Blockly.utils.removeNode(..), which includes
a null/undefined check on parentNode before continuing.
2018-09-04 13:31:53 -07:00
Neil Fraser
c51cf0b79c Remove goog.dom.removeNode 2018-07-11 12:20:02 -07:00
Neil Fraser
51e86263c7 Correct requires for goog.math.* 2018-07-11 12:20:02 -07:00
Neil Fraser
0583bee502 Correct requires for goog.dom 2018-07-11 12:20:02 -07:00
Neil Fraser
284b79407e Require Blockly.utils where needed. 2018-07-11 12:20:02 -07:00
Neil Fraser
3909bd420a Remove all goog.asserts and goog.isXxx
First step to reducing Closure’s footprint.
2018-07-11 12:20:02 -07:00
Rachel Fenichel
14e846f2b7 Fix 1380 2018-05-17 16:19:44 -07:00
Neil Fraser
662d79443f Add 'ordered' option to descendant getting functions. (#1786) 2018-04-17 11:41:03 -07:00
Rachel Fenichel
2b7b4bf3af More lint 2018-01-24 16:40:07 -08:00
Rachel Fenichel
799148da7e More spaces 2018-01-24 10:22:13 -08:00
Rachel Fenichel
3575d53018 57 errors remaining 2018-01-23 18:42:45 -08:00
Rachel Fenichel
98914fcf6b Dragging changes, rebased on develop (#1078)
* Add block drag surface translateSurfaceBy

* Add dragged connection manager

* Add gesture.js

* Add GestureHandler

* Implemented gesture skeleton

* Most basic workspace dragging

* Add dragged connection manager

* cleanup

* doc

* more cleanup

* Add gesture handler

* Add translateSurfaceInternal

* core/block_dragger.js

* cleanup

* Pull in changes to dragged connection manager

* Pull in changes to dragged connection manager

* comments

* more annotations

* Add workspace dragger

* Add coordinate annotations

* Start on block dragging

* Limit number of concurrent gestures

* Add some TODOs

* start using dragged connection manager

* Set origin correctly for dragging blocks

* Connect or delete at the end of a block drag.

* cleanup

* handle field clicks and block + workspace right-clicks

* move code into BlockDragger class, but still reach into Gesture internals a lot

* Clean up block dragger

* Call blockDragger constructor with correct arguments

* Enable block dragging in a mutator workspace

* Add workspace dragger

* click todos

* Drag flyout with background

* more dragging from flyout

* nit

* fix dragging from flyouts

* Remove unused code and rename gestureHandler to gestureDB

* Rename gesture handler

* Added some jsdoc in gesture.js

* Update some docs

* Move some code to block_svg and clean up code

* Lots of coordinate annotations

* Fix block dragging when zoomed.

* Remove built files from branch

* More dragging work (#1026)

-- Drag bubbles while dragging blocks
-- Use bindEventWithChecks to work in touch on Android. Not tested anywhere else yet.
-- Handle dragging blocks while zoomed
-- Handle dragging blocks in mutators
-- Handle right-clicks (I hope)
-- Removed lots of unused code

* More dragging work (#1048)

- Removed gestureDB
- Removing uses of terminateDrag
- Cleaned up disposal code

* Dragging bugfixes (#1058)

- Get rid of flyout.dragMode_ and blockly.dragMode_
- Make drags from the flyout start from the top block in the group
- Block tooltips from being scheduled or shown during gestures
- Don't resize mutator bubbles mid-drag

* Fix events in new dragging (#1060)

* rebuild for testing

* unbuild

* Fix events

* rebuild

* Fix up cursors

* Use language files from develop

* Remove handled TODOS

* attempt to fix IE rerendering bug, and recalculate workspace positions on scroll

* Rebuild all the things

* Comment cleanup; annotations; delete unused variables.
2017-05-05 12:42:53 -07:00
Rachel Fenichel
f2f522d77a Miscellaneous comment cleanup 2017-04-05 15:52:49 -07:00
Rachel Fenichel
2474ec53ab Stop bumping neighbours in headless blockly 2017-01-27 11:33:04 -08:00
Neil Fraser
f6aef459fc API-breaking cleanup. But doubtful anyone will be affected. (#748)
* Make add/removeClass return whether they did anything.
* Move more functions onto utils.
* Move bind functions to Blockly.
* Routine recompile.
2016-11-15 13:54:33 -08:00
Neil Fraser
875ffad42c Fix selection bug on bumps caused by mutator actions. 2016-08-03 18:33:18 -07:00
Monica Kozbial
2b191e897e Adding indexing settings, tests and fixing bugs (#464)
* Add indexing setting for JavaScript Generation

Adding setting to allow for switching between zero and one based indexing for Blockly Blocks such that the generated code will use this flag to determine whether one based or zero based indexing should be used. One based indexing is enabled by default.

* Updating js lists to do zero and one based index

Updated generated JavaScript to change depending on whether one based indexing is enabled or not.

* Updating js text to do zero and one based index

Change so that JavaScript generated for text blocks either assumes blocks use zero or one based index based on setting.

* Start of python indexing

Start of work on allowing one and zero indexing for generated python for lists.

* Fixing bug and lint fixed

Fixing bug caused by not setting the return of concat when concatenating lines for sublist and substring functions. Also renamed these functions to be getSubsequece. Fixed lint errors with spacing

* Converting from if to switch statements

Comverting if statements to switch statements when appropriate and adding spacing.

* Modified sublist JavaScript generation

Added case so that helper function is not generated if not necessary. Helper function is not generated if list length is not needed or if list is a simple block (such as a variable, as oppossed to a function call or list create).

* Stripping unecessary ids

Removing ids from xml file.

* Localisation updates from https://translatewiki.net.

* Fix typo in flyout.js (#403)

* Fix typo in flyout.js (#402)

* Localisation updates from https://translatewiki.net.

* Add indexing setting for JavaScript Generation

Adding setting to allow for switching between zero and one based indexing for Blockly Blocks such that the generated code will use this flag to determine whether one based or zero based indexing should be used. One based indexing is enabled by default.

* Updating js lists to do zero and one based index

Updated generated JavaScript to change depending on whether one based indexing is enabled or not.

* Updating js text to do zero and one based index

Change so that JavaScript generated for text blocks either assumes blocks use zero or one based index based on setting.

* Fixing bug and lint fixed

Fixing bug caused by not setting the return of concat when concatenating lines for sublist and substring functions. Also renamed these functions to be getSubsequece. Fixed lint errors with spacing

* Converting from if to switch statements

Comverting if statements to switch statements when appropriate and adding spacing.

* Modified sublist JavaScript generation

Added case so that helper function is not generated if not necessary. Helper function is not generated if list length is not needed or if list is a simple block (such as a variable, as oppossed to a function call or list create).

* Stripping unecessary ids

Removing ids from xml file.

* Updating generator test

Modifying sublist test and re-formatting spacing between blocks.

* Updating js lists to do zero and one based index

Updated generated JavaScript to change depending on whether one based indexing is enabled or not.

* Updating js text to do zero and one based index

Change so that JavaScript generated for text blocks either assumes blocks use zero or one based index based on setting.

* Fixing bug and lint fixed

Fixing bug caused by not setting the return of concat when concatenating lines for sublist and substring functions. Also renamed these functions to be getSubsequece. Fixed lint errors with spacing

* Converting from if to switch statements

Comverting if statements to switch statements when appropriate and adding spacing.

* Modified sublist JavaScript generation

Added case so that helper function is not generated if not necessary. Helper function is not generated if list length is not needed or if list is a simple block (such as a variable, as oppossed to a function call or list create).

* Stripping unecessary ids

Removing ids from xml file.

* Localisation updates from https://translatewiki.net.

* Localisation updates from https://translatewiki.net.

* Updating js lists to do zero and one based index

Updated generated JavaScript to change depending on whether one based indexing is enabled or not.

* Fixing bug and lint fixed

Fixing bug caused by not setting the return of concat when concatenating lines for sublist and substring functions. Also renamed these functions to be getSubsequece. Fixed lint errors with spacing

* Modified sublist JavaScript generation

Added case so that helper function is not generated if not necessary. Helper function is not generated if list length is not needed or if list is a simple block (such as a variable, as oppossed to a function call or list create).

* Stripping unecessary ids

Removing ids from xml file.

* Updating generator test

Modifying sublist test and re-formatting spacing between blocks.

* Adding tests for indexing and extra cases

Adding tests for indexing with custom block to adjust number based on what indexing is being generated.

* Adding tests and renaming tests

Adding tests for sublist and renaming tests.

* Fixes for order for sublists

Fixes so that parenthesis are generated properly for index for sublist

* Cleaning up test generated code

Changing order returned for unit test adjust index function to generate less unecessary parenthesis.

* Adding tests for order

Adding tests for order, relevant for methods that use index from start (because 1 is added)

* Fixing JS order for getIndex and setIndex

Changing to the correct order type when calling valueToCode in JS generation for getIndex and setIndex.

* Fixed unittest adjustIndex

Fixed uninttest adjustindex to also check whether the ONE_BASED_INDEXING variable has been defined to ensure proper behaviour.

* Fixing lint and formatting for JS/lists

Making line fixes and changing an if/elseif to case statement.

* Tests added to include case for bug found

Added tests with sublist combinations of different where's for the two indices after bug for this found in python.

* Adding and renaming tests

Adding test case for creating a sublist that encompasses the whole list but uses # and #-end instead of first last (applicable for python). Also, renaming tests.

* Adding contant and fixing python lists bugs

Adding contant for ONE_BASED_INDEXING and fixing bugs in python for lists.

* Fixing test get random

Fixing test get random to take into account indexing for return value.

* Adding indexing checkbox to test page

Adding checkbos on test page so that code can be generated for one and zero based indexing. Languages that are generated with zero based indexing that do not have it implemented will fail tests as expected.

* Fixing unittest getremove random

Fixing unittest getremove random to take into account the return value based on indexing.

* Change comparison for getremove random test

Fixed comparison to equal for the return value for getremove random.

* Fixing bugs with lists zero-indexing

Fixing getIndex and getSublist methods to pass for zero-indexed tests.

* Adding test cases and formatting

Adding test cases to text tests, reordering a couple list test, and formatting block spacing.

* Fixing unittest expected value

Fixing expected value fore unit tests for sublist.

* Cleanup

Removing obvious comments, formatting fixes, and naming in generated code in JS.

* Helper function for Python lists

Adding helper function for casting to int for indices.

* Expanding helper to reduce duplicated code

Expanding helper method to also get the property with the correct order and check indexing to reduce duplicated code.

* Cleaning up JS indexing with helper function

Adding helper function for indexing and used it in lists and text.

* Moving helper function and formatting fixes

Moving helper function, formatting fixes, and changing some generated code variable names.

* Fixing python generation for text

Fixing all failinng tests for python and using new helper method.

* Lint fixes and order in indexOf

Making lint fixes and correcting returned order in indexOf.

* Python variable renaming

Renaming a few generated variables.

* Fixing comment and order

Fixing comment to list Blockly.Block type and fixing order because it could be higher.

* Switching back to if

Switching switch back to if statements because there weren't enough cases to warrant for a switch.

* Adding order and fixing lists for Dart

Adding if null operator to operator precedence for Dart. Also, fixing lists implementation to pass unit tests and adding zero-indexing functionality.

* Formatting and lint fixes

Formatting and lint fixes

* Dart text fixed

Fixing Dart text generation to pass unit tests.

* Changing back  to variable

Changing switch condition back to variable.

* Fixing ORDER_OVERRIDES

Inner and outer order was switched .

* Adding bug with order caused by generator change

Flooring order before comparision because of how the order constants were modified.

* Adding list tests

Adding tests for additional cases for lists/

* Adding comment for dart order

Adding comment for Dart ORDER_IF_NULL operator.

* Formatting fixes

Formatting fixes for line indentation.

* Fixing PHP order and lists generation

Fixing PHP order constants and fixing lists so that they pass unit tests.

* Fixing tests

Removing duplicate unit test

* Adding text tests

Adding tests for text.

* Renaming variable and removing unused variable

Renaming variables from exceptionIndex to errorIndex and removing unused at variable.

* Adding missing function call to test

Adding missing funciton call to test that was causing tests to fail when they shouldn't.

* Fixing PHP text generation

Fixing PHP text code generation so it passes unit tests.

* Formatting fixes

Cleaning up code, renamiing a variable.

* Fixing failing subsequence tests

Fixing JS code that failed for sublist/substring tests.

* Fixing intentation

Fixing indentation.

* Fixing Dart sublist/substring

Fixing sublist/substring to include condiiton where FROM_START  (and not throw error by mistake) when zero-indexed.

* Adding order subtraction test

Adding test for checking order for subtraction x- (y - z) x  - (y + z).

* Updating to new PHP power operator

Updating from pow function to ** operator to clean up code.

* Updating to new removeWhere

Updating removeMatching to removeWhere because new version of Dart now use removeWhere.

* Fix for lua rounding assertequals

Adding check for number in equlity check for comparing number for floats.

* Adding test for copy of list

Adding test that checks the list is copied when a sublist is made first-last.

* Formatting and order fixes

Fixing formatting such as indentation and order fixes.

* Adding comment for clarity

Adding comment about how Lua code generation is not supporting zero indexing.

* Changed variable names in code

Changed variable names to follow style guide and changed for loop variable from n to i as is typical.

* Reducing unecessarily generated functions and renaming variables

Reducing number of generated functions using gensym_ by adding parameters to provided function. Renaming variables to make functions more readble.

* Fixing sublist order and sort variable

Fixing order used for valueToCode for sublist and renaming list variable in sort to match rest of code..

* Fixing order constant order

Removing operator () that was incorrect and addiung ~,

* Fixing order and indentation

Fixing order return fro create lists blocks and fixing indentationn for string array.

* Fixing order and renaming variables

Fixing order to be the correct strength and renaming variables to be more readable/

* Changing assert blocks for unit tests

Changing assert blocks to have a value input instead of a field so there is more flexibility in writing tests.

* Cleaning up and adding missing order tests

Adding tests for order for paramters for list blocks that weren't being tested to uncover bugs. Test were also cleaned up/reorganized/renamed to be more readable and shorter vertically (but lines  wider horizontally).

* Compile error fix and order in Dart generation.

Fixing compile error in generated code and incorrect order in get sublist for Dart.

* Fixing typo in getIndex and invalid parameter name

Fixing type in getIndex where list code should have been appended but instead an undefined variable was added. The parameter in lists_sort was changed to my_list because list is a reserved word in python.

* Fixing order, parenthesis bug, and variable declaration in Lua

Fixing incorrect order in Lua. Fixing bug caused by missing parenthesis around ternary operator in code. Variable code was declared with JavaScript syntax, this was fixed to be valid in Lua.

* Adding tests and formatting tests

Adding missing test for order in text/lists. Changing spacing/order of tests and updating comments.

* Fixing error in code

Changing to correct function call in empy tests and changing test name that was duplicated to be more clear.

* Renamed test helper function

* Fixing order and renaming variable in JS generator

Fixing order for charAt and renaming variable in code list_sort from listCode to list to be consistent with rest of code.

* Fixing order for dart text

Fixing roder for dart charAt

* Cleaning up generated code for Dart getIndex

Cleaning up generated code for Dart getIndex so that helper functions aren't generated unecessarily and adding comments.

* Fixing Dart remove random error

Fixing error caused by remove random implementation in Dart. index should have been x but instead was length - x.

* Fixing unit test blocks

Fixing Lua unit test block that should have just returned the number and removing unecessary checks in other blocks because the constant was defined.

* Fixing Lua assert equals block

string.format was throwing an error if one of the values happened to be a boolean.

* Adding tests for create text with number

Adding test for create text with numbers as parameters

* Fixing lua unit test block

Lua unit test block should have added 1

* Removing indexing setting for Lua tests

Removing setting index setting for Lua generation because it is always one-indexed.

* Fixing order and create text

Fixing failing test caused by improper order and fixed create text to properly convert to string when there is one element.

* Running linter on generator code

Running linter on generator code and fixing spacing/indentation problems.

* Editing comments and removing uneeded parenthesis

Editing and adding comments and removing uneeded parenthesis around ternary operator condition.

* Fixing order and changing variable names

Fixing orders that were incorrect and changing variable names to be more descriptive and consistent across code.

* Adding comment about list support and fixes for PHP

Adding comment about how lists are not fully supported for PHP. Adding missing order to PHP and fixing order errors throughout. Fixing regex for variable matching in lists. Cleaning up variable names to be more readable and consistent with other parts of code.

* Reducing complexity for getremove/remove in JS

Reducing complexity in generated code for getremove/remove in JavaScript by replacing unecessary helper function.

* Fixing spacing before inline comments

Ensuring there are two spaces before inline comments.

* Changing JS list copy for clarity

Changing JavaScript list copy to use slice(0) instead of concat for clarity and to use the same pattern as the other sublist methods.

* Changing generated variable name tmp_x

Changing tmp_x to tmpX to follow closer to the correct style for JavaScript.

* Prefixing empy lines between comment text

Prior to this change, comments with an empty line between text did not have a comment prefix before it, resulting in comment blocks that seemed disjoined although they were for the same block. This change affects how the prefix line function works so that those lines will have the prefix (if applicable) while still taking into account the trailing newline character.

* Changing for loops variable names

Changing most for loops to use i as the variable name (or j if applicable) or changing name to be more readable.

* Simplifying provided subsequence function

Simplifying subsequence function to generate a simpler function depending on where combination instead of a larger complex function that works for all where combinations.

* Style fixes

Fixing indentation, comments, and other formatting-type changes based on pull request comments.

* Fixing indentation

Fixing indentation and removing an extra newline.

* Fixing PHP mode implementation

Fixing PHP mode implementation to properlyu return multiple modes if applicable.

* Fixing line too long

Wrapping lines in php/math.js with lines longer than 80 characters.

* Wrapping long lines

Wrapping lines that are too long.

* Changing boolean casing

Changing boolean casing to be lowercase.
2016-07-08 11:43:48 -07:00
Neil Fraser
02b2c219eb Prevent selected block from ending up underneath a bumped block. 2016-06-14 17:36:50 -07:00
Neil Fraser
cf8ee673a9 Fix inheritance on rendered connection.
Closure compiler on maximum compression breaks badly due to lack of
@extends attribute.
2016-06-03 18:44:40 -07:00
Rachel Fenichel
c3f27127d3 lint 2016-06-01 15:31:43 -07:00
Rachel Fenichel
03de6b6a92 Move connections at the end of render, instead of in the middle of drawing 2016-05-31 15:39:08 -07:00
Rachel Fenichel
4841f136f1 More lint and eslint configuration. 2016-05-25 15:35:11 -07:00
Rachel Fenichel
077aafad29 lint 2016-05-10 16:36:40 -07:00
Rachel Fenichel
e28db7bc4e JS Doc and private 2016-05-10 15:46:51 -07:00
Rachel Fenichel
45f9b8af05 consolidation 2016-05-10 15:45:19 -07:00
rachel-fenichel
7b1fdcb7c6 make tests work; make connext_ a member function. 2016-05-10 15:45:19 -07:00
rachel-fenichel
fbaa33b888 split connection into rendered_connection and connection 2016-05-10 15:43:32 -07:00