pinokiod 3.85.0 → 3.87.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Dockerfile +61 -0
- package/docker-entrypoint.sh +75 -0
- package/kernel/api/hf/index.js +1 -1
- package/kernel/api/index.js +8 -1
- package/kernel/api/shell/index.js +6 -0
- package/kernel/api/terminal/index.js +166 -0
- package/kernel/bin/caddy.js +10 -4
- package/kernel/bin/conda.js +3 -2
- package/kernel/bin/index.js +53 -2
- package/kernel/bin/setup.js +32 -0
- package/kernel/bin/vs.js +11 -2
- package/kernel/index.js +42 -2
- package/kernel/info.js +36 -0
- package/kernel/peer.js +42 -18
- package/kernel/prototype.js +1 -0
- package/kernel/router/index.js +23 -15
- package/kernel/router/localhost_static_router.js +0 -3
- package/kernel/router/pinokio_domain_router.js +333 -0
- package/kernel/shell.js +43 -2
- package/kernel/shells.js +21 -1
- package/kernel/util.js +4 -2
- package/package.json +2 -1
- package/pipe/views/login.ejs +1 -1
- package/script/install-mode.js +33 -0
- package/script/pinokio.json +7 -0
- package/server/index.js +636 -246
- package/server/public/Socket.js +48 -0
- package/server/public/common.js +1956 -257
- package/server/public/fseditor.js +71 -12
- package/server/public/install.js +1 -1
- package/server/public/layout.js +740 -0
- package/server/public/modalinput.js +0 -1
- package/server/public/opener.js +12 -11
- package/server/public/serve/style.css +1 -1
- package/server/public/style.css +122 -129
- package/server/public/tab-idle-notifier.js +629 -0
- package/server/public/terminal_input_tracker.js +63 -0
- package/server/public/urldropdown.css +780 -45
- package/server/public/urldropdown.js +806 -156
- package/server/public/window_storage.js +97 -28
- package/server/socket.js +40 -9
- package/server/views/404.ejs +1 -1
- package/server/views/500.ejs +3 -3
- package/server/views/app.ejs +3146 -1381
- package/server/views/bookmarklet.ejs +197 -0
- package/server/views/bootstrap.ejs +1 -1
- package/server/views/columns.ejs +2 -13
- package/server/views/connect/x.ejs +4 -4
- package/server/views/connect.ejs +13 -14
- package/server/views/container.ejs +3 -4
- package/server/views/d.ejs +225 -55
- package/server/views/download.ejs +1 -1
- package/server/views/editor.ejs +2 -2
- package/server/views/env_editor.ejs +3 -3
- package/server/views/explore.ejs +2 -2
- package/server/views/file_explorer.ejs +3 -3
- package/server/views/git.ejs +7 -7
- package/server/views/github.ejs +3 -3
- package/server/views/help.ejs +2 -2
- package/server/views/index.ejs +17 -16
- package/server/views/index2.ejs +7 -7
- package/server/views/init/index.ejs +15 -79
- package/server/views/install.ejs +4 -4
- package/server/views/keys.ejs +2 -2
- package/server/views/layout.ejs +105 -0
- package/server/views/mini.ejs +2 -2
- package/server/views/net.ejs +45 -13
- package/server/views/network.ejs +41 -27
- package/server/views/network2.ejs +11 -11
- package/server/views/old_network.ejs +10 -10
- package/server/views/partials/dynamic.ejs +3 -5
- package/server/views/partials/menu.ejs +3 -5
- package/server/views/partials/running.ejs +1 -1
- package/server/views/pro.ejs +369 -0
- package/server/views/prototype/index.ejs +3 -3
- package/server/views/required_env_editor.ejs +2 -2
- package/server/views/review.ejs +15 -27
- package/server/views/rows.ejs +2 -13
- package/server/views/screenshots.ejs +298 -142
- package/server/views/settings.ejs +6 -7
- package/server/views/setup.ejs +3 -4
- package/server/views/setup_home.ejs +2 -2
- package/server/views/share_editor.ejs +4 -4
- package/server/views/shell.ejs +280 -29
- package/server/views/start.ejs +2 -2
- package/server/views/task.ejs +2 -2
- package/server/views/terminal.ejs +326 -52
- package/server/views/tools.ejs +461 -17
package/server/views/net.ejs
CHANGED
|
@@ -108,12 +108,12 @@ header .runner {
|
|
|
108
108
|
margin-top: 5px;
|
|
109
109
|
}
|
|
110
110
|
a.badge {
|
|
111
|
-
color:
|
|
111
|
+
color: rgba(127, 91, 243, 0.9);
|
|
112
112
|
text-decoration: none;
|
|
113
113
|
cursor: pointer;
|
|
114
114
|
}
|
|
115
115
|
.badge a {
|
|
116
|
-
color:
|
|
116
|
+
color: rgba(127, 91, 243, 0.9);
|
|
117
117
|
text-decoration: none;
|
|
118
118
|
}
|
|
119
119
|
body.dark .btn {
|
|
@@ -228,7 +228,7 @@ body.dark .open-menu, body.dark .browse {
|
|
|
228
228
|
color: white !important;
|
|
229
229
|
}
|
|
230
230
|
.open-menu:hover, .browse:hover, body.dark .open-menu:hover, body.dark .browse:hover {
|
|
231
|
-
color:
|
|
231
|
+
color: rgba(127, 91, 243, 0.9) !important;
|
|
232
232
|
}
|
|
233
233
|
.open-menu, .browse {
|
|
234
234
|
width: 80px;
|
|
@@ -333,7 +333,7 @@ body.dark aside .tab {
|
|
|
333
333
|
color: white;
|
|
334
334
|
}
|
|
335
335
|
body.dark aside .tab:hover, aside .tab:hover {
|
|
336
|
-
color:
|
|
336
|
+
color: rgba(127, 91, 243, 0.9) !important;
|
|
337
337
|
opacity: 1;
|
|
338
338
|
}
|
|
339
339
|
aside .tab {
|
|
@@ -368,7 +368,7 @@ aside .selected {
|
|
|
368
368
|
padding: 0;
|
|
369
369
|
}
|
|
370
370
|
body.dark .net:hover, .net:hover {
|
|
371
|
-
color:
|
|
371
|
+
color: rgba(127, 91, 243, 0.9);
|
|
372
372
|
}
|
|
373
373
|
body.dark .net {
|
|
374
374
|
/*
|
|
@@ -537,7 +537,6 @@ document.addEventListener('DOMContentLoaded', function() {
|
|
|
537
537
|
<header class='navheader grabbable'>
|
|
538
538
|
<h1>
|
|
539
539
|
<a class='home' href="/"><img class='icon' src="/pinokio-black.png"></a>
|
|
540
|
-
<button id='collapse' class='btn2' data-tippy-content="toggle fullscreen view"><i class="fa-solid fa-bars"></i></button>
|
|
541
540
|
<button class='btn2' id='back' data-tippy-content="back"><div><i class="fa-solid fa-chevron-left"></i></div></button>
|
|
542
541
|
<button class='btn2' id='forward' data-tippy-content="forward"><div><i class="fa-solid fa-chevron-right"></i></div></button>
|
|
543
542
|
<button class='btn2' id='refresh-page' data-tippy-content="refresh"><div><i class="fa-solid fa-rotate-right"></i></div></button>
|
|
@@ -545,7 +544,7 @@ document.addEventListener('DOMContentLoaded', function() {
|
|
|
545
544
|
<button class='btn2 mobile-link-button' id='mobile-link-button' data-tippy-content="enter url"><i class="fa-solid fa-link"></i></button>
|
|
546
545
|
<form class='urlbar'>
|
|
547
546
|
<div class='url-input-container'>
|
|
548
|
-
<input type='url' placeholder='enter
|
|
547
|
+
<input type='url' placeholder='enter any local url to open in pinokio'>
|
|
549
548
|
<div class='url-dropdown' id='url-dropdown'></div>
|
|
550
549
|
</div>
|
|
551
550
|
</form>
|
|
@@ -580,7 +579,7 @@ document.addEventListener('DOMContentLoaded', function() {
|
|
|
580
579
|
<!--
|
|
581
580
|
<div class='app-btns'>
|
|
582
581
|
<a class='btn create-new' href="/init"><i class="fa-solid fa-plus"></i> Build</a>
|
|
583
|
-
<a class='btn' id='explore' href="
|
|
582
|
+
<a class='btn' id='explore' href="/home?mode=explore"><i class="fa-solid fa-magnifying-glass"></i> Discover</a>
|
|
584
583
|
</div>
|
|
585
584
|
-->
|
|
586
585
|
<input type='search' class="flexible" placeholder='Search apps'>
|
|
@@ -644,6 +643,41 @@ document.addEventListener('DOMContentLoaded', function() {
|
|
|
644
643
|
</h3>
|
|
645
644
|
</div>
|
|
646
645
|
<% }) %>
|
|
646
|
+
<% static_routes.forEach((route, index) => { %>
|
|
647
|
+
<div class='line align-top' data-index="<%=processes.length+index%>" data-name="<%=route.name%>" data-title="<%=route.name%>" data-description="<%=route.internal_router.join(' ')%>">
|
|
648
|
+
<h3>
|
|
649
|
+
<div class='item-icon'>
|
|
650
|
+
<div class='placeholder-icon'>
|
|
651
|
+
<i class="fa-solid fa-database"></i>
|
|
652
|
+
</div>
|
|
653
|
+
</div>
|
|
654
|
+
<div class='col'>
|
|
655
|
+
<div class='title'><i class="fa-solid fa-circle"></i><span><%=route.name%></span></div>
|
|
656
|
+
<div class='grid-3'>
|
|
657
|
+
<div class='section'>
|
|
658
|
+
<% route.internal_router.forEach((domain) => { %>
|
|
659
|
+
<% if (domain.endsWith(".localhost")) { %>
|
|
660
|
+
<a class='net' target="_blank" href="https://<%=domain%>">https://<%=domain%></a>
|
|
661
|
+
<% } else { %>
|
|
662
|
+
<a class='net' target="_blank" href="http://<%=domain%>">http://<%=domain%></a>
|
|
663
|
+
<% } %>
|
|
664
|
+
<% }) %>
|
|
665
|
+
</div>
|
|
666
|
+
<div class='section'>
|
|
667
|
+
<% if (route.external_ip) { %>
|
|
668
|
+
<a class='net' target="_blank" href="http://<%=route.external_ip%>">http://<%=route.external_ip%></a>
|
|
669
|
+
<% } %>
|
|
670
|
+
</div>
|
|
671
|
+
<div class='section'>
|
|
672
|
+
<% route.external_router.forEach((domain) => { %>
|
|
673
|
+
<a class='net' target="_blank" href="https://<%=domain%>">https://<%=domain%></a>
|
|
674
|
+
<% }) %>
|
|
675
|
+
</div>
|
|
676
|
+
</div>
|
|
677
|
+
</div>
|
|
678
|
+
</h3>
|
|
679
|
+
</div>
|
|
680
|
+
<% }) %>
|
|
647
681
|
<% } else { %>
|
|
648
682
|
<div class='section-container'>
|
|
649
683
|
<div class='section-col'>
|
|
@@ -733,7 +767,6 @@ document.addEventListener('DOMContentLoaded', function() {
|
|
|
733
767
|
</h3>
|
|
734
768
|
<% }) %>
|
|
735
769
|
</div>
|
|
736
|
-
<!--
|
|
737
770
|
<div class='section-col'>
|
|
738
771
|
<div class='section-header'>
|
|
739
772
|
<h3>
|
|
@@ -770,15 +803,14 @@ document.addEventListener('DOMContentLoaded', function() {
|
|
|
770
803
|
</h3>
|
|
771
804
|
<% }) %>
|
|
772
805
|
</div>
|
|
773
|
-
-->
|
|
774
806
|
</div>
|
|
775
807
|
<% } %>
|
|
776
808
|
</div>
|
|
777
809
|
</div>
|
|
778
810
|
<aside>
|
|
779
811
|
<div class='btn-tab'>
|
|
780
|
-
<
|
|
781
|
-
<a class='btn' id='explore' href="
|
|
812
|
+
<button type='button' class='btn' id='create-launcher-button'><i class="fa-solid fa-plus"></i><div class='caption'>Create</div></button>
|
|
813
|
+
<a class='btn' id='explore' href="/home?mode=explore"><i class="fa-solid fa-globe"></i><div class='caption'>Discover</div></a>
|
|
782
814
|
</div>
|
|
783
815
|
<a href="/" class='tab'><i class='fas fa-laptop-code'></i><div class='caption'>This machine</div></a>
|
|
784
816
|
<a href="/network" class='tab'><i class="fa-solid fa-wifi"></i><div class='caption'>Local network</div></a>
|
|
@@ -798,7 +830,7 @@ document.addEventListener('DOMContentLoaded', function() {
|
|
|
798
830
|
<a id='downloadlogs' download class='hidden btn2' href="/pinokio/logs.zip"><i class="fa-solid fa-download"></i><div class='caption'>Download logs</div></a>
|
|
799
831
|
<a class='tab' href="/screenshots"><i class="fa-solid fa-camera"></i><div class='caption'>Screenshots</div></a>
|
|
800
832
|
<a class='tab' href="/tools"><i class="fa-solid fa-toolbox"></i><div class='caption'>Installed Tools</div></a>
|
|
801
|
-
<a class='tab' href="
|
|
833
|
+
<a class='tab' href="/home?mode=settings"><i class="fa-solid fa-gear"></i><div class='caption'>Settings</div></a>
|
|
802
834
|
</aside>
|
|
803
835
|
</main>
|
|
804
836
|
<script>
|
package/server/views/network.ejs
CHANGED
|
@@ -35,7 +35,7 @@ ol {
|
|
|
35
35
|
padding-inline-start: 15px;
|
|
36
36
|
}
|
|
37
37
|
a.explain {
|
|
38
|
-
color:
|
|
38
|
+
color: rgba(127, 91, 243, 0.9);
|
|
39
39
|
text-decoration: underline;
|
|
40
40
|
cursor: pointer;
|
|
41
41
|
}
|
|
@@ -126,12 +126,12 @@ header .runner {
|
|
|
126
126
|
margin-top: 5px;
|
|
127
127
|
}
|
|
128
128
|
a.badge {
|
|
129
|
-
color:
|
|
129
|
+
color: rgba(127, 91, 243, 0.9);
|
|
130
130
|
text-decoration: none;
|
|
131
131
|
cursor: pointer;
|
|
132
132
|
}
|
|
133
133
|
.badge a {
|
|
134
|
-
color:
|
|
134
|
+
color: rgba(127, 91, 243, 0.9);
|
|
135
135
|
text-decoration: none;
|
|
136
136
|
}
|
|
137
137
|
/*
|
|
@@ -147,7 +147,7 @@ body.dark .browser-options-row {
|
|
|
147
147
|
border-bottom: 1px solid rgba(255,255,255,0.05);
|
|
148
148
|
}
|
|
149
149
|
.description a {
|
|
150
|
-
color:
|
|
150
|
+
color: rgba(127, 91, 243, 0.9);
|
|
151
151
|
text-decoration: none;
|
|
152
152
|
}
|
|
153
153
|
a.ln[href^=https] {
|
|
@@ -215,11 +215,11 @@ a.ln:hover {
|
|
|
215
215
|
box-sizing: border-box;
|
|
216
216
|
}
|
|
217
217
|
.container-row.current .header-label-sub {
|
|
218
|
-
color:
|
|
218
|
+
color: rgba(127, 91, 243, 0.9);
|
|
219
219
|
}
|
|
220
220
|
/*
|
|
221
221
|
.container-row.current .header-label-sub {
|
|
222
|
-
color:
|
|
222
|
+
color: rgba(127, 91, 243, 0.9);
|
|
223
223
|
}
|
|
224
224
|
*/
|
|
225
225
|
.desc {
|
|
@@ -241,7 +241,7 @@ a.ln:hover {
|
|
|
241
241
|
padding-top: 5px;
|
|
242
242
|
padding-bottom: 0 !important;
|
|
243
243
|
text-decoration: none;
|
|
244
|
-
color:
|
|
244
|
+
color: rgba(127, 91, 243, 0.9);
|
|
245
245
|
cursor: pointer;
|
|
246
246
|
}
|
|
247
247
|
.container-row table {
|
|
@@ -250,7 +250,7 @@ a.ln:hover {
|
|
|
250
250
|
}
|
|
251
251
|
table a {
|
|
252
252
|
text-decoration: none;
|
|
253
|
-
color:
|
|
253
|
+
color: rgba(127, 91, 243, 0.9);
|
|
254
254
|
}
|
|
255
255
|
td:first-child, th:first-child {
|
|
256
256
|
max-width: 100px;
|
|
@@ -295,7 +295,7 @@ body.dark .config {
|
|
|
295
295
|
align-items: stretch;
|
|
296
296
|
}
|
|
297
297
|
body.dark .config .btn {
|
|
298
|
-
background:
|
|
298
|
+
background: rgba(127, 91, 243, 0.9);
|
|
299
299
|
}
|
|
300
300
|
.config .btn {
|
|
301
301
|
font-size: 16px;
|
|
@@ -303,7 +303,7 @@ body.dark .config .btn {
|
|
|
303
303
|
width: 100px;
|
|
304
304
|
/*
|
|
305
305
|
*/
|
|
306
|
-
background:
|
|
306
|
+
background: rgba(127, 91, 243, 0.9);
|
|
307
307
|
flex-shrink: 0;
|
|
308
308
|
}
|
|
309
309
|
.config-row {
|
|
@@ -380,7 +380,7 @@ input:checked + .slider {
|
|
|
380
380
|
background-color: #2196F3;
|
|
381
381
|
background: black;
|
|
382
382
|
*/
|
|
383
|
-
background-color:
|
|
383
|
+
background-color: rgba(127, 91, 243, 0.9);
|
|
384
384
|
}
|
|
385
385
|
|
|
386
386
|
input:focus + .slider {
|
|
@@ -468,7 +468,7 @@ body.dark aside .tab {
|
|
|
468
468
|
color: white;
|
|
469
469
|
}
|
|
470
470
|
body.dark aside .tab:hover, aside .tab:hover {
|
|
471
|
-
color:
|
|
471
|
+
color: rgba(127, 91, 243, 0.9) !important;
|
|
472
472
|
opacity: 1;
|
|
473
473
|
}
|
|
474
474
|
aside .tab {
|
|
@@ -515,8 +515,8 @@ aside .current.selected {
|
|
|
515
515
|
border-left: 10px solid transparent;
|
|
516
516
|
}
|
|
517
517
|
body.dark .net:hover, .net:hover {
|
|
518
|
-
color:
|
|
519
|
-
border-left: 4px solid
|
|
518
|
+
color: rgba(127, 91, 243, 0.9);
|
|
519
|
+
border-left: 4px solid rgba(127, 91, 243, 0.9);
|
|
520
520
|
}
|
|
521
521
|
body.dark .net {
|
|
522
522
|
border-left: 3px solid white;
|
|
@@ -630,12 +630,12 @@ header .runner {
|
|
|
630
630
|
margin-top: 5px;
|
|
631
631
|
}
|
|
632
632
|
a.badge {
|
|
633
|
-
color:
|
|
633
|
+
color: rgba(127, 91, 243, 0.9);
|
|
634
634
|
text-decoration: none;
|
|
635
635
|
cursor: pointer;
|
|
636
636
|
}
|
|
637
637
|
.badge a {
|
|
638
|
-
color:
|
|
638
|
+
color: rgba(127, 91, 243, 0.9);
|
|
639
639
|
text-decoration: none;
|
|
640
640
|
}
|
|
641
641
|
body.dark .btn {
|
|
@@ -766,7 +766,7 @@ body.dark .open-menu, body.dark .browse {
|
|
|
766
766
|
color: white !important;
|
|
767
767
|
}
|
|
768
768
|
.open-menu:hover, .browse:hover, body.dark .open-menu:hover, body.dark .browse:hover {
|
|
769
|
-
color:
|
|
769
|
+
color: rgba(127, 91, 243, 0.9) !important;
|
|
770
770
|
}
|
|
771
771
|
.open-menu, .browse {
|
|
772
772
|
width: 80px;
|
|
@@ -866,7 +866,7 @@ body.dark aside .tab {
|
|
|
866
866
|
color: white;
|
|
867
867
|
}
|
|
868
868
|
body.dark aside .tab:hover, aside .tab:hover {
|
|
869
|
-
color:
|
|
869
|
+
color: rgba(127, 91, 243, 0.9) !important;
|
|
870
870
|
opacity: 1;
|
|
871
871
|
}
|
|
872
872
|
aside .tab {
|
|
@@ -906,8 +906,8 @@ aside .selected {
|
|
|
906
906
|
padding: 0;
|
|
907
907
|
}
|
|
908
908
|
body.dark .net:hover, .net:hover {
|
|
909
|
-
color:
|
|
910
|
-
border-left: 4px solid
|
|
909
|
+
color: rgba(127, 91, 243, 0.9);
|
|
910
|
+
border-left: 4px solid rgba(127, 91, 243, 0.9);
|
|
911
911
|
}
|
|
912
912
|
body.dark .net {
|
|
913
913
|
border-left: 3px solid white;
|
|
@@ -1050,7 +1050,6 @@ document.addEventListener('DOMContentLoaded', function() {
|
|
|
1050
1050
|
<header class='navheader grabbable'>
|
|
1051
1051
|
<h1>
|
|
1052
1052
|
<a class='home' href="/"><img class='icon' src="/pinokio-black.png"></a>
|
|
1053
|
-
<button id='collapse' class='btn2' data-tippy-content="toggle fullscreen view"><i class="fa-solid fa-bars"></i></button>
|
|
1054
1053
|
<button class='btn2' id='back' data-tippy-content="back"><div><i class="fa-solid fa-chevron-left"></i></div></button>
|
|
1055
1054
|
<button class='btn2' id='forward' data-tippy-content="forward"><div><i class="fa-solid fa-chevron-right"></i></div></button>
|
|
1056
1055
|
<button class='btn2' id='refresh-page' data-tippy-content="refresh"><div><i class="fa-solid fa-rotate-right"></i></div></button>
|
|
@@ -1058,7 +1057,7 @@ document.addEventListener('DOMContentLoaded', function() {
|
|
|
1058
1057
|
<button class='btn2 mobile-link-button' id='mobile-link-button' data-tippy-content="enter url"><i class="fa-solid fa-link"></i></button>
|
|
1059
1058
|
<form class='urlbar'>
|
|
1060
1059
|
<div class='url-input-container'>
|
|
1061
|
-
<input type='url' placeholder='enter
|
|
1060
|
+
<input type='url' placeholder='enter any local url to open in pinokio'>
|
|
1062
1061
|
<div class='url-dropdown' id='url-dropdown'></div>
|
|
1063
1062
|
</div>
|
|
1064
1063
|
</form>
|
|
@@ -1147,6 +1146,7 @@ document.addEventListener('DOMContentLoaded', function() {
|
|
|
1147
1146
|
<i class="fa-solid fa-circle-notch fa-spin"></i>
|
|
1148
1147
|
</div>
|
|
1149
1148
|
<% } %>
|
|
1149
|
+
<!--
|
|
1150
1150
|
<% static_routes.forEach((route, index) => { %>
|
|
1151
1151
|
<div class='line align-top' data-index="<%=processes.length+index%>" data-name="<%=route.name%>" data-title="<%=route.name%>" data-description="<%=route.internal_router.join(' ')%>">
|
|
1152
1152
|
<h3>
|
|
@@ -1182,13 +1182,14 @@ document.addEventListener('DOMContentLoaded', function() {
|
|
|
1182
1182
|
</h3>
|
|
1183
1183
|
</div>
|
|
1184
1184
|
<% }) %>
|
|
1185
|
+
-->
|
|
1185
1186
|
</div>
|
|
1186
1187
|
</div>
|
|
1187
1188
|
</div>
|
|
1188
1189
|
<aside>
|
|
1189
1190
|
<div class='btn-tab'>
|
|
1190
|
-
<
|
|
1191
|
-
<a class='btn' id='explore' href="
|
|
1191
|
+
<button type='button' class='btn' id='create-launcher-button'><i class="fa-solid fa-plus"></i><div class='caption'>Create</div></button>
|
|
1192
|
+
<a class='btn' id='explore' href="/home?mode=explore"><i class="fa-solid fa-globe"></i><div class='caption'>Discover</div></a>
|
|
1192
1193
|
</div>
|
|
1193
1194
|
<a href="/" class='tab'><i class='fas fa-laptop-code'></i><div class='caption'>This machine</div></a>
|
|
1194
1195
|
<a href="/network" class='tab selected'><i class="fa-solid fa-wifi"></i><div class='caption'>Local network</div></a>
|
|
@@ -1204,7 +1205,7 @@ document.addEventListener('DOMContentLoaded', function() {
|
|
|
1204
1205
|
<a id='downloadlogs' download class='hidden btn2' href="/pinokio/logs.zip"><i class="fa-solid fa-download"></i><div class='caption'>Download logs</div></a>
|
|
1205
1206
|
<a class='tab' href="/screenshots"><i class="fa-solid fa-camera"></i><div class='caption'>Screenshots</div></a>
|
|
1206
1207
|
<a class='tab' href="/tools"><i class="fa-solid fa-toolbox"></i><div class='caption'>Installed Tools</div></a>
|
|
1207
|
-
<a class='tab' href="
|
|
1208
|
+
<a class='tab' href="/home?mode=settings"><i class="fa-solid fa-gear"></i><div class='caption'>Settings</div></a>
|
|
1208
1209
|
</aside>
|
|
1209
1210
|
</main>
|
|
1210
1211
|
<script>
|
|
@@ -1234,9 +1235,16 @@ document.querySelector("#reset-label").addEventListener("click", async (e) => {
|
|
|
1234
1235
|
let res = await fetch("/check_peer").then((res) => {
|
|
1235
1236
|
return res.json()
|
|
1236
1237
|
})
|
|
1238
|
+
console.log("RES", res)
|
|
1237
1239
|
if (res.success) {
|
|
1238
1240
|
document.querySelector(".loading").classList.add("hidden")
|
|
1239
|
-
|
|
1241
|
+
if (res.peer_name) {
|
|
1242
|
+
console.log("> 1")
|
|
1243
|
+
location.href = "/net/" + res.peer_name
|
|
1244
|
+
} else {
|
|
1245
|
+
console.log("> 2")
|
|
1246
|
+
location.href = location.href
|
|
1247
|
+
}
|
|
1240
1248
|
}
|
|
1241
1249
|
} catch (e) {
|
|
1242
1250
|
console.log(e)
|
|
@@ -1393,7 +1401,13 @@ document.querySelector("main").addEventListener("click", async (e) => {
|
|
|
1393
1401
|
})
|
|
1394
1402
|
if (res.success) {
|
|
1395
1403
|
document.querySelector(".loading").classList.add("hidden")
|
|
1396
|
-
|
|
1404
|
+
if (res.peer_name) {
|
|
1405
|
+
console.log("> 1")
|
|
1406
|
+
location.href = "/net/" + res.peer_name
|
|
1407
|
+
} else {
|
|
1408
|
+
console.log("> 2")
|
|
1409
|
+
location.href = location.href
|
|
1410
|
+
}
|
|
1397
1411
|
}
|
|
1398
1412
|
} catch (e) {
|
|
1399
1413
|
console.log(e)
|
|
@@ -31,7 +31,7 @@ ol {
|
|
|
31
31
|
padding-inline-start: 15px;
|
|
32
32
|
}
|
|
33
33
|
a.explain {
|
|
34
|
-
color:
|
|
34
|
+
color: rgba(127, 91, 243, 0.9);
|
|
35
35
|
text-decoration: underline;
|
|
36
36
|
cursor: pointer;
|
|
37
37
|
}
|
|
@@ -122,12 +122,12 @@ header .runner {
|
|
|
122
122
|
margin-top: 5px;
|
|
123
123
|
}
|
|
124
124
|
a.badge {
|
|
125
|
-
color:
|
|
125
|
+
color: rgba(127, 91, 243, 0.9);
|
|
126
126
|
text-decoration: none;
|
|
127
127
|
cursor: pointer;
|
|
128
128
|
}
|
|
129
129
|
.badge a {
|
|
130
|
-
color:
|
|
130
|
+
color: rgba(127, 91, 243, 0.9);
|
|
131
131
|
text-decoration: none;
|
|
132
132
|
}
|
|
133
133
|
body.dark .btn {
|
|
@@ -142,7 +142,7 @@ body.dark .browser-options-row {
|
|
|
142
142
|
border-bottom: 1px solid rgba(255,255,255,0.05);
|
|
143
143
|
}
|
|
144
144
|
.description a {
|
|
145
|
-
color:
|
|
145
|
+
color: rgba(127, 91, 243, 0.9);
|
|
146
146
|
text-decoration: none;
|
|
147
147
|
}
|
|
148
148
|
a.ln[href^=https] {
|
|
@@ -210,11 +210,11 @@ a.ln:hover {
|
|
|
210
210
|
box-sizing: border-box;
|
|
211
211
|
}
|
|
212
212
|
.container-row.current .header-label-sub {
|
|
213
|
-
color:
|
|
213
|
+
color: rgba(127, 91, 243, 0.9);
|
|
214
214
|
}
|
|
215
215
|
/*
|
|
216
216
|
.container-row.current .header-label-sub {
|
|
217
|
-
color:
|
|
217
|
+
color: rgba(127, 91, 243, 0.9);
|
|
218
218
|
}
|
|
219
219
|
*/
|
|
220
220
|
.desc {
|
|
@@ -229,7 +229,7 @@ a.ln:hover {
|
|
|
229
229
|
.link-label {
|
|
230
230
|
margin-right: 10px;
|
|
231
231
|
text-decoration: underline;
|
|
232
|
-
color:
|
|
232
|
+
color: rgba(127, 91, 243, 0.9);
|
|
233
233
|
cursor: pointer;
|
|
234
234
|
}
|
|
235
235
|
.container-row table {
|
|
@@ -238,7 +238,7 @@ a.ln:hover {
|
|
|
238
238
|
}
|
|
239
239
|
table a {
|
|
240
240
|
text-decoration: none;
|
|
241
|
-
color:
|
|
241
|
+
color: rgba(127, 91, 243, 0.9);
|
|
242
242
|
}
|
|
243
243
|
td:first-child, th:first-child {
|
|
244
244
|
max-width: 100px;
|
|
@@ -289,7 +289,7 @@ body.dark .config {
|
|
|
289
289
|
font-size: 16px;
|
|
290
290
|
font-weight: bold;
|
|
291
291
|
width: 100px;
|
|
292
|
-
background:
|
|
292
|
+
background: rgba(127, 91, 243, 0.9);
|
|
293
293
|
flex-shrink: 0;
|
|
294
294
|
}
|
|
295
295
|
.config-row {
|
|
@@ -351,7 +351,7 @@ input:checked + .slider {
|
|
|
351
351
|
/*
|
|
352
352
|
background-color: #2196F3;
|
|
353
353
|
*/
|
|
354
|
-
background-color:
|
|
354
|
+
background-color: rgba(127, 91, 243, 0.9);
|
|
355
355
|
}
|
|
356
356
|
|
|
357
357
|
input:focus + .slider {
|
|
@@ -427,7 +427,7 @@ table h3 {
|
|
|
427
427
|
<a class='btn2' href="<%=portal%>" target="_blank"><div><i class="fa-solid fa-question"></i></div><div>Help</div></a>
|
|
428
428
|
<button class='btn2' id='genlog'><div><i class="fa-solid fa-laptop-code"></i></div><div>Logs</div></button>
|
|
429
429
|
<a id='downloadlogs' download class='hidden btn2' href="/pinokio/logs.zip"><div><i class="fa-solid fa-download"></i></div><div>Download logs</div></a>
|
|
430
|
-
<a class='btn2' href="
|
|
430
|
+
<a class='btn2' href="/home?mode=settings"><div><i class="fa-solid fa-gear"></i></div><div>Settings</div></a>
|
|
431
431
|
<button id='new-window' title='open a new window' class='btn2' data-agent="<%=agent%>"><div><i class="fa-solid fa-plus"></i></div><div>Window</div></button>
|
|
432
432
|
</div>
|
|
433
433
|
</h1>
|
|
@@ -114,12 +114,12 @@ header .runner {
|
|
|
114
114
|
margin-top: 5px;
|
|
115
115
|
}
|
|
116
116
|
a.badge {
|
|
117
|
-
color:
|
|
117
|
+
color: rgba(127, 91, 243, 0.9);
|
|
118
118
|
text-decoration: none;
|
|
119
119
|
cursor: pointer;
|
|
120
120
|
}
|
|
121
121
|
.badge a {
|
|
122
|
-
color:
|
|
122
|
+
color: rgba(127, 91, 243, 0.9);
|
|
123
123
|
text-decoration: none;
|
|
124
124
|
}
|
|
125
125
|
body.dark .btn {
|
|
@@ -134,7 +134,7 @@ body.dark .browser-options-row {
|
|
|
134
134
|
border-bottom: 1px solid rgba(255,255,255,0.05);
|
|
135
135
|
}
|
|
136
136
|
.description a {
|
|
137
|
-
color:
|
|
137
|
+
color: rgba(127, 91, 243, 0.9);
|
|
138
138
|
text-decoration: none;
|
|
139
139
|
}
|
|
140
140
|
a.ln[href^=https] {
|
|
@@ -202,7 +202,7 @@ a.ln:hover {
|
|
|
202
202
|
box-sizing: border-box;
|
|
203
203
|
}
|
|
204
204
|
.container-row.current .header-label-sub {
|
|
205
|
-
color:
|
|
205
|
+
color: rgba(127, 91, 243, 0.9);
|
|
206
206
|
}
|
|
207
207
|
/*
|
|
208
208
|
.container-row.current .header-label-sub {
|
|
@@ -221,7 +221,7 @@ a.ln:hover {
|
|
|
221
221
|
.link-label {
|
|
222
222
|
margin-right: 10px;
|
|
223
223
|
text-decoration: underline;
|
|
224
|
-
color:
|
|
224
|
+
color: rgba(127, 91, 243, 0.9);
|
|
225
225
|
cursor: pointer;
|
|
226
226
|
}
|
|
227
227
|
.container-row table {
|
|
@@ -230,7 +230,7 @@ a.ln:hover {
|
|
|
230
230
|
}
|
|
231
231
|
table a {
|
|
232
232
|
text-decoration: none;
|
|
233
|
-
color:
|
|
233
|
+
color: rgba(127, 91, 243, 0.9);
|
|
234
234
|
}
|
|
235
235
|
td:first-child, th:first-child {
|
|
236
236
|
max-width: 100px;
|
|
@@ -281,7 +281,7 @@ body.dark .config {
|
|
|
281
281
|
font-size: 16px;
|
|
282
282
|
font-weight: bold;
|
|
283
283
|
width: 100px;
|
|
284
|
-
background:
|
|
284
|
+
background: rgba(127, 91, 243, 0.9);
|
|
285
285
|
flex-shrink: 0;
|
|
286
286
|
}
|
|
287
287
|
.config-row {
|
|
@@ -338,7 +338,7 @@ input:checked + .slider {
|
|
|
338
338
|
/*
|
|
339
339
|
background-color: #2196F3;
|
|
340
340
|
*/
|
|
341
|
-
background-color:
|
|
341
|
+
background-color: rgba(127, 91, 243, 0.9);
|
|
342
342
|
}
|
|
343
343
|
|
|
344
344
|
input:focus + .slider {
|
|
@@ -409,11 +409,11 @@ input:checked + .slider:before {
|
|
|
409
409
|
<a href="/connect" class='btn2'><div><i class="fa-solid fa-circle-user"></i></div><div>Connect</div></a>
|
|
410
410
|
<div class='flexible'></div>
|
|
411
411
|
<div class='nav-btns'>
|
|
412
|
-
<a class='btn2' id='explore' href="
|
|
412
|
+
<a class='btn2' id='explore' href="/home?mode=explore"><div><i class="fa-solid fa-magnifying-glass"></i></div><div>Discover</div></a>
|
|
413
413
|
<a class='btn2' href="<%=portal%>" target="_blank"><div><i class="fa-solid fa-question"></i></div><div>Help</div></a>
|
|
414
414
|
<button class='btn2' id='genlog'><div><i class="fa-solid fa-laptop-code"></i></div><div>Logs</div></button>
|
|
415
415
|
<a id='downloadlogs' download class='hidden btn2' href="/pinokio/logs.zip"><div><i class="fa-solid fa-download"></i></div><div>Download logs</div></a>
|
|
416
|
-
<a class='btn2' href="
|
|
416
|
+
<a class='btn2' href="/home?mode=settings"><div><i class="fa-solid fa-gear"></i></div><div>Settings</div></a>
|
|
417
417
|
<button id='new-window' title='open a new window' class='btn2' data-agent="<%=agent%>"><div><i class="fa-solid fa-plus"></i></div><div>Window</div></button>
|
|
418
418
|
</div>
|
|
419
419
|
</h1>
|
|
@@ -28,14 +28,14 @@
|
|
|
28
28
|
<div class='tab'><%-item.btn%></div>
|
|
29
29
|
</div>
|
|
30
30
|
<% } else if (item.target === "_blank") { %>
|
|
31
|
-
<a <%=item.default ? 'data-default' : ''%> data-confirm="<%=item.confirm%>" data-index="<%=index+4%>" target="<%=item.target%>" data-mode="<%=item.mode%>" href="<%=item.href%>" class='btn header-item frame-link <%=item.display || ""%>'
|
|
31
|
+
<a <%=item.default ? 'data-default' : ''%> data-confirm="<%=item.confirm%>" data-index="<%=index+4%>" target="<%=item.target%>" data-mode="<%=item.mode%>" href="<%=item.href%>" class='btn header-item frame-link <%=item.display || ""%>'<%= item.target_full ? ` data-target-full="${item.target_full}"` : '' %>>
|
|
32
32
|
<div class='tab'><%-item.btn%></div>
|
|
33
33
|
<div class='loader'>
|
|
34
34
|
<i class="fa-solid fa-up-right-from-square"></i>
|
|
35
35
|
</div>
|
|
36
36
|
</a>
|
|
37
37
|
<% } else { %>
|
|
38
|
-
<a <%=item.default ? 'data-default' : ''%> data-confirm="<%=item.confirm%>" data-index="<%=index+4%>" target="<%=item.target%>" data-mode="<%=item.mode%>" href="<%=item.href%>" class='btn header-item frame-link <%=item.display || ""%>' <%=item.shell_id ? `data-shell=${item.shell_id}` : ""%> <%=item.script_id ? `data-script=${item.script_id}` : ''%>>
|
|
38
|
+
<a <%=item.default ? 'data-default' : ''%> data-confirm="<%=item.confirm%>" data-index="<%=index+4%>" target="<%=item.target%>" data-mode="<%=item.mode%>" href="<%=item.href%>" class='btn header-item frame-link <%=item.display || ""%>'<%= item.target_full ? ` data-target-full="${item.target_full}"` : '' %> <%=item.shell_id ? `data-shell=${item.shell_id}` : ""%> <%=item.script_id ? `data-script=${item.script_id}` : ''%>>
|
|
39
39
|
<% if (item.running) { %>
|
|
40
40
|
<i class="fa-solid fa-circle"></i>
|
|
41
41
|
<% } %>
|
|
@@ -46,9 +46,7 @@
|
|
|
46
46
|
</div>
|
|
47
47
|
<% } else { %>
|
|
48
48
|
<div class='loader shutdown'>
|
|
49
|
-
|
|
50
|
-
<i class="fa-solid fa-square"></i> Stop
|
|
51
|
-
</button>
|
|
49
|
+
<i class="fa-solid fa-xmark"></i>
|
|
52
50
|
</div>
|
|
53
51
|
<% } %>
|
|
54
52
|
<% } else { %>
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
<% } %>
|
|
41
41
|
</div>
|
|
42
42
|
<% } else if (item.target === "_blank") { %>
|
|
43
|
-
<a <%=item.default ? 'data-default' : ''%> data-confirm="<%=item.confirm%>" data-index="<%=index%>" target="<%=item.target%>" data-mode="<%=item.mode%>" href="<%=item.href%>" class='btn header-item frame-link <%=item.display || ""%>'
|
|
43
|
+
<a <%=item.default ? 'data-default' : ''%> data-confirm="<%=item.confirm%>" data-index="<%=index%>" target="<%=item.target%>" data-mode="<%=item.mode%>" href="<%=item.href%>" class='btn header-item frame-link <%=item.display || ""%>'<%= item.target_full ? ` data-target-full="${item.target_full}"` : '' %>>
|
|
44
44
|
<div class='tab'><%-item.btn%></div>
|
|
45
45
|
<% if (item.arrow) { %>
|
|
46
46
|
<i class="fa-solid fa-angle-right"></i>
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
</div>
|
|
51
51
|
</a>
|
|
52
52
|
<% } else { %>
|
|
53
|
-
<a <%=item.default ? 'data-default' : ''%> data-confirm="<%=item.confirm%>" data-index="<%=index%>" target="<%=item.target%>" data-mode="<%=item.mode%>" href="<%=item.href%>" class='btn header-item frame-link <%=item.display || ""%>' <%=item.shell_id ? `data-shell=${item.shell_id}` : ""%> <%=item.script_id ? `data-script=${item.script_id}` : ''%>>
|
|
53
|
+
<a <%=item.default ? 'data-default' : ''%> data-confirm="<%=item.confirm%>" data-index="<%=index%>" target="<%=item.target%>" data-mode="<%=item.mode%>" href="<%=item.href%>" class='btn header-item frame-link <%=item.display || ""%>'<%= item.target_full ? ` data-target-full="${item.target_full}"` : '' %> <%=item.shell_id ? `data-shell=${item.shell_id}` : ""%> <%=item.script_id ? `data-script=${item.script_id}` : ''%>>
|
|
54
54
|
<% if (item.running) { %>
|
|
55
55
|
<i class="fa-solid fa-circle"></i>
|
|
56
56
|
<% } %>
|
|
@@ -65,9 +65,7 @@
|
|
|
65
65
|
<i class='fa-solid fa-spin fa-circle-notch'></i>
|
|
66
66
|
<i class="fa-solid fa-chevron-right"></i>
|
|
67
67
|
-->
|
|
68
|
-
|
|
69
|
-
<i class="fa-solid fa-square"></i> Stop
|
|
70
|
-
</button>
|
|
68
|
+
<i class="fa-solid fa-xmark"></i>
|
|
71
69
|
</div>
|
|
72
70
|
<% } %>
|
|
73
71
|
<% if (item.arrow) { %>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<% dynamic.forEach((item, index) => { %>
|
|
2
|
-
<a <%=item.default ? 'data-default' : ''%> data-confirm="<%=item.confirm%>" data-index="<%=index+4%>" target="<%=item.target%>" data-mode="<%=item.mode%>" href="<%=item.href%>" class='btn header-item frame-link <%=item.display || ""%>' <%=item.shell_id ? `data-shell=${item.shell_id}` : ""%> <%=item.script_id ? `data-script=${item.script_id}` : ''%>>
|
|
2
|
+
<a <%=item.default ? 'data-default' : ''%> data-confirm="<%=item.confirm%>" data-index="<%=index+4%>" target="<%=item.target%>" data-mode="<%=item.mode%>" href="<%=item.href%>" class='btn header-item frame-link <%=item.display || ""%>'<%= item.target_full ? ` data-target-full="${item.target_full}"` : '' %> <%=item.shell_id ? `data-shell=${item.shell_id}` : ""%> <%=item.script_id ? `data-script=${item.script_id}` : ''%>>
|
|
3
3
|
<% if (item.running) { %>
|
|
4
4
|
<i class="fa-solid fa-circle"></i>
|
|
5
5
|
<% } %>
|