pinokiod 3.51.0 → 3.52.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.
Files changed (103) hide show
  1. package/3 +1 -0
  2. package/kernel/gitconfig_template +3 -1
  3. package/kernel/scripts/git/create +1 -2
  4. package/kernel/scripts/git/push +1 -1
  5. package/package.json +6 -2
  6. package/server/index.js +42 -17
  7. package/server/public/common.js +0 -4
  8. package/server/public/serve/directory.html +106 -0
  9. package/server/public/serve/icons/application_xp.png +0 -0
  10. package/server/public/serve/icons/application_xp_terminal.png +0 -0
  11. package/server/public/serve/icons/box.png +0 -0
  12. package/server/public/serve/icons/cd.png +0 -0
  13. package/server/public/serve/icons/controller.png +0 -0
  14. package/server/public/serve/icons/drive.png +0 -0
  15. package/server/public/serve/icons/film.png +0 -0
  16. package/server/public/serve/icons/folder.png +0 -0
  17. package/server/public/serve/icons/font.png +0 -0
  18. package/server/public/serve/icons/image.png +0 -0
  19. package/server/public/serve/icons/map.png +0 -0
  20. package/server/public/serve/icons/page.png +0 -0
  21. package/server/public/serve/icons/page_add.png +0 -0
  22. package/server/public/serve/icons/page_attach.png +0 -0
  23. package/server/public/serve/icons/page_code.png +0 -0
  24. package/server/public/serve/icons/page_copy.png +0 -0
  25. package/server/public/serve/icons/page_delete.png +0 -0
  26. package/server/public/serve/icons/page_edit.png +0 -0
  27. package/server/public/serve/icons/page_error.png +0 -0
  28. package/server/public/serve/icons/page_excel.png +0 -0
  29. package/server/public/serve/icons/page_find.png +0 -0
  30. package/server/public/serve/icons/page_gear.png +0 -0
  31. package/server/public/serve/icons/page_go.png +0 -0
  32. package/server/public/serve/icons/page_green.png +0 -0
  33. package/server/public/serve/icons/page_key.png +0 -0
  34. package/server/public/serve/icons/page_lightning.png +0 -0
  35. package/server/public/serve/icons/page_link.png +0 -0
  36. package/server/public/serve/icons/page_paintbrush.png +0 -0
  37. package/server/public/serve/icons/page_paste.png +0 -0
  38. package/server/public/serve/icons/page_red.png +0 -0
  39. package/server/public/serve/icons/page_refresh.png +0 -0
  40. package/server/public/serve/icons/page_save.png +0 -0
  41. package/server/public/serve/icons/page_white.png +0 -0
  42. package/server/public/serve/icons/page_white_acrobat.png +0 -0
  43. package/server/public/serve/icons/page_white_actionscript.png +0 -0
  44. package/server/public/serve/icons/page_white_add.png +0 -0
  45. package/server/public/serve/icons/page_white_c.png +0 -0
  46. package/server/public/serve/icons/page_white_camera.png +0 -0
  47. package/server/public/serve/icons/page_white_cd.png +0 -0
  48. package/server/public/serve/icons/page_white_code.png +0 -0
  49. package/server/public/serve/icons/page_white_code_red.png +0 -0
  50. package/server/public/serve/icons/page_white_coldfusion.png +0 -0
  51. package/server/public/serve/icons/page_white_compressed.png +0 -0
  52. package/server/public/serve/icons/page_white_copy.png +0 -0
  53. package/server/public/serve/icons/page_white_cplusplus.png +0 -0
  54. package/server/public/serve/icons/page_white_csharp.png +0 -0
  55. package/server/public/serve/icons/page_white_cup.png +0 -0
  56. package/server/public/serve/icons/page_white_database.png +0 -0
  57. package/server/public/serve/icons/page_white_delete.png +0 -0
  58. package/server/public/serve/icons/page_white_dvd.png +0 -0
  59. package/server/public/serve/icons/page_white_edit.png +0 -0
  60. package/server/public/serve/icons/page_white_error.png +0 -0
  61. package/server/public/serve/icons/page_white_excel.png +0 -0
  62. package/server/public/serve/icons/page_white_find.png +0 -0
  63. package/server/public/serve/icons/page_white_flash.png +0 -0
  64. package/server/public/serve/icons/page_white_freehand.png +0 -0
  65. package/server/public/serve/icons/page_white_gear.png +0 -0
  66. package/server/public/serve/icons/page_white_get.png +0 -0
  67. package/server/public/serve/icons/page_white_go.png +0 -0
  68. package/server/public/serve/icons/page_white_h.png +0 -0
  69. package/server/public/serve/icons/page_white_horizontal.png +0 -0
  70. package/server/public/serve/icons/page_white_key.png +0 -0
  71. package/server/public/serve/icons/page_white_lightning.png +0 -0
  72. package/server/public/serve/icons/page_white_link.png +0 -0
  73. package/server/public/serve/icons/page_white_magnify.png +0 -0
  74. package/server/public/serve/icons/page_white_medal.png +0 -0
  75. package/server/public/serve/icons/page_white_office.png +0 -0
  76. package/server/public/serve/icons/page_white_paint.png +0 -0
  77. package/server/public/serve/icons/page_white_paintbrush.png +0 -0
  78. package/server/public/serve/icons/page_white_paste.png +0 -0
  79. package/server/public/serve/icons/page_white_php.png +0 -0
  80. package/server/public/serve/icons/page_white_picture.png +0 -0
  81. package/server/public/serve/icons/page_white_powerpoint.png +0 -0
  82. package/server/public/serve/icons/page_white_put.png +0 -0
  83. package/server/public/serve/icons/page_white_ruby.png +0 -0
  84. package/server/public/serve/icons/page_white_stack.png +0 -0
  85. package/server/public/serve/icons/page_white_star.png +0 -0
  86. package/server/public/serve/icons/page_white_swoosh.png +0 -0
  87. package/server/public/serve/icons/page_white_text.png +0 -0
  88. package/server/public/serve/icons/page_white_text_width.png +0 -0
  89. package/server/public/serve/icons/page_white_tux.png +0 -0
  90. package/server/public/serve/icons/page_white_vector.png +0 -0
  91. package/server/public/serve/icons/page_white_visualstudio.png +0 -0
  92. package/server/public/serve/icons/page_white_width.png +0 -0
  93. package/server/public/serve/icons/page_white_word.png +0 -0
  94. package/server/public/serve/icons/page_white_world.png +0 -0
  95. package/server/public/serve/icons/page_white_wrench.png +0 -0
  96. package/server/public/serve/icons/page_white_zip.png +0 -0
  97. package/server/public/serve/icons/page_word.png +0 -0
  98. package/server/public/serve/icons/page_world.png +0 -0
  99. package/server/public/serve/style.css +308 -0
  100. package/server/public/style.css +9 -2
  101. package/server/serveIndex.js +691 -0
  102. package/server/views/app.ejs +305 -87
  103. package/server/views/network.ejs +114 -17
@@ -285,7 +285,7 @@ body.dark .config {
285
285
  }
286
286
  .config {
287
287
  color: black;
288
- padding: 30px;
288
+ padding: 30px 30px 0;
289
289
  margin: 10px 0;
290
290
  }
291
291
  .config-header {
@@ -533,9 +533,14 @@ body.dark .net {
533
533
  display: block;
534
534
  background: none;
535
535
  }
536
+ form.search {
537
+ padding: 20px;
538
+ }
539
+ /*
536
540
  input[type=search] {
537
541
  visibility: hidden;
538
542
  }
543
+ */
539
544
  .line2 {
540
545
  display: flex;
541
546
  align-items: center;
@@ -673,9 +678,18 @@ body.dark .context-menu-wrapper {
673
678
  text-align: left;
674
679
  color: black;
675
680
  }
681
+ .section-header2 {
682
+ display: flex;
683
+ padding: 10px;
684
+ background: rgba(0,0,0,0.04);
685
+ font-weight: bold;
686
+ }
687
+ .section-header2 .col {
688
+ flex-grow: 1;
689
+ padding-left: 10px;
690
+ }
676
691
  .blank {
677
692
  width: 50px;
678
- height: 50px;
679
693
  flex-shrink: 0;
680
694
  }
681
695
  body.dark .section-header {
@@ -1133,26 +1147,27 @@ document.addEventListener('DOMContentLoaded', function() {
1133
1147
  </div>
1134
1148
  </div>
1135
1149
  <div class='container'>
1150
+ <% if (!requirements_pending && peer_active && processes.length > 0) { %>
1151
+ <form class='search'>
1152
+ <input type='search' class="flexible" placeholder='Filter apps'>
1153
+ </form>
1154
+ <% } %>
1136
1155
  <div class='running-apps'>
1137
- <div class='section-header'>
1138
- <h3>
1156
+ <% if (!requirements_pending && peer_active && processes.length > 0) { %>
1157
+ <div class='section-header2'>
1139
1158
  <div class='blank'></div>
1140
1159
  <div class='col'>
1141
1160
  <div class='grid-3'>
1142
- <div class='section'>
1143
- <h2><i class='fas fa-laptop-code'></i> This machine</h2>
1144
- <div>Use these URLs on this machine.</div>
1145
- </div>
1146
- <div class='section'>
1147
- <h2><i class="fa-solid fa-wifi"></i> Local network</h2><div>Use these URLs from other machines on the same local network.</div>
1148
- </div>
1149
- <div class='section'>
1150
- <h2><i class="fa-solid fa-podcast"></i> Local HTTPS network</h2><div>Use these URLs from other pinokio peers on the same local network <a class='explain' data-type='peer'>How to start a peer</a></div>
1151
- </div>
1161
+ <div data-tippy-content="Use these URLs on this machine"><i class='fas fa-laptop-code'></i> This machine</div>
1162
+ <div data-tippy-content="Use these URLs from other machines on the same local network."><i class="fa-solid fa-wifi"></i> Local network</div>
1163
+ <div data-tippy-content="Use these URLs from other pinokio peers on the same local network"><i class="fa-solid fa-podcast"></i> Local HTTPS network</div>
1152
1164
  </div>
1153
1165
  </div>
1154
- </h3>
1155
- </div>
1166
+ </div>
1167
+ <% } %>
1168
+ <!--
1169
+ <a class='explain' data-type='peer'>How to start a peer</a>
1170
+ -->
1156
1171
  <% if (requirements_pending || peer_active && processes.length === 0) { %>
1157
1172
  <div class='loader'>
1158
1173
  <i class="fa-solid fa-circle-notch fa-spin"></i>
@@ -1330,12 +1345,13 @@ if (document.querySelector("#active").checked) {
1330
1345
  document.querySelector("#active").addEventListener("change", (e)=> {
1331
1346
  console.log(e.target.checked)
1332
1347
  if (e.target.checked) {
1348
+ document.querySelector("#network_name .label").innerHTML = "Network Name"
1333
1349
  document.querySelector("#network_name").classList.remove("hidden")
1334
1350
  document.querySelector(".network-name").classList.add("expanded")
1335
1351
  document.querySelector("#name").classList.remove("hidden")
1336
1352
  document.querySelector("#active-label").innerHTML = "On"
1337
1353
  } else {
1338
- document.querySelector("#network_name").classList.add("hidden")
1354
+ document.querySelector("#network_name .label").innerHTML = "Save Settings"
1339
1355
  document.querySelector(".network-name").classList.remove("expanded")
1340
1356
  document.querySelector("#name").classList.add("hidden")
1341
1357
  document.querySelector("#active-label").innerHTML = "Off"
@@ -1604,6 +1620,87 @@ setInterval(() => {
1604
1620
  })
1605
1621
  }, 2000)
1606
1622
  <% } %>
1623
+
1624
+ let list = []
1625
+ document.querySelectorAll(".line").forEach((el, index) => {
1626
+ list.push({
1627
+ index: parseInt(el.getAttribute("data-index")),
1628
+ name: el.getAttribute("data-name"),
1629
+ description: el.getAttribute("data-description"),
1630
+ uri: el.getAttribute("data-uri")
1631
+ })
1632
+ })
1633
+ const search = (items, value) => {
1634
+ let filtered = []
1635
+ for(let i=0; i<items.length; i++) {
1636
+ let item = items[i]
1637
+ let re = new RegExp(value, "i")
1638
+ if (re.test(item.name)) {
1639
+ filtered.push({ item })
1640
+ } else if (re.test(item.description)) {
1641
+ filtered.push({ item })
1642
+ } else if (re.test(item.uri)) {
1643
+ filtered.push({ item })
1644
+ }
1645
+ }
1646
+ return filtered
1647
+ }
1648
+ let selectedIndex = -1
1649
+ let selectedBtnIndex = 0
1650
+ let filteredCount = list.length
1651
+ let filteredBtnsCount = 0
1652
+ const renderSearch = () => {
1653
+ let target = document.querySelector("form input[type=search]")
1654
+ let result
1655
+ if (target.value.trim().length === 0) {
1656
+ result = list.map((i, index) => {
1657
+ return { item: i }
1658
+ })
1659
+ } else {
1660
+ result = search(list, target.value)
1661
+ }
1662
+ let all = document.querySelectorAll(".line")
1663
+ for(let el of all) {
1664
+ el.classList.add("hidden")
1665
+ el.classList.remove("selected")
1666
+ }
1667
+
1668
+ filteredCount = result.length
1669
+ for(let i=0; i<result.length; i++) {
1670
+ let selector = result[i]
1671
+ //let el = document.querySelector(".line[data-name='" + selector.item.name + "']")
1672
+ let el = document.querySelector(".line[data-index='" + selector.item.index + "']")
1673
+ el.classList.remove("hidden")
1674
+ if (i === selectedIndex) {
1675
+ el.classList.add("selected")
1676
+ let btns = el.querySelectorAll(".btns a")
1677
+ filteredBtnsCount = btns.length
1678
+ btns.forEach((_el, j) => {
1679
+ if (selectedBtnIndex === j) {
1680
+ _el.classList.add("selected")
1681
+ } else {
1682
+ _el.classList.remove("selected")
1683
+ }
1684
+ })
1685
+ } else {
1686
+ el.classList.remove("selected")
1687
+ let btns = el.querySelectorAll(".btns a")
1688
+ btns.forEach((_el, j) => {
1689
+ _el.classList.remove("selected")
1690
+ })
1691
+ }
1692
+ }
1693
+
1694
+ }
1695
+ if (document.querySelector("form input[type=search]")) {
1696
+ renderSearch()
1697
+ document.querySelector("form input[type=search]").addEventListener("input", (e) => {
1698
+ selectedIndex = 0
1699
+ selectedBtnIndex = 0
1700
+ renderSearch()
1701
+ })
1702
+ document.querySelector("form input[type=search]").focus()
1703
+ }
1607
1704
  </script>
1608
1705
  </body>
1609
1706
  </html>