Skip to content

update main branch #35

Merged
iloveskittles82 merged 37 commits intomainfrom
dev
Jul 14, 2025
Merged

update main branch #35
iloveskittles82 merged 37 commits intomainfrom
dev

Conversation

@iloveskittles82
Copy link
Copy Markdown
Collaborator

Description

updating main branch with changes from sprint 3

koppor and others added 30 commits May 13, 2025 10:14
Integrated Bootstrap and added a Navbar with 5 useless buttons. More buttons are to follow in the upcoming sprints.
The 5 buttons will bring the following functionalities:
- undo
- redo
- add sibling node (topic)
- add child node (subtopic)
- add tags

The navbar currently collapses if the width of the site is too small. This gives a cleaner appearance on small window sizes.
…d side in the topbar) and a min. size for the mindmap container

the buttons have to be implemented still
the page is now no longer accidentally scrollable which means the topbar will always stay where it is and the mindmap container will fill the rest of the window
for details see #3
commits: 
* preemptively added vite build output to gitignore

* created package.json with ```npm init -y```

* installed bootstrap, bootstrap icons and jsmind with npm
```npm install jsmind bootstrap bootstrap-icons```

* installed vite
ran ```npm install --save-dev vite```
response:
´´´
added 57 packages, and audited 62 packages in 4s

8 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities
´´´

* added main.js with basic mindmap example

* changed index.html to reference the src/main.js
by using vite, we can now import all important recources in the main.js file and only need to reference it in the index.html
also added vite helper functions in the package.json file

* quickly added comments

* moved drag-and-drop-nodes code to an extra file and added default options for creating a mindmap to main.js

* uninstalled jsmind, copied repo to src folder and modified import statements
I essentially reset parts of my "progress" with "npm uninstall jsmind". Nonetheless, i chose to import the code manually since it would allow us to more easily modify it in the future. it also circumvents the problem that the drag and drop functionality has caused before.
I hope this way doesn't cause any compatibility issues.

U can now run
```
npm install
npm run dev
```
to start the dev server. And
```
npm install
npm run build
npm run preview
```
to build and display the built application.

* deleted unused folders
the "js" and "css" folders were created with the project and contain bootstrap code. this was rendered useless with the npm installation of bootstrap.

* installed popperjs and did minor adjustments
installed popperjs dependency for bootstrap downdown menus, Changed licence to MIT and changed language in html to english
# Conflicts:
#	index.html
#	package-lock.json
Added Bootstrap Navbar (top bar) with buttons for basic functionalities
# Conflicts:
#	.github/workflows/check.yml
empty click handlers for each button, 'new sibling node' and 'new child node click' handlers implemented
…d bound it to GUI (#8)

* Created an ActionStack class to handle the undo/redo functionality

* imported action stack and set up click handlers

* implemented undo & redo functionality with gui-buttons

* added shortcuts

---------

Co-authored-by: iloveskittles <40355179+iloveskittles82@users.noreply.github.com>
* Created a FileManager class to include file access

* Created a HTTP-client to handle basic save/load requests

* Reversed the default options dictionary to be assigned if passed one is null or undefined

* Added ListMap() for retrieving available maps and updated docstrings of HTTPClient

* Extended performFetch() to differ between GET and PUT requests as well as error handling to differ between connection and response failures

* Provided some minor comments to functions' parameters and URLs

* Removed FileManager class since it's functionality has been fully taken by HTTPClient class

* added shortcuts

* included a NULL_MAP as default return value for PUT and failed requests

* simplified default paths in save/loadMap()

* integrated http client into GUI

* fixed http client class export

* added comments and a POST function to create a file through the server

* add modal with placeholders

* add dialog with libraries to choose from

---------

Co-authored-by: iloveskittles <40355179+iloveskittles82@users.noreply.github.com>
* Fixed a bug with double state saving after editing a node

* Small refactor of saving maps' states in jsMind class with some comments

* Updated comments in HTTPClient class

* Removed ActionStack's import and updated saving initial state of a mind map in main.js

* Updated and compressed comments in main.js

* Improved code readability of click handlers for "Open buttons"

* Cleaned jsMind's options' definition in main.js

* Fixed spacings and comments in index.html

* Removed second default value from preformFetch() and fixed docstrings in jsMind undo()/redo()

* Capitalized chapters and added one for installing the server

* Added alternative method to start the server and linked it's section in Try It Out chapter

* Improved formatting of the building guide
# Conflicts:
#	http/HTTPClient.js
iloveskittles82 and others added 7 commits June 17, 2025 11:30
* Adding Icons and Tags Feature to MindMap

* Initial test for icons and tags feature in the mind map

* Add new tags and icons;test integration with additional node-text

* adding complete Mindmap icons and it's keyboard shortcuts

* Added Shalabi's index.html with tags

* adding icons list with its shortcuts in the icons list and solving node editing text problems

* Update request for initial Icons-and-Tags branch (#15)

* change POST to PUT

* experimenting with data-attribute

* trying to setup "enum" for icons and stuff

* Disabled standard browser's <Ctrl> + <number_key> shortcut in case a tag should be toggled

* Refactored toggling tags and highlights using jsMind shortcuts' handling

* Added a node extension method to include "icons" and "highlight" properties to all nodes

* Changed tags' button to a dropdown

* WIP set up shortcut handler and added sources for icons

* got the icons working with shortcuts
open todos:
 - [] Source manager to save nodes cleanly
 - [] functionality for buttons in dropdown
 - [] icons in dropdown
 - [] removing shortcuts for align,pdf and comment

* cleanup and comments

* Added a ResourceManager for unified / easier access to icons

* add debug button for printing out mindmap data to console

* add empty button handlers and a third, invisible div in the navbar to center the buttons in the middle while allowing the dropdown menu to function properly

* add clickhandlers

* renaming the ids for the buttons

* Removed doubled comments from jsmind.view_provider._default_node_render()

* Refactored ActionStack class to save maps' copies instead of objects

* adding shortcuts to buttons

* Fixed bugs with undefined icons' lists in new nodes

* Enabled standard shortcuts for editing nodes' topics

* Added check icons and implemented toggle cycles

---------

Co-authored-by: iloveskittles <40355179+iloveskittles82@users.noreply.github.com>

---------

Co-authored-by: Shalabi <Mohamed.Shalabi@Student.HTW-Berlin.de>
Co-authored-by: Robert Koch <Robert.Koch@Student.HTW-Berlin.de>
* current library attribute added

added current library as attribute of HTTPClient class, refactored methods accordingly, changed comments to match and renamed "performFetch" to "performRequest"

* WIP method to grab all bibentries

* cleanup and renaming
deleted unused icons folder and old index(1).html

renamed branch

* add buttons for Bibentry nodes

* added function to get the entry preview for a BibEntry in the current library

* Minor logging and comments' fixes in HTTPClient

* Optimized GET response type checking

* Replaced AddBibEntries' dropdown with separated buttons in selection form and added handling different scenarios while listing BibEntries

* Distinguished between application/json and text/plain response cases and ensured the default map is shown, if a library doesn't has any yet

* Refactored HTTPClient's urls' definition to allow access to cayw endpoint (that isn't stored in '/libraries')

* Returned previous dropdown for adding BibEntries and added some dynamic buttons' enabling depending on selected node

* Added creation of BibEntry nodes using JabRef's cayw endpoint

* Added assignNodeType() for nodes' extension and implemented type icons into rendering

* Minor fix of constructing mind map's URL upon saving

* Fixed a bug with undo()/redo() when previously opened map was shown

* Prevent loading maps if no option was selected

* save map state for undo/redo after new BibEntry nodes are created

* fixed methods for getting entry preview from server

---------

Co-authored-by: Robert Koch <Robert.Koch@Student.HTW-Berlin.de>
* current library attribute added

added current library as attribute of HTTPClient class, refactored methods accordingly, changed comments to match and renamed "performFetch" to "performRequest"

* WIP method to grab all bibentries

* cleanup and renaming
deleted unused icons folder and old index(1).html

renamed branch

* add buttons for Bibentry nodes

* Display entry preview (#18)

* Adding Entry Preview Feature to the Nodes

* Adding Entry Preview to the child nodes

* WIP merged cayw and getting entry preview functionality

* removed unused imports

* Fixed displaying BibEntry nodes' previews :3

* Minor format consistency check

* fixing entry preview bugs

* Fixed hiding popovers upon deleting nodes

* Prevented editing BibEntries' topics (also fixed small bug when their previews dissapeared upon double clicks)

---------

Co-authored-by: Shalabi <Mohamed.Shalabi@Student.HTW-Berlin.de>
Co-authored-by: Robert Koch <Robert.Koch@Student.HTW-Berlin.de>

---------

Co-authored-by: Shalabi <Mohamed.Shalabi@Student.HTW-Berlin.de>
Co-authored-by: Robert Koch <Robert.Koch@Student.HTW-Berlin.de>
* added comments for shalabi

* Adding PDF node Button

* Adding PDF select dialog

* Adding functionality to PDF Nodes Buttons

* added endpoint to http client to get list of all pdf files in current library

* integrated pdf list with the buttons

* added undo / redo

* Fixed bug when saved PDF nodes don't have their type icons

* Added nodes' buttons toggling upon selection of one

* Added 'select' event invocation
Also removed old BibEntryNode DropDown toggling

* Removed deprecated '@shalabi' tags

* Refactored adding new BibEntry and PDF nodes.
Also generalized filling 'Select' elements

* Restructured code into  features' regions

* Simplified tracking states upon (re-) moving nodes

* Prevented modifying topics of PDF nodes

* Added toggling undo / redo buttons

* Adding PDF Nodes to Mindmap

* changed "content-Type" option to "accept" in http-client requests

* fixed cayw request to allow cayw for every library

* Improved code comments formatting and consistency

* update comment on getPDFfiles

* Added isConnected() method to ping the server

* WIP on info about absent pdf files in library

* Refactored @Shalabi222 PDF listing
Also implemented showing info messages, if PDF list is empty or loading.

---------

Co-authored-by: Shalabi <Mohamed.Shalabi@Student.HTW-Berlin.de>
Co-authored-by: Robert Koch <Robert.Koch@Student.HTW-Berlin.de>
* Included Electron building tools
Also updated package-lock.json amd .gitignore to handle new libraries / directories properly

* Updated README's building guide

* Slightly updated README's server guide

* Update README.md

slight change to node installation (nvm is installed alongside node when using nvm)

* Update README.md

bug handling when `npm install on linux goes wrong

* Removed Electron's navbar

* Swapped electron-vite  to normal vite package

---------

Co-authored-by: iloveskittles82 <40355179+iloveskittles82@users.noreply.github.com>
* Disabled debug button

* Renamed nodes' types

* Added type updating upon loading mind maps

* Swapped Open / Save buttons.
Closes #26

* Renamed popups with BibEntry to BibTex
Closes #28

* Replaced disabling dropdown buttons
Instead their options will be disabled so that the menus can be hidden upon clicking elsewhere.
Closes #23

* Update README.md

added newer screenshot and expanded "try it out" section with gg.cmd tool instructions

* add shortcut cheat sheet

* add link to shortcuts cheat sheet

* Add ctrl + S for saving and added gg.cmd to gitignore

* Add CTRL + S

* Reworked disabling dropdowns' buttons
Their menus will be closed upon toggling anytime so that you can disable dropdowns in a tidy way.
Closes #23 (for real)

* Implemented ModalDesigner
This allows to switch bootstrap modals' layouts more generalized

* Extracted default mind maps and options

* Fixed minor bugs with extracted options

* Refactored HTTPClient default return value
The return struct contains now the code and the value of related request

* Cleaned HTTPClient
Fixed comments and added edge case handling if no citation keys were selected

* Moved rest of buttons into "General Manipulation" region
Undo / Redo / Debug buttons' click handlers are now defined in "General Element Manipulation" region

* Cleaned main.js
Fixed comments and added edge case handling if no lists of things were retrieved. Also some console logging (~ UwU)~

* Added more shortcuts
There're now shortcuts for saving and adding BibEntry / PDF nodes as children. These shortcuts work, if jsMind is active.
Closes #27

* Added cutting long nodes' topics
If there's too much text, it will be simply cut at the max length with '...'
Relates to #32

* Created a "Connection Failed" page
This shows a couple of hints about how to start the server and has a retry button. However, it's still not working with electron.
Refers to #33

* Applied suggestions to README.md

Co-authored-by: Oliver Kopp <kopp.dev@gmail.com>

* Added shortcuts documentation
Refers to #27

* fixed comments

---------

Co-authored-by: Robert Koch <Robert.Koch@Student.HTW-Berlin.de>
Co-authored-by: Oliver Kopp <kopp.dev@gmail.com>
@iloveskittles82 iloveskittles82 merged commit bab3937 into main Jul 14, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants