1+ <!DOCTYPE html>
2+ < html lang ="en ">
3+
4+ < head >
5+ < meta charset ="UTF-8 " />
6+ < title > JabMap</ title >
7+ < style >
8+ html ,
9+ body {
10+ background-color : # f8f9fa ;
11+ height : 100% ;
12+ margin : 0 ;
13+ }
14+
15+ body {
16+ display : flex;
17+ flex-direction : column;
18+ }
19+
20+ nav .navbar {
21+ display : flex;
22+ flex-shrink : 0 ;
23+ }
24+
25+ # jsmind_container {
26+ display : block;
27+ flex-grow : 1 ;
28+ overflow : auto;
29+ }
30+
31+ .dropdown-item .shortcut {
32+ color : # 6c757d ;
33+ font-size : 0.9em ;
34+ margin-left : 1rem ;
35+ }
36+
37+ .error-container {
38+ height : 100vh ;
39+ display : none;
40+ align-items : center;
41+ justify-content : center;
42+ flex-direction : column;
43+ text-align : center;
44+ padding : 20px ;
45+ }
46+
47+ .error-icon {
48+ font-size : 4rem ;
49+ color : # dc3545 ;
50+ }
51+
52+ .accordion {
53+ width : 400px ;
54+ text-align : left;
55+ }
56+
57+ .accordion-button ::after {
58+ margin-left : auto;
59+ margin-left : 5 ;
60+ }
61+
62+ .accordion-collapse {
63+ transition : height 0.4s ease, opacity 0.4s ease;
64+ overflow : hidden;
65+ }
66+
67+ .accordion-body {
68+ transition : opacity 0.4s ease;
69+ opacity : 0 ;
70+ }
71+
72+ .accordion-collapse .show .accordion-body {
73+ opacity : 1 ;
74+ }
75+
76+ </ style >
77+ < script type ="module " crossorigin src ="./assets/index-BKlN87bF.js "> </ script >
78+ < link rel ="stylesheet " crossorigin href ="./assets/index-D7IKWizK.css ">
79+ </ head >
80+
81+ < body >
82+ <!--Navbar with Buttons-->
83+ < nav class ="navbar bg-body-tertiary " id ="topNavBar ">
84+ < div class ="container-fluid ">
85+ < div class ="d-flex align-items-start " style ="flex-basis: 33%; max-width: 33%; ">
86+ <!--JabMap title-->
87+ < a class ="navbar-brand " href ="# "> JabMap</ a >
88+
89+ <!--Save and Load Buttons-->
90+ < button id ="openBtn " class ="btn btn-light me-2 " type ="button " data-bs-toggle ="modal " title ="Open " data-bs-target ="#selectMindmapModal ">
91+ < i class ="bi bi-folder2-open "> </ i > Open
92+ </ button >
93+ < button id ="saveBtn " class ="btn btn-light me-2 " type ="button " data-bs-toggle ="tooltip " title ="Save ">
94+ < i class ="bi bi-save "> </ i > Save
95+ </ button >
96+ <!--Debug button-->
97+ <!-- <button id="printMapToConsoleBtn" class="btn btn-light me-2" type="button" data-bs-toggle="tooltip" title="Debug">
98+ Debug
99+ </button> -->
100+ </ div >
101+
102+ <!--Editor buttons-->
103+ < div class ="d-flex justify-content-center " style ="flex-basis: 33%; max-width: 33%; ">
104+ <!--Button class explanation: class = "btn color theme margin to the right (me-2)"-->
105+ <!--Undo Button-->
106+ < button id ="undoBtn " class ="btn btn-secondary me-2 " type ="button " data-bs-toggle ="tooltip " title ="Undo ">
107+ < i class ="bi bi-arrow-counterclockwise "> </ i >
108+ </ button >
109+ <!--Redo Button-->
110+ < button id ="redoBtn " class ="btn btn-secondary me-2 " type ="button " data-bs-toggle ="tooltip " title ="Redo ">
111+ < i class ="bi bi-arrow-clockwise "> </ i >
112+ </ button >
113+ <!--New Topic (sibling node) Button-->
114+ < button id ="newSiblingBtn " class ="btn btn-secondary me-2 " type ="button " data-bs-toggle ="tooltip "
115+ title ="New sibling node ">
116+ < i class ="bi bi-node-plus-fill "> </ i >
117+ </ button >
118+ <!--New Subtopic (child node) Button (icon rotated 90 degrees)-->
119+ < button id ="newChildBtn " class ="btn btn-secondary me-2 " type ="button " data-bs-toggle ="tooltip "
120+ title ="New child node ">
121+ < i class ="bi bi-diagram-2-fill " style ="transform: rotate(-90deg); display: inline-block; "> </ i >
122+ </ button >
123+
124+ <!--Tags Dropdown-->
125+ < div class ="dropdown ">
126+ < button class ="btn btn-secondary dropdown-toggle me-2 " type ="button " id ="tagsDropdownMenuButton "
127+ data-bs-toggle ="dropdown " data-bs-auto-close ="outside ">
128+ < i class ="bi bi-tags "> </ i >
129+ </ button >
130+ < div class ="dropdown-menu ">
131+ < h6 class ="dropdown-header "> Icons for nodes</ h6 >
132+ < button id ="iconCycleBtn " class ="dropdown-item d-flex justify-content-between ">
133+ < span > Cycle</ span > < span class ="shortcut "> Ctrl + 1</ span >
134+ </ button >
135+ < button id ="iconStarBtn " class ="dropdown-item d-flex justify-content-between ">
136+ < span > Star</ span > < span class ="shortcut "> Ctrl + 2</ span >
137+ </ button >
138+ < button id ="iconQuestionBtn " class ="dropdown-item d-flex justify-content-between ">
139+ < span > Question</ span > < span class ="shortcut "> Ctrl + 3</ span >
140+ </ button >
141+ < button id ="iconWarningBtn " class ="dropdown-item d-flex justify-content-between ">
142+ < span > Warning</ span > < span class ="shortcut "> Ctrl + 6</ span >
143+ </ button >
144+ < button id ="iconLightbulbBtn " class ="dropdown-item d-flex justify-content-between ">
145+ < span > Lightbulb</ span > < span class ="shortcut "> Ctrl + 7</ span >
146+ </ button >
147+ < button id ="iconGreenFlagBtn " class ="dropdown-item d-flex justify-content-between ">
148+ < span > Green Flag</ span > < span class ="shortcut "> Ctrl + 8</ span >
149+ </ button >
150+ < button id ="iconRedFlagBtn " class ="dropdown-item d-flex justify-content-between ">
151+ < span > Red Flag</ span > < span class ="shortcut "> Ctrl + 9</ span >
152+ </ button >
153+ </ div >
154+ </ div >
155+
156+ <!--BibEntry nodes Dropdown-->
157+ < div class ="dropdown ">
158+ < button class ="btn btn-secondary dropdown-toggle me-2 " id ="BibEntryDropdownMenuButton "
159+ data-bs-toggle ="dropdown ">
160+ < i class ="bi bi-file-earmark-text "> </ i >
161+ </ button >
162+ < div class ="dropdown-menu ">
163+ < h6 class ="dropdown-header "> New BibTeX node</ h6 >
164+ < button id ="addBibEntryAsSiblingBtn " class ="btn dropdown-item ">
165+ < i class ="bi bi-node-plus-fill "> </ i > As sibling node
166+ </ button >
167+ < button id ="addBibEntryAsChildBtn " class ="btn dropdown-item ">
168+ < i class ="bi bi-diagram-2-fill " style ="transform: rotate(-90deg); display: inline-block; "> </ i > As child
169+ node
170+ < span class ="shortcut "> Ctrl + B</ span >
171+ </ button >
172+ </ div >
173+ </ div >
174+
175+ < div class ="dropdown ">
176+ < button class ="btn btn-secondary dropdown-toggle me-2 " id ="PDFDropDownMenuButton " data-bs-toggle ="dropdown ">
177+ < i class ="bi bi-file-pdf "> </ i > </ i >
178+ </ button >
179+ < div class ="dropdown-menu ">
180+ < h6 class ="dropdown-header "> New PDF node</ h6 >
181+ < button id ="addPDFAsSiblingBtn " class ="btn dropdown-item " data-bs-toggle ="modal " data-bs-target ="#selectPDFModal ">
182+ < i class ="bi bi-node-plus-fill "> </ i > As sibling node
183+ </ button >
184+ < button id ="addPDFAsChildBtn " class ="btn dropdown-item " data-bs-toggle ="modal " data-bs-target ="#selectPDFModal ">
185+ < i class ="bi bi-diagram-2-fill " style ="transform: rotate(-90deg); display: inline-block; "> </ i > As child node
186+ < span class ="shortcut "> Ctrl + P</ span >
187+ </ button >
188+ </ div >
189+ </ div >
190+
191+ </ div >
192+ < div style ="flex-basis: 33%; max-width: 33%; "> </ div >
193+ </ div >
194+ </ nav >
195+
196+ <!--Required jsMind container-->
197+ < div id ="jsmind_container " style ="width:100%;height:100vh;background:#f4f4f4; "> </ div >
198+
199+ <!-- Modal for the "Open" dialog-->
200+ < div class ="modal fade " id ="selectMindmapModal " tabindex ="-1 " role ="dialog ">
201+ < div class ="modal-dialog " role ="document ">
202+ < div class ="modal-content ">
203+ < div class ="modal-header ">
204+ < h5 class ="modal-title " id ="exampleModalLabel "> Choose a JabMap to open</ h5 >
205+ < button type ="button " class ="btn-close " data-bs-dismiss ="modal " aria-label ="Close "> </ button >
206+ </ div >
207+ < div class ="modal-body ">
208+ < div id ="openMindmapInfoText "> </ div >
209+ < select class ="form-select " id ="openMindmapSelect " size ="10 "> </ select >
210+ </ div >
211+ < div class ="modal-footer ">
212+ < button type ="button " id ="openSelectedMapBtn " class ="btn btn-outline-secondary " data-bs-dismiss ="modal ">
213+ Open
214+ </ button >
215+ </ div >
216+ </ div >
217+ </ div >
218+ </ div >
219+
220+ <!-- Modal for the "Add PDF Nodes" dialog-->
221+ < div class ="modal fade " id ="selectPDFModal " tabindex ="-1 " role ="dialog ">
222+ < div class ="modal-dialog " role ="document ">
223+ < div class ="modal-content ">
224+ < div class ="modal-header ">
225+ < h5 class ="modal-title " id ="SelectPDFModalLabel "> Choose PDFs to add</ h5 >
226+ < button type ="button " class ="btn-close " data-bs-dismiss ="modal " aria-label ="Close "> </ button >
227+ </ div >
228+ < div class ="modal-body " id ="PDFModalBody ">
229+ < div id ="PDFModalInfoText "> </ div >
230+ < select class ="form-select " multiple id ="addPDFSelect " size ="10 "> </ select >
231+ </ div >
232+ < div class ="d-flex modal-footer ">
233+ < button type ="button " id ="addSelectedPDFBtn " class ="btn btn-outline-secondary alig " data-bs-dismiss ="modal ">
234+ Add
235+ </ button >
236+ </ div >
237+ </ div >
238+ </ div >
239+ </ div >
240+
241+ <!--A 'connection failed' page-->
242+ < div class ="error-container " id ="noConnectionBlock ">
243+ < div class ="error-icon "> ⚠️</ div >
244+ < h1 class ="mt-4 "> Server Connection Failed</ h1 >
245+ < p class ="text-muted "> Your JabMap couldn’t connect to the server. Here are a few things you can try:</ p >
246+
247+ < div class ="accordion " id ="tipsAccordion ">
248+ < div class ="accordion-item ">
249+ < h2 class ="accordion-header " id ="headingTwo ">
250+ < button class ="accordion-button collapsed " type ="button " data-bs-toggle ="collapse " data-bs-target ="#tip2 "
251+ aria-expanded ="false " aria-controls ="tip2 ">
252+ 🤖 Ensure JabRef server is running
253+ </ button >
254+ </ h2 >
255+ < div id ="tip2 " class ="accordion-collapse collapse " aria-labelledby ="headingTwo " data-bs-parent ="#tipsAccordion ">
256+ < div class ="accordion-body ">
257+ < ol class ="list-group list-group-flush list-group-numbered ">
258+ < li class ="list-group-item "> Start your JabRef</ li >
259+ < li class ="list-group-item "> Go to File -> Preferences</ li >
260+ < li class ="list-group-item "> Check the "Http Server"</ li >
261+ </ ol >
262+ </ div >
263+ </ div >
264+ </ div >
265+
266+ < div class ="accordion-item ">
267+ < h2 class ="accordion-header " id ="headingThree ">
268+ < button class ="accordion-button collapsed " type ="button " data-bs-toggle ="collapse " data-bs-target ="#tip3 "
269+ aria-expanded ="false " aria-controls ="tip3 ">
270+ 👾 Verify installation
271+ </ button >
272+ </ h2 >
273+ < div id ="tip3 " class ="accordion-collapse collapse " aria-labelledby ="headingThree "
274+ data-bs-parent ="#tipsAccordion ">
275+ < div class ="accordion-body ">
276+ < ol class ="list-group list-group-flush list-group-numbered ">
277+ < li class ="list-group-item ">
278+ Ensure you followed
279+ < a
280+ href ="https://github.com/jabref/jabmap/#running-locally ">
281+ running it locally</ a >
282+ step of the documentation.
283+ </ li >
284+ < li class ="list-group-item ">
285+ Then use the < code > gg.cmd</ code > as guided in
286+ < a href ="https://github.com/jabref/jabmap/#using-ggcmd ">
287+ the following step</ a > .
288+ </ li >
289+ </ ol >
290+ </ div >
291+ </ div >
292+ </ div >
293+ </ div >
294+
295+ < button id ="tryAgainBtn " class ="btn btn-primary mt-4 "> Try Again</ button >
296+ </ div >
297+
298+ </ body >
299+
300+ </ html >
0 commit comments