GithubHelp home page GithubHelp logo

Comments (28)

rdbeach avatar rdbeach commented on May 23, 2024 1

Hi. Quick update. I added a transform tool, and an area eraser. I'm actually using the board right now with some of my clients, and I will probably do some more rigorous testing of it in the days to come. I've been doing this partly for my work, and partly as a hobby to keep me busy during this difficult time. Unfortunately, I've made so many changes to the original board that I don't know if its feasible (or worth the effort) to merge them at this point. One more feature I may want to incorporate is loading a background image.

from whitebophir.

rdbeach avatar rdbeach commented on May 23, 2024 1

I just downloaded the latest Firefox a few hours ago. At first, it looked like it wasn't working at all, but it turned out to be just a few minor glitches, and now it looks good, as far as I can tell. Should I support edge as well? Haven't tried that one.

from whitebophir.

finnboeger avatar finnboeger commented on May 23, 2024 1

When integrating all the currently proposed features I'd recommend a new Menu structure:
wbo menu
The icons are obviously not final and we'd have to rethink how we handle hovers (maybe ignore hover over the tooltip and only attach the hover event to the icon itself).
It is also currently missing the touch up eraser as I'm not sure where to put it without creating too much confusion or incentivising its use too much

What do you think?

PS: I just realized I forgot the whiteout tool which I would keep as the secondary function of the pencil and the settings which I would keep as a single column below the tools. We probably also need a setting option that brings up a pop up menu with the different configuration options

from whitebophir.

lovasoa avatar lovasoa commented on May 23, 2024

Your work is great ! Congratulations @rdbeach !

I am reposting here the comment I made on your commit :

Hello @rdbeach !
I stumbled on this commit on my github feed. It looks like you've done some great work on WBO ! 👍 Would you be interested by working with me on integrating some of these changes back into WBO ? This would give them more visibility, reduce the maintenance burden on your fork, and potentially enable some more contributions by other parties. I am especially interested by your new eraser tool. Working with svg masks is a great idea that I wish I had from the beginning !
There are some browser compatibility and other issues with your changes, though, and I would be glad to work with you on solving these.
Cheers,
@lovasoa

Also, I think you forgot to commit some files. I am not seeing the eraser tool, and the undo/redo don't seem to work... The internationalization seems to be broken too...
It would be awesome if we could work together on polishing and integrating these changes.

image

from whitebophir.

rdbeach avatar rdbeach commented on May 23, 2024

from whitebophir.

lovasoa avatar lovasoa commented on May 23, 2024

There is currently a single big commit. It would be good to make several small pull requests that we can discuss and work on independently.
Some of them can already be merged now, such as

  • GUI/layout improvements
  • the circle tool
  • Modified text tool so that the input appears closer to the text
  • Made the removal tool more robust so you can remove small objects easier
  • Added an optional grid

from whitebophir.

rdbeach avatar rdbeach commented on May 23, 2024

How do you break a pull request into smaller ones?

Maybe make a branch for different features? I can fill out the minimal code changes for each branch and we can review and discuss. But maybe just one branch at a time to keep things simpler.

from whitebophir.

lovasoa avatar lovasoa commented on May 23, 2024

Yes, you are right, doing the PRs one by one will avoid conflicts and keep things simpler. Just create a branch with the changes and open a PR from that branch to master on lovasoa/whitebophir. Maybe let's start with the smalleest and least controversial things, like the circle tool or the change in the position of the text input field.

from whitebophir.

lovasoa avatar lovasoa commented on May 23, 2024

A background image tool was implemented in #21

I will look into merging your work as it is tested. Do you plan to support firefox ?

from whitebophir.

finnboeger avatar finnboeger commented on May 23, 2024

Hi I had a go at starting to split the changes into smaller more manageable chunks.
For now I have split some inital changes to the board initialization and the server socket handling off into base-changes and the gui changes into style-changes.
The code for the improved removal tool has been split off to tool/eraser, however it - like the future branches I will create - depends on the first two changesets.

The next steps that I can see are

  • The circle tool
  • The image tool
  • The text changes
  • The cursor - this massively increases the amount of messages being sent, should possibly be throttled
  • The transform tool
  • The touch-up eraser, which requires adding support for layers to every tool
  • The grid
  • The separate zoom buttons
  • The undo, redo and clear tools which require a server side undo/redo history and new message type. Also add a confirmation dialog to the clear button and possibly restrict it
  • > A UX improvement in conjunction with the 3 above: implement them as simple buttons instead of tools, reducing the amount of clicks necessary to e.g. toggle the grid

from whitebophir.

lovasoa avatar lovasoa commented on May 23, 2024

Great, let's discuss that in #38 and #39 ! Thank you for taking the time to split your work in chunks, it will make it easier to integrate.

from whitebophir.

rdbeach avatar rdbeach commented on May 23, 2024

"The touch-up eraser, which requires adding support for layers to every tool"

Also, the transform tool requires each drawing element to set their transform property.

from whitebophir.

rdbeach avatar rdbeach commented on May 23, 2024

BTW has anyone discussed client configuration? I see that you updated the backend configuration. Probably when you start putting in so many features, not everyone wants or needs them. Maybe another config file for the front end?

from whitebophir.

finnboeger avatar finnboeger commented on May 23, 2024

I realized that part about the transform tool when I had a closer look at it, thats why I'm holding off on implementing it until the other tools have been merged.

As for front end configuration I have added your latest changes to the cursor to allow disabling it, but there is no settings page yet. I believe adding a oneTouch tool that would open a setting modal might be the best way to go?

I would also like to have server and board wide settings to allow you to disable certain features for all boards or on board creation, e.g. you might not want the document upload feature on a public server or the cursors on a low power server or very high use board.

from whitebophir.

lovasoa avatar lovasoa commented on May 23, 2024

Yes, having the configuration reflected on the client is probably a good idea. It could be done the same way as it is for translations.

Also, what would you think about switching to using modern javascript, and a transpiler ? This would make the client-side code more readable in many instances.

from whitebophir.

finnboeger avatar finnboeger commented on May 23, 2024

I definitely see the benefit however I have no experience setting it up 😆
We use typescript at work but I believe there would be quite a bit of effort in getting everything ready for such a switch.

from whitebophir.

lovasoa avatar lovasoa commented on May 23, 2024

I can set it up. It will just take some time, and you will probably have to rebase your PRs. Let's finish the "easy" PRs, and then I'll get to work. What we can merge without much changes are your current PRs for :

  • circle tool
  • improved text tool
  • cursor

I added comments on those.

from whitebophir.

finnboeger avatar finnboeger commented on May 23, 2024

Another question for my testing: Which browsers should we support?
I am currently only testing in Chrome and Firefox as I am on Linux and don't have any macOS or iOS devices to test on them.
I can perform tests in Internet Explorer if necessary but I would much rather let it die. As the new Edge is based on Chromium as well I believe it should automatically be supported.

from whitebophir.

rdbeach avatar rdbeach commented on May 23, 2024

Right now I am testing on Chrome, Safari, and Firefox. Recent versions only. Also I have tested it on safari and chrome for iPhone. Have not tested android phones. I will most likely continue to test daily, especially since I am using it with my clients.

from whitebophir.

lovasoa avatar lovasoa commented on May 23, 2024

@finnboeger : 👍 to the two-columns menu on desktop. We'll have to see if it doesn't take too much space on small screens.

@rdbeach : WBO was started a long time ago, and it was initially designed to work on internet explorer 9+ too. However, I don't test it on IE on a regular basis...

from whitebophir.

finnboeger avatar finnboeger commented on May 23, 2024

Regardless whether we make the change to the two-column layout we should offset the canvas to the right by the width of the menu. Otherwise if you e.g. write something and then zoom out it gets occluded by the menu.

from whitebophir.

lovasoa avatar lovasoa commented on May 23, 2024

What about adding a button to hide the menu instead ? On small screens, I think we cannot afford to reduce the size of the canvas...

from whitebophir.

finnboeger avatar finnboeger commented on May 23, 2024

Very good point. How about on small devices we hide the menu by default and only display the currently active tool and maybe the size indicator (using the old UI where it showed a dot of the current size but with the current color and opacity)?
When clicking on the tool it would open up an overlay with the available tools whereas clicking on the size indicator would bring up a combined menu for changing size, color and opacity.

Tying into that I noticed another UX issue in my last lecture:
New Users don't know about the available functionality. I believe adding a screen explaining all available features for users that are opening it for the first time would be helpful. That could also explain how to select their tool for mobile users.
I have created a couple of mockups:

Mobile UI:
mobileUI

Mobile UI hidden:
mobileUIhidden

Mobile UI expanded:
mobileUIopen

Intro / Help Screen:
wbo intro

I added a whole load of features in the mockups but I don't expect that we will be able to implement them all directly.

What do you think?

from whitebophir.

tomichGIT avatar tomichGIT commented on May 23, 2024

hi guys, thanks for this amazing script. I have a question do... if you are working together, should we be using @lovasoa or @rdbeach github repo? i loved the changes made by @rdbeach for teaching math.. but i dont want to stick with an unopdated version. Are you guys merging into one? thanks a lot again!

from whitebophir.

lovasoa avatar lovasoa commented on May 23, 2024

Hello! Yes, a lot of the changes are being merged, have a look at the pull requests! @finnboeger is doing a fantastic job at splitting the features into distinct PRs, fixing bugs, making the code cleaner and more maintainable. This represents a decent amount of work, so if you want to contribute on the existing pull requests, please do!

from whitebophir.

rdbeach avatar rdbeach commented on May 23, 2024

Hey, what's going on over here? I see you've made some changes. Where did @finnboeger go? I'm almost done with the buildout now. Maybe we can work together to clean up the code a bit. If you want to take it to the next level, we should make an organizational account and put the repo in there, where we can work as collaborators. It would probably attract more interest as well, because, then, it's not like you're just contributing to someone's pet project.

from whitebophir.

lovasoa avatar lovasoa commented on May 23, 2024

Hello ! Good that you are almost done with your changes, we'll be able to integrate more of them ! I think there is quite some work, so feel free to open new PRs and comment on the ones of @finnboeger. Ideally, we'll keep one feature by PR, to keep things manageable. We can create an organization, but if you're okay with it, I'd still like to review each change individually, and avoid giving external commit access immediately.

from whitebophir.

mwllgr avatar mwllgr commented on May 23, 2024

Hi, any news on these changes? The grid and dashed functions would be really great to have. @lovasoa @rdbeach

from whitebophir.

Related Issues (20)

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.