Commit graph

193 commits

Author SHA1 Message Date
finnboeger
57a02c42d6
Improve compatibility with Internet Explorer (#63)
* include promise polyfill

* remove es6

* add viewBox to every icon

* change self closing to explicitly closing tags

* replace window.scroll.. with document.documentElement.scroll..

* verify document.activeElement.blur() is a function before calling

* fix visuals of color chooser (colorpicker still sometimes buggy)

* do not attach to mouseleave event in IE

* attempt removal with usecapture true in IE as well, this fixes the tool switching issue

* fix text tool for IE

* fix cursor for IE

* change curMode to boolean and rename to 'active'

* replace minified canvascolor with unminified code

* replace if else structure with switch statement

* compile polyfill for each browser individually

* remove static polyfills from board.js

* Fix broken js reference

* Fix unused variable and empty console log

* Allow serving non-minified polyfills for easier debugging

* Add proper caching for polyfill.js

This request is on the critical path, we should try to make it fast

* Include more polyfills

All the DOM polyfills were missing

* Update dependencies

* Add missing polyfill

Our custom polyfill was deleted, but the one from polyfill-library hadn't been added

* Remove feature detection for Node.contains

We now have the function in the polyfills

* Update polyfill caching logic

* Remove content-Length header

Co-authored-by: @lovasoa
2020-05-05 12:01:46 +02:00
finnboeger
1eecf2a6ef
move pattern definition back into js (#64) 2020-05-04 09:51:40 +02:00
finnboeger
efe4b38b7d
Add a grid (#61)
* Add oneTouch option when creating tool. These tools won't be selected, rather their onstart action will be executed once.

Useful for undo/redo/clear/upload/zoom-in/zoom-out

* added grid

* move pattern to dedicated file

* Reformat code in grid tool

* Restore the gradient over the active tool

* Remove some duplicated code in oneTouch handling

Co-authored-by: Robert Beach <rdbeach@gmail.com>
Co-authored-by: Ophir LOJKINE <pere.jobs@gmail.com>
2020-05-03 19:09:14 +02:00
finnboeger
3c453e15c2
Add an ellipse and circle tool (#40)
* Added Circle tool as alternative function of Rectangle tool

* change toggle function to work with new icon structure and toggle name

* split circle into separate tool and added ellipse as secondary function. Also added server side rendering for svg export

* change ellipse to be default

* change circle behaviour to same as inkscape

* toggle to alternative while holding shift

* append to drawing area instead of svg root

* don't update shape after it has been drawn

* Stop logging all rectangles

* Remove es6

* Remove more es6

* Fix a few bugs with circle to ellipse toggling

* Calculate the circle params at creation time, not at rendering time

* Make the behavior of the shift key consistent

When shift is pressed, the current function is reversed: the circle tool draws an ellipse and the ellipse tool draws a circle.
This makes the tool easier to grasp.

* Add required translations

* german translation

* Update the shape immediately when pressing shift

* Fix server-side ellipse rendering

* Add a test for the circle tool

Co-authored-by: Robert Beach <rdbeach@gmail.com>
Co-authored-by: Ophir LOJKINE <pere.jobs@gmail.com>
2020-05-03 17:53:44 +02:00
Ophir LOJKINE
66646e6877 Index: change footer and add instagram link 2020-05-02 18:10:10 +02:00
finnboeger
b9605acb87
Add option to change pen size with the scroll wheel (#54)
* add option to change pen size with the scroll wheel

* Update the cursor size immediately when changing the size

* Add a tooltip with the size change shortcut

Co-authored-by: ophir <pere.jobs@gmail.com>
2020-05-02 16:27:28 +02:00
finnboeger
fce694df28
Add a cursor (#46)
* Added cursors

* Prepare cursor code for future settings to toggle cursors on or off.
Let cursor be the color the person has currently selected

* fix cursor on mobile (still won't display it in most cases as there is no hover on mobile but at least it won't throw errors)

* use correct size for cursor

* throttle cursor update rate to dramatically improve performance by eliminating congestion

* fix remote cursor size on desktop

* show own cursor by default and renove offset

* use svg as mouse cursor for pencil to be able to apply a reduced opacity to it and view our cursor

* don't throttle local cursor

* throttle local cursor at an independent higher rate. This could be made user adjustable for low power devices

* remove let and const from client-side code

* get emit count and emit count period from configuration

* reduce network cursor updates a lot to prevent instantly getting banned with the current defaults

* prevent eraser from deleting cursors

* use group inside of svg as drawing area and only delete elements inside it with the eraser

* use transform: translate to move cursors around instead of manipulating x and y directly

* fix: add socket ids to cursor messages

* fix incorrect remote cursor scaling and make local cursor visible again after it has been moved after being hidden due to inactivity

* create cursors in a proper fashion and keep them in a separate group

* scaling has been fixed in a1a5580

* move duplicated cursor creation code to function

* show cursors above content

* pass some of ther server configuration through to the client

* fix bug introduced in a833ce9

* allocate at most half of the allowed traffic to cursor updates

* remove debugging leftover

* use feature detection instead of ua sniffing

Co-Authored-By: Ophir LOJKINE <ophir.lojkine@auto-grid.com>

* fix regression where local cursor color was not updated on color change

* Define the cursor as a tool

* Remove the cursor tool from the UI

* Throttle remote cursor updates, not local ones

* Do not increment notification count on cursor move

* Use only one pencil icon

Use the same image for the pencil icon in the menu
and the pencil cursor that appears while drawing

* Add a test for the new cursor feature

* only stop drawing remote cursor when using some tools and always draw local cursor

* increase idle period before hiding cursor

* change idle duration back and set whether a cursor should be sent when using a tool in the respective tool

Co-authored-by: Robert Beach <rdbeach@gmail.com>
Co-authored-by: Ophir LOJKINE <ophir.lojkine@auto-grid.com>
Co-authored-by: ophir <pere.jobs@gmail.com>
2020-05-02 06:13:48 +02:00
finnboeger
0f0b333335
Allow running the app behind a reverse proxy (#57)
* change url to hide app behind a relative path

* pass some of ther server configuration through to the client

* serve static files and connect to socket.io correctly when a URL Prefix is set

* Revert the changes to opengraph meta tags

opengraph meta tags need to be absolute URLs

* Remove unused commented-out code

* fix background.png url

* use prefix path for open graph metadata

* Revert changes using server side url modifications

* get open graph and socket.io url from request url / window.location

* remove debug console.log

* Fix favicon when not running under "/"

* Add proxying instructions to the README

Co-authored-by: Laurent Mazet <mazet@softndesign.org>
Co-authored-by: ophir <pere.jobs@gmail.com>
2020-05-01 12:33:13 +02:00
finnboeger
3ba9925d9f
Decrease area occluded by menu and fix menu scroll issue on mobile (#56)
* don't occlude area below menu

* only disable pointer events on the menu on desktop or when a tool has been selected on mobile
2020-04-30 16:18:36 +02:00
finnboeger
d3be4cadf7
swap scroll axis when holding shift (#53) 2020-04-28 21:51:37 +02:00
ophir
2acaa95fd6 Small markup improvements in index page 2020-04-28 21:49:02 +02:00
finnboeger
efbb49d0d1
catch mobile devices that misreport their hover capabilities (#52)
* catch mobile devices that misreport their hover capabilities

* fix media query syntax and use data for main input device
2020-04-28 15:26:09 +02:00
finnboeger
be1880aa1b
Fix various bugs with the menu (#49)
* fix color picker on safari

* do not block space above and below opened tooltip from passing pointer events through to the svg

* don't automatically retract tooltip when hovering

* use focus instead of hover on mobile and blur focus on first touchmove

* stop UA sniffing and assert that activeElement exists before attempting to blur

* Disable dragging of menu icons

* Remove unused CSS property

Property is ignored due to the display. With 'display: block', vertical-align should not be used.

* Better image dragging prevention

Co-authored-by: Ophir LOJKINE <ophir.lojkine@auto-grid.com>
2020-04-28 11:47:43 +02:00
finnboeger
2f46c013c2
Improve scroll zoom handling (#50)
* decrease the step size of each zoom operation

* use same stepping on all browsers

* replace math.sign with polyfill
2020-04-28 00:59:19 +02:00
Ophir LOJKINE
e9d3467767 Update color presets 2020-04-27 16:56:36 +02:00
finnboeger
4d065216bd
Improve text tool (#45)
Make the text field of the text tool appear at the position where the text will be written.

* improved Text tool

* ignore layers for now

* only assert value is not null or undefined / allow 0 as value

* remove unused layer code

* Reformat text.js

Co-authored-by: Robert Beach <rdbeach@gmail.com>
Co-authored-by: @finnboeger
2020-04-27 12:48:35 +02:00
ophir
96fa16559e Index page translations 2020-04-26 17:59:41 +02:00
ophir
c944efce58 Remove unused assets 2020-04-26 15:04:37 +02:00
Ophir LOJKINE
10bdaf90f0
Style changes (#39)
* Initial Changes (#1)

* Move socket event handlers and initial connection to connect function

* Converted await statements to .then()

* Toggle tool if clicked again and toggling option exists

Co-authored-by: Finn Böger <finnboeger@googlemail.com>

Co-authored-by: Robert Beach <rdbeach@gmail.com>

* Updated client styles
- disable selecting text in tool menu
- change design of tool boxes to be square and smaller
- reduce text size in sliders

Co-authored-by: Finn Böger <finnboeger@googlemail.com>

* Changed Apple Touch Icon

* Update size and opacity icon, include fontawesome for future use

Co-authored-by: Finn Böger <finnboeger@googlemail.com>

* Changed favicon svg

* replace font-family with valid value

* Added icons and icomoon font

* change eraser and zoom icon

Co-authored-by: Finn Böger <finnboeger@googlemail.com>

* Revert icon change for now

* Revert "Converted await statements to .then()"

This reverts commit b35e0207df.

* Revert "Revert icon change for now"

This reverts commit 34e354f00f.

* Restored new Icons

* Restored favicon

* Remove fontawesome

* Increase icon sizes

* Update the zoom icon

See https://github.com/lovasoa/whitebophir/pull/39#issuecomment-619524098

* set display inline block for tool names, otherwise firefox doesn't respect margin-bottom

* Rework tool icons

* fix color presets position

Co-authored-by: finnboeger <finnboeger@users.noreply.github.com>
Co-authored-by: Robert Beach <rdbeach@gmail.com>
Co-authored-by: Finn Böger <finnboeger@googlemail.com>
2020-04-26 14:56:51 +02:00
ophir
8f14b84f9e Rework tool icons 2020-04-26 13:08:17 +02:00
ophir
dd2a574d03 Update the zoom icon
See https://github.com/lovasoa/whitebophir/pull/39#issuecomment-619524098
2020-04-26 12:43:19 +02:00
Ophir LOJKINE
f23926bdef
First merge for #31
Thanks a lot and congratulations to @finnboeger and @rdbeach !
2020-04-26 12:03:11 +02:00
ophir
fc51f0dc0b Optimize icons to make them smaller 2020-04-26 11:53:14 +02:00
Ophir LOJKINE
6baab81f63 Better tool icons 2020-04-26 00:45:42 +02:00
ophir
68ba979919 Start work on svg icons 2020-04-25 22:33:02 +02:00
Robert Beach
6e042a3a82 Toggle tool if clicked again and toggling option exists
Co-authored-by: Finn Böger <finnboeger@googlemail.com>
2020-04-25 17:51:43 +02:00
Robert Beach
204ce7f073 Move socket event handlers and initial connection to connect function
Co-authored-by: Finn Böger <finnboeger@googlemail.com>
2020-04-25 16:46:29 +02:00
ophir
ebaaacde35 Improved i18n system 2020-04-22 10:14:12 +02:00
ophir
e2dde6c82f WIP: i18n of the index page 2020-04-20 23:40:38 +02:00
Ophir LOJKINE
1a392e0798 Update index style 2020-04-20 21:55:57 +02:00
Ophir LOJKINE
29ebe10d20 Improve the style of the index page 2020-04-19 19:41:26 +02:00
ophir
2521aa3a94 Fix a style problem with the backound on the index 2020-04-19 12:09:28 +02:00
ophir
0f20784b8c Updated the style of the index page 2020-04-18 23:17:59 +02:00
Ophir LOJKINE
43c861d022 Make the initial brush size smaller 2020-04-15 14:49:49 +02:00
Ophir LOJKINE
0046cb28d5 Fix unreadable board name
The board name wasn't displayed correctly when it contained special
characters
2020-04-06 19:42:03 +02:00
Ophir LOJKINE
8eebbe9653
Add a list of predefined colors and shortcuts for them
Color presets (#25)

* Add color presets with keys 0..9

Also, initialize size/thickness with 7.

* Add click-able buttons for color presets

* Refactor color presets: use Minitpl

Use Minitpl for creating the color preset buttons. Also, allow for more
colors than keys and don't use just numeric keys, but allow all
characters.

* Fix layout for case if no color presets are defined

* colors in array, CSS fix, restore random initColor

See: https://github.com/lovasoa/whitebophir/pull/24#issuecomment-608409282

* Remove hardcoded size

* Simplify condition

Co-authored-by: adrian.buerli <adrian.buerli@ims.co.at>
2020-04-03 18:11:32 +02:00
Ophir LOJKINE
66f7944b6e
add canonical link 2020-03-21 22:18:56 +01:00
Ophir LOJKINE
209a656ee2
Highlight the fact that WBO is open-source 2020-03-03 14:39:17 +01:00
Ophir LOJKINE
03d8f61f39 Remove unnecessary type attribute on script tags 2019-06-27 16:38:41 +02:00
Ophir LOJKINE
4323e5e81f Reformat the HTML board page 2019-06-27 15:46:39 +02:00
Ophir LOJKINE
45cf1e1406 Improve internationalization 2019-06-27 15:44:16 +02:00
Ophir LOJKINE
b1a5884932 Native viewport width on mobile for the landing page 2019-06-27 12:10:24 +02:00
Ophir LOJKINE
e038527115 Add loading message 2019-06-25 13:28:02 +02:00
Ophir LOJKINE
5f33e55066 Remove menu toggling code 2019-06-24 11:39:38 +02:00
Ophir LOJKINE
fa5c5f0969 Fix input type in text tool 2019-06-24 00:55:14 +02:00
Ophir LOJKINE
2338bfaea7 Fix shortcuts not working while using a slider 2019-06-24 00:37:31 +02:00
Ophir LOJKINE
93492fc2ac Improve the landing page 2019-06-23 23:56:07 +02:00
Ophir LOJKINE
539125b423 More server-side translations 2019-06-23 10:14:13 +02:00
Ophir LOJKINE
3522c52d36 Server-side translations 2019-06-23 09:47:01 +02:00
Ophir LOJKINE
3151651f45 Close text edition field when "escape" is pressed 2019-06-22 21:03:02 +02:00