Giter Site home page Giter Site logo

jgraph / drawio-desktop Goto Github PK

View Code? Open in Web Editor NEW
46.8K 514.0 4.7K 2.5 MB

Official electron build of draw.io

Home Page: https://www.diagrams.net

License: Apache License 2.0

JavaScript 95.85% Shell 4.15%
javascript-applications electron-app graphics diagram-editor

drawio-desktop's Introduction

About

drawio-desktop is a diagramming and whiteboarding desktop app based on Electron that wraps the core draw.io editor.

Download built binaries from the releases section.

Can I use this app for free? Yes, under the apache 2.0 license. If you don't change the code and accept it is provided "as-is", you can use it for any purpose.

Security

draw.io Desktop is designed to be completely isolated from the Internet, apart from the update process. This checks github.com at startup for a newer version and downloads it from an AWS S3 bucket owned by Github. All JavaScript files are self-contained, the Content Security Policy forbids running remotely loaded JavaScript.

No diagram data is ever sent externally, nor do we send any analytics about app usage externally. This means certain functionality for which we do not have a JavaScript implementation do not work in the Desktop build, namely .vsd and Gliffy import.

Security and isolating the app are the primarily objectives of draw.io desktop. If you ask for anything that involves external connections enabled in the app by default, the answer will be no.

Support

Support is provided on a reasonable business constraints basis, but without anything contractually binding. All support is provided via this repo. There is no private ticketing support.

Purchasing draw.io for Confluence or Jira does not entitle you to commercial support for draw.io desktop. The draw.io integrations for Atlassian are sold by Seibert Media, they have no involvement with this project.

Developing

draw.io is a git submodule of drawio-desktop. To get both you need to clone recursively:

git clone --recursive https://github.com/jgraph/drawio-desktop.git

To run this:

  1. npm install (in the root directory of this repo)
  2. export DRAWIO_ENV=dev if you want to develop/debug in dev mode.
  3. npm start in the root directory of this repo runs the app. For debugging, use npm start --enable-logging.

Note: If a symlink is used to refer to drawio repo (instead of the submodule), then symlink the node_modules directory inside drawio/src/main/webapp also.

To release:

  1. Update the draw.io sub-module and push the change. Add version tag before pushing to origin.
  2. Wait for the builds to complete (https://travis-ci.org/jgraph/drawio-desktop and https://ci.appveyor.com/project/davidjgraph/drawio-desktop)
  3. Go to https://github.com/jgraph/drawio-desktop/releases, edit the preview release.
  4. Download the windows exe and windows portable, sign them using signtool sign /a /tr http://rfc3161timestamp.globalsign.com/advanced /td SHA256 c:/path/to/your/file.exe
  5. Re-upload signed file as draw.io-windows-installer-x.y.z.exe and draw.io-windows-no-installer-x.y.z.exe
  6. Add release notes
  7. Publish release

Note: In Windows release, when using both x64 and is32 as arch, the result is one big file with both archs. This is why we split them.

Local Storage and Session Storage is stored in the AppData folder:

  • macOS: ~/Library/Application Support/draw.io
  • Windows: C:\Users\<USER-NAME>\AppData\Roaming\draw.io\

Not open-contribution

draw.io is closed to contributions.

The level of complexity of this project means that even simple changes can break a lot of other moving parts. The amount of testing required is far more than it first seems. If we were to receive a PR, we'd have to basically throw it away and write it how we want it to be implemented.

We are grateful for community involvement, bug reports, & feature requests. We do not wish to come off as anything but welcoming, however, we've made the decision to keep this project closed to contributions for the long term viability of the project.

drawio-desktop's People

Contributors

0bmxa avatar alderg avatar bjonnh avatar davidjgraph avatar dependabot[bot] avatar dvalter avatar hmalphettes avatar internetscooter avatar kant avatar m-mohamedin avatar mediaslav avatar mhdonnelly avatar sisheogorath avatar snyk-bot avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

drawio-desktop's Issues

Draw.io Desktop PNG Export External Server

Version: 8.2.1

When using Draw.io desktop, certain export configurations trigger connections to externally hosted draw.io services. I have clients that require no "cloud" services be used with all data processed locally. draw.io desktop mostly solves that problem. Is this external connection intentional and required or an accidental inclusion in the desktop version?

Steps to Reproduce:

  • Create any diagram, a rectangle for example
  • File -> Export as -> PNG
  • Set Zoom to 10000% (I haven't tried to find the switch over point between local and remote, but larger zooms seem to trigger the remote connection)
  • draw.io makes request to 199.38.86.62

Last opened path in file manager

Hi. Your desktop application is awesome! You are the best! (=

Can you add to the app the last opened path in file manager when you export schemes, or open them?

OS - Ubuntu

Support Flatpak

Flatpak is a new way of easily distributing executables on Linux. Having support for it would be great, and would allow for example Draw.io to show up in the list of apps on Flathub.

Unable to easily use extended file selection dialog for offline app in High Sierra

(from: https://groups.google.com/forum/#!msg/drawio/JnzXOEgwuNg/iZbszGx5AwAJ)

App version: v8.5.12
MacOS Version: 10.13.4

Steps to reproduce:

  1. Create a new blank diagram
  2. File > Save As
  3. Click down chevron next to filename to access fuller save dialog (e.g. to navigate to a particular folder)

Expected behaviour:

Dialog expands and shows full save behaviour.

Actual behaviour:

Dialog UI partially changes, but dialog does not expand, making the path navigation impossible. Dialog also cannot be manually expanded.

Workaround:

Dialog seems to expand correctly if you attempt to open it again, after closing it in the "expanded" state.

Cancelling Save dialog results in error message

When cancelling the Save dialog on Windows desktop, I get an error message: "Error saving file - Unknown error".

After closing the error everything works as normal, so it's not a big problem, but it just seems like this cancel flow is not covered completely.

unknown_error

Can't launch

$   /mnt/sdb/TEMP$ draw.io
段错误 (核心已转储)

PDF resolution shrinkage

After issue #28 was fixed, the exported PDF was always shrunk.
For instance, I exported a diagram of 403*484 (after cropped), but the resolution of the exported PDF was 302*363.
I exported my diagram through both "Export as - PDF - Crop" and "Export as - Advanced - Format:PDF, Zoom:100%, Width:403, Height:484", the exported PDF was always shrunk to around 75% of the original cropped diagram (302/403 = 0.749).
I have tried to export many of my diagram and all the exported PDFs were shrunk to around 75% of the original cropped diagram.
BTW, the resolution of the PDF I exported from the exact same diagram two weeks ago (before issue #28) is 403*485.

No Native Menu Support

Native menus are to be supported at some point in time. It feels really awkward to stick with the web interface menus and shortcuts.

Auto export

Love this app and I'd actually pay for it if it were for sale :)

I regularly edit documents and then re-export them as png for viewing in github etc. I'd like to be able to define an auto export that saves a .png (or whatever format) along side the xml every time I save.

Cheers.

Pinch to zoom

Is there a way to integrate pinch to zoom (à la macOS) functionality in the Electron app? Currently, pinch to zoom affects the entire application, not the zoom level within the main view.

I think a more "native" pinch to zoom would really enhance the usability of the app. I'd be happy to help with the implementation, maybe you could give me some pointers on where to start!

I really love draw.io otherwise!

Shortcuts not working with alternate modifier keys in Mac OS X

I am trying to use draw.io on Google chrome on a Mac, but cannot use shortcuts.

As part of my desktop setup I have changed the location of the command and control modifier keys. Every application I use correctly handles this, except draw.io. It would seem that draw.io is ignoring the system's defined modifier keys.

I have verified this is the problem by briefly changing my modifier keys to the standard; however, this is not a sustainable solution because I have changed the keys for a reason in the first place!

It would be great if draw.io could recognize the OS-defined "cmd" and "ctrl" keys instead of fixating on the usually-defined keys.

Batch image conversion

Add the ability to batch convert draw.io diagram data to PNGs recursively in a folder.

Command line export to image

Hi. I currently store all my draw.io diagrams in GitLab and I'd like to convert the xml files to .png just before git-pushing the new version of the diagrams. In this way I can include the .png in the commit and view the diagram easily in the GitLab interface without opening the xml with draw.io.
Therefore I'm searching for a command-line export/convert feature in order to make all these steps automatic (e.g. in a git commit-hook). As far as I can see there's no such feature in draw.io, do you know if it could be accomplished in some way or a new product feature is the only way?

Unable to export PDF

The PDF exported from both macOS 10.13.4 and Windows 10 draw.io desktop app is always damaged.

Mathjax support

Is there a chance to get mathjax support in the desktop version?

Unable to run AppImage file on Manjaro

unable to run .AppImage file on Manjaro OS (Archlinux based)
when I try to run as follows:

$ chmod a+x draw.io-x86_64-8.4.7.AppImage
$ ./draw.io-x86_64-8.4.7.AppImage
open dir error: No such file or directory

UI Hangs when File -> Save As

  1. Open new blank diagram
  2. File -> Save as...
  3. App UI hangs and is not responsive forcing a process kill via task manager

Version 8.5.10 on windows 10.

image

Any where I can get logs or similar to diagnose what it happening?

Debug Modus?

Is there an way to debug like to open the Chrome Developer Console?

How to use a plugin in Desktop version of draw.io?

Creating a diagram online (with a plugin) works well, also opening it works well, but when trying to create elements using a plugin, it doesn't offer the Extras -> Plugins menu.

How do I use a plugin locally?

Drive integration

Maybe stupid question but I used tu use draw.io inside browser and everything is store inside drive.

When I tried Electron Desktop app, the way I find to load existing document is from system Filesystem.

Add support for event storming diagrams

Something I have struggled to draw recently is event storming diagrams:

brandolini_everythingflattened

It would be awesome if a toolbox was available in draw.io with templates for Command, Aggregate and Event post-it notes.

Extension while saving/exporting

Hi guys,
Love this app so much! Never turned on my VM anymore to use my old Visio 2010. One thing while saving or exporting to .png, etc, the file goes without any extension, and you need to rename them manually, it happens while you try to save, or if you try to export to any format.

Can we have that fixed, please?

Cheers!

Desktop shows Save As dialog first time when saving an existing PNG file

Windows desktop version.
I love the "Include a copy of my diagram" for PNG files, so I can have diagrams which are editable, but are also ready for inclusion anywhere.

But when I press save for the first time after opening such a 'rich' PNG diagram, I get the save-as dialog instead of the diagram just being saved to the same file using the same settings.

No biggie, but feels weird.

Offline templates

When offline the app has only the "Basic" template. It should be provided of all the templates available on the online version and then it shouldn't try to retrieve any data from the web.

draw

SHA checksums

Calculate checksums in build process and display them with downloads

File association does not work correctly on Linux Mint with AppImage

Hi there,

A big thank you to the Draw.IO team for creating such fantastic software, full of awesome templates, an easy to use interface and both web and desktop support. Our team workflow has been revolutionised by all of your efforts, which means you have indirectly contributed to the overall development of Africa because of our work.

I wanted to report an issue when opening files through Nemo in Linux Mint 17. It does not open the file specified but rather just shows the new/open file dialog.

Also when trying to open a file from the terminal it does the same thing.

I have not developed with Electron, though I assume it is relatively simple to pass the command line arguments to the application.

Have a great week and as said in Madagsacar, tsikitsiky lava (always smile),
Matthew

open with draw io
file does not open

RPM package does not install on openSUSE

Hi,

I tried to install the RPM package on openSUSE Tumbleweed and I get the following error:

Problem: nothing provides libappindicator needed by draw.io-8.8.0-156.x86_64
 Solution 1: do not install draw.io-8.8.0-156.x86_64
 Solution 2: break draw.io-8.8.0-156.x86_64 by ignoring some of its dependencies

The appindicator package in openSUSE is versioned:

$ rpm -q libappindicator1 
libappindicator1-12.10.1+bzr20170215-3.2.x86_64

$ rpm -q --provides libappindicator1 
libappindicator.so.1()(64bit)
libappindicator1 = 12.10.1+bzr20170215-3.2
libappindicator1(x86-64) = 12.10.1+bzr20170215-3.2

If I force the installation, the program works just fine.

It would be great if you could support a way of installing the RPM on openSUSE as it's much more convenient than the AppImage.

Windows Portable Version

Hello,

Could you please add a portable version for Windows?

Portable means:

  • All settings and temporal files are self contained in the program folder.
  • It doesn't use any registry keys.
  • Doesn't require privileges.

Easy way to do so is using the @PortableApps framework.

Thank You.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.