Commit Graph

676 Commits

Author SHA1 Message Date
Gihun Ham
0732b7e2e1 add korean translation files 2024-08-07 14:52:11 +09:00
1ilit
07d7766fa8 Recognize many to one relationships on sql import 2024-08-06 14:33:35 +03:00
davevad93
eee1b9925c
Add Italian translation (Italiano-it) 2024-08-05 17:30:40 +02:00
1ilit
0b95ad2b81 Fix undefined precision 2024-08-05 12:49:12 +03:00
tasnim
94a076c9bc rtl-fix address issues 2024-08-05 11:31:11 +03:00
Tasnim Tantawi
048704f572
Merge branch 'drawdb-io:main' into rtl-fix 2024-08-05 10:15:37 +03:00
1ilit
2f1cca13d6 Support unsigned types (#177) 2024-08-04 17:02:29 +03:00
1ilit
1df8e4d4e0 Allow connecting serial and int field (#169) 2024-08-04 16:34:06 +03:00
Tasnim Tantawi
de0847b45b
Merge branch 'drawdb-io:main' into rtl-fix 2024-08-04 15:29:35 +03:00
tasnim
5ec54e2445 Display UI in RTL languages correctly 2024-08-04 15:27:31 +03:00
1ilit
318ed9a0ec
Merge pull request #206 from nktfh100/fix-multi-line-field-comments
Fix multi line field comments in SQL export.
2024-08-04 13:41:42 +04:00
Herat
51ec5aef3d Add Gujarati locale 2024-08-03 22:26:42 -05:00
nktfh100
432df7f1da Fix multi line field comments 2024-08-03 14:22:56 +03:00
1ilit
da555e4706 Rename 'import' to 'reverse engineer' on the landing page 2024-08-03 13:36:48 +03:00
1ilit
114dd66309 Rename inport sql modal title 2024-08-03 13:27:18 +03:00
1ilit
726a93108c Clean up export as 2024-08-03 13:22:19 +03:00
1ilit
52b4477065 Check for invalid references on import 2024-08-02 14:59:21 +03:00
1ilit
ed12e3b9f5
Merge pull request #200 from tasnim0tantawi/mermaid-feature
Add export mermaid feature
2024-08-02 14:34:43 +04:00
1ilit
5565668988
Merge pull request #204 from AbdurRahman2004/main
Add Tamil language
2024-08-02 12:12:40 +04:00
1ilit
32cf7c6814 Fix import from sql when overwrite is off 2024-08-02 10:06:55 +03:00
AbdurRahman2004
51247d4a71 Add tn Tamil Language 2024-08-01 23:26:41 +05:30
1ilit
6f7b080e62 Show field size on the diagram 2024-08-01 13:44:22 +03:00
1ilit
844b24100e Fix field type not updating when enum name is changed (#193 part2) 2024-07-31 19:12:28 +03:00
1ilit
34d9045229
Merge pull request #202 from picimako/hungarian-translation
Add Hungarian translation
2024-07-31 16:49:28 +04:00
Tamas Balog
57339d6fa7 Add a missing comma in hu.js 2024-07-31 14:42:59 +02:00
Tamas Balog
474238dd72 Fix eslint errors 2024-07-31 14:40:19 +02:00
1ilit
52248f1016 Fix field type not updating when Type name is changed (#193 part1) 2024-07-31 14:50:06 +03:00
Tamás Balog
f746d08e1e
Merge branch 'main' into hungarian-translation 2024-07-31 13:21:26 +02:00
Tamas Balog
22503bd1ef Add Hungarian translation 2024-07-31 13:10:44 +02:00
tasnim
7dec05c064 Add export mermaid feature 2024-07-31 12:14:33 +03:00
1ilit
1a2ac74424
Merge pull request #191 from rakeshkumar1019/fix/adding_telugu_in_local
Add Telugu
2024-07-31 09:56:28 +04:00
1ilit
5d9ce4a627
Merge pull request #195 from picimako/fix-typos-in-engligh-translation
Fix typos in the English (en.js) translation
2024-07-31 09:39:27 +04:00
rakeshkumar1019
0ae635392b feat: name in english 2024-07-31 07:39:14 +05:30
rakeshkumar1019
c31cb982d1 feat: add telugu to local 2024-07-31 07:37:45 +05:30
Tamas Balog
39d2b2972d Fix typos in the English (en.js) translation 2024-07-30 20:59:04 +02:00
thxrhmn
f6989ec7a3 feat: Add indonesian locale 2024-07-30 20:42:08 +07:00
Peter Dave Hello
5c6da21b6a Fix i18n, cc #178 #118 #115 2024-07-30 01:01:18 +08:00
1ilit
68af0723cf
Merge pull request #185 from beladevo/users/beladevo/add-hebrew-localization
Add Hebrew localization
2024-07-29 13:51:07 +04:00
Omri
cbc5858e1d Minor fix of language name 2024-07-29 12:37:19 +03:00
cooj
4cd913ce0b Fix Simplified Chinese translation 'comment' Word 2024-07-29 16:53:01 +08:00
Omri
8a0328a501 Add Hebrew localization 2024-07-29 11:26:49 +03:00
Peter Dave Hello
795c268c92 Add zh-tw Traditional Chinese translation 2024-07-29 02:59:46 +08:00
1ilit
61f5cd0cf2
Merge pull request #171 from kartik1112/main
Fix size not exporting to sql (#170)
2024-07-28 20:03:40 +04:00
Kartik Buttan
8655aa183c removed console logs 2024-07-28 21:00:19 +05:30
Aymen Abdelouahab
fc94be3bf7
Create ar.js 2024-07-27 21:00:03 +01:00
Aymen Abdelouahab
fb873aec17
Update i18n.js
Create translation for Arabic
2024-07-27 20:53:19 +01:00
1ilit
3679f345b3 Add Armenian translation 2024-07-27 19:57:12 +03:00
Kartik Buttan
7db4cc76a5 Export with size bug fixed 2024-07-27 00:51:26 +05:30
1ilit
653f4010d3 Merge branch 'main' into main 2024-07-26 11:09:49 +03:00
volkankoc
835c1dd41f correction made 2024-07-25 23:29:07 +03:00
Kartik Buttan
28fa40bfb8 Add Punjabi locale 2024-07-25 23:13:34 +05:30
Kartik Buttan
82b7949e68 Add French locale 2024-07-25 22:59:21 +05:30
volkankoc
7005e0ca53 added Turkish Language 2024-07-25 15:25:13 +03:00
Amey
c9174deb88 add marathi to local 2024-07-25 00:56:45 +05:30
Mohit
04c38b2992 rel attribute added to anchor tags 2024-07-24 13:15:45 +05:30
Mohit
f9efe66389 User routed to different tab for external links 2024-07-24 10:41:37 +05:30
Ikko Eltociear Ashimine
20de37dc52
chore: update template3.js
recieved -> received
2024-07-24 00:57:29 +09:00
1ilit
85504f317c
Merge pull request #157 from huyjs9/fix/update-title
Fix update title on first page load
2024-07-23 16:47:24 +04:00
1ilit
16b2d30b8c Fix message in timeline for panning 2024-07-22 19:53:11 +03:00
1ilit
faf4b157ff Fix moving tables not working in simple canvas 2024-07-22 09:23:24 +03:00
Huy Bui
4485bf73a7 fix: change approach to use key for reconciliation 2024-07-21 17:22:23 +07:00
Huy Bui
1bff574d56 fix: update title on mounted 2024-07-21 16:58:47 +07:00
1ilit
90ee0962d3
Merge pull request #135 from vsn4ik/fullscreen-indicator
Fullscreen native indicator
2024-07-20 11:41:35 +04:00
Vasilii A
9f66df90b1 fullscreen indicator 2024-07-19 23:22:48 +00:00
Felix Zedén Yverås
8a736b5ef9 feat: support horizontal scrolling
Certain input devices, such as laptop touchpads, support horizontal
scrolling. This commit adds support for such horizontal scroll
inputs.
2024-07-18 19:47:47 +02:00
Felix Zedén Yverås
5a56c3b354 refactor: export CanvasContextProvider to follow established context pattern
As noted [in the review](
https://github.com/drawdb-io/drawdb/pull/148#discussion_r1681584836
), I disagree with this pattern. However, I will follow it to get
these features added.
2024-07-17 22:22:52 +02:00
Felix Zedén Yverås
471d2ebdf0 style: remove //@ts-lint which caused warning 2024-07-17 22:22:52 +02:00
Felix Zedén Yverås
3659ba9143 fix: release pointer capture when using onPointerLeave events
Certain input sources (such as touch) are "captured" when they
press an element. This means the pointer is always considered
"inside" the element by the browser, even when they visually are
not. This caused some issues on mobile browsers where touch and
stylus events could not connect table columns with each other.

Just to be safe, I've added the required `releasePointerCapture`
call everywhere `onPointerEnter` or `onPointerLeave` is used.
2024-07-17 22:22:52 +02:00
Felix Zedén Yverås
47fce123d3 feat: support scroll wheel panning
This is similar to tools like figma, where the scroll wheel pans
the view and scroll is only done if the control key is pressed.

New bindings:
scroll wheel: pan y
shift + scroll wheel: pan x
ctrl + scroll wheel: zoom
2024-07-17 22:22:52 +02:00
Felix Zedén Yverås
67851dad8f fix: reduce jitter by disabling pointer events on line 2024-07-17 22:22:52 +02:00
Felix Zedén Yverås
e4e22dee20 fix: rewrite coordinate management
After some initial smaller fixes, it turned out that I had broken
the red line used when linking fields. Fixing this was not trivial
as I found myself battling a lot of small bugs relating to scale
and translation in the existing code. This was made extra difficult
as a lot of coordinates were calculated when necessary in
Canvas.jsx.

This commit attempts to simplify the coordinate management in a few
different ways:
* There are now two distinct coordinate systems in use, typically
  referred to as "spaces". Screen space and diagram space.
* Diagram space is no longer measured in pixels (though the
  dimension-less measure used instead still maps to pixels at 100%
  zoom).
* The canvas now exposes helper methods for transforming between
  spaces.
* Zoom and translation is now managed via the svg viewBox property.
  * This makes moving items in diagram space much easier as the
    coordinates remain constant regardless of zoom level.
* The canvas now wraps the current mouse position in a context
  object, making mouse movement much easier to work with.
* The transform.pan property now refers to the center of the screen.

A new feature in this commit is that scroll wheel zoom is now based
on the current cursor location, making the diagram more convenient
to move around in.

I have tried to focus on Canvas.jsx and avoid changes that might be
desctructive on existing save files. I also believe more refactors
and abstractions could be introduced based on these changes to make
the diagram even easier to work with. However, I deem that out of
scope for now.
2024-07-17 22:22:52 +02:00
Felix Zedén Yverås
32c82168fe feat: add debug coordinate overlay
Makes debugging issues in conversion from screen space
to diagram space easier.

Only adding english translations as I do not speak the
other languages.
2024-07-14 15:36:54 +02:00
Felix Zedén Yverås
354ea47529 fix: validate transform data before storage
During testing I accidentally managed to submit `NaN` as a pan
coordinate. This had the unfortunate side effect of bricking the
editor.

Given the serverity of an accidental `NaN` and that `NaN`s are not
impossible considering the amount of math involved in mouse move
operations, this commit introduces a simple validation step.

The new validation step should additionally be able to unstuck
anyone who have happened into this state by accident already.
2024-07-14 15:36:54 +02:00
Felix Zedén Yverås
cdecf7c633 feat: add basic touchscreen support
This is basically a migration from mouse events to
[pointer events](
  https://developer.mozilla.org/en-US/docs/Web/API/Pointer_events
).

The `PointerEvent` interface inherits all of the `MouseEvent`
properties, meaning that existing code can essentially be left
as-is. The only major change is making sure we only respond to the
"primary" pointer.

Known issues include:
* stylus hover is not detected
* touchscreens do not have a concept of hover, making it difficult
  to e.g. resize areas
* no touch gesture support, e.g. "pinch-to-zoom"
2024-07-14 15:36:54 +02:00
Felix Zedén Yverås
075a98d444 fix: remove unused ref 2024-07-14 15:36:54 +02:00
Felix Zedén Yverås
caae8e7385 fix: improve support for browsers with collapsing url bars
Some mobile browsers (e.g. chrome) uses collapsing url bars (the
bar collapses when you scroll). In such cases, `100vh` typically
refers to the full height of the viewport when the url bar is
collapsed (see also `svh`, `lvh` and `dvh`, e.g. at
<https://ishadeed.com/article/new-viewport-units/#the-small-large-and-dynamic-viewport-units>
). This meant that on my tablet, the editor would extend below the
visible page until I scrolled it into view.

This commit re-uses a fix from some of my other projects
(specifically
<5c7e788d40/src/styles/globals.css (L14-L28)>
) where the root element is set to fill 100% height. This avoids
dealing with viewport units altogether. On my tablet, this means
that the url bar is visible and that the editor does not extend
below the visible page.
2024-07-14 15:36:54 +02:00
1ilit
a459f36f58 Fix increment being deleted when type is updated 2024-07-10 21:23:30 +03:00
1ilit
84abae7d06 Save database type and enums for templates 2024-07-08 11:54:04 +03:00
1ilit
6fee6553f1 Remove unnecessary commas in export index statements 2024-07-08 04:22:44 +03:00
1ilit
159dcca4dc Fix import diagram 2024-07-08 04:03:41 +03:00
1ilit
09f9117b72 Remove unused console.logs 2024-07-08 03:39:01 +03:00
1ilit
f682abdafe Fix import index for postgres 2024-07-08 03:34:01 +03:00
1ilit
52455a75d0 Make databases a proxy 2024-07-08 03:21:43 +03:00
1ilit
c84990ca6d Fix loading the diagram on open to load in types and enums 2024-07-08 02:18:12 +03:00
1ilit
c907cfea47 Add database icon to diagrams 2024-07-08 02:09:51 +03:00
1ilit
7c7177c402 Update landing page 2024-07-08 01:58:16 +03:00
1ilit
aecc5a134e Fix choose database not showing on first ever diagram 2024-07-08 01:42:48 +03:00
1ilit
322bb6e988 Merge branch 'main' into select-db
# Conflicts:
#	src/i18n/locales/en.js
#	src/utils/exportSQL/generic.js
2024-07-07 17:57:33 +03:00
1ilit
d5568c42bf Fix scrollbar height and corner 2024-07-07 17:21:54 +03:00
1ilit
9e2bb48fb8 Fix quotes on columns in checks 2024-07-07 16:55:04 +03:00
1ilit
897c125e3b Import from mssql 2024-07-06 21:45:51 +03:00
1ilit
982cac1d3a Remove types from mssql 2024-07-06 16:12:09 +03:00
1ilit
a3976bf250 Export mssql 2024-07-06 14:52:42 +03:00
1ilit
1580641e97 Delete types and enums on clear 2024-07-05 22:29:42 +03:00
1ilit
c005020048 Add option to declare an array 2024-07-05 22:28:44 +03:00
1ilit
9b606114df Rename TablesContext to DiagramContext 2024-07-04 23:18:20 +03:00
1ilit
3b1af3772e Add empty enums illustration 2024-07-04 23:06:09 +03:00
1ilit
a7fd4ec416 Fix select db modal opening after close 2024-07-04 20:57:06 +03:00
1ilit
d00c21b2e3 Add MSSQL types 2024-07-04 19:42:11 +03:00
1ilit
d7025e1ff1 Add error checking for enums 2024-07-04 02:10:24 +03:00