pywebexec 1.9.18__py3-none-any.whl → 1.9.21__py3-none-any.whl

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.
@@ -6772,7 +6772,7 @@
6772
6772
  border-radius: 15px;
6773
6773
  }
6774
6774
  .btn {
6775
- padding: 3px 10px;
6775
+ padding: 3px 13px;
6776
6776
  border: 1px solid transparent;
6777
6777
  border-radius: 15px;
6778
6778
  line-height: unset;
@@ -6835,7 +6835,7 @@ table {
6835
6835
  border-collapse: collapse;
6836
6836
  }
6837
6837
  th, td {
6838
- padding: 8px;
6838
+ padding: 7px;
6839
6839
  text-align: left;
6840
6840
  border-bottom: 1px solid #ddd;
6841
6841
  white-space: nowrap;
@@ -6879,13 +6879,33 @@ button {
6879
6879
  border-radius: 15px;
6880
6880
  padding: 0px 13px;
6881
6881
  border: 1px #555 solid;
6882
- height: 22px;
6883
- font-size: 13px;
6882
+ height: 24px;
6883
+ font-size: 14px;
6884
6884
  outline: none;
6885
6885
  background-color: #eee;
6886
6886
  color: #000;
6887
6887
  font-weight: normal;
6888
+ font-family: Arial, Helvetica, sans-serif;
6889
+ }
6890
+ button.run {
6891
+ color: #fff;
6892
+ background-color: #337ab7;
6893
+ border-color: #2e6da4;
6894
+ }
6895
+ button.run:hover {
6896
+ background-color: #286090;
6897
+ border-color: #204d74;
6888
6898
  }
6899
+ button.stop {
6900
+ color: #fff;
6901
+ background-color: #d9534f;
6902
+ border-color: #d43f3a;
6903
+ }
6904
+ button.stop:hover {
6905
+ background-color: #c9302c;
6906
+ border-color: #ac2925;
6907
+ }
6908
+
6889
6909
  form {
6890
6910
  padding-bottom: 15px;
6891
6911
  }
@@ -7035,7 +7055,7 @@ code {
7035
7055
  border-radius: 15px;
7036
7056
  padding: 3px;
7037
7057
  border: 1px #aaa solid;
7038
- height: 15px;
7058
+ height: 16px;
7039
7059
  font-size: 15px;
7040
7060
  outline: none;
7041
7061
  background-color: white;
@@ -7073,8 +7093,8 @@ code {
7073
7093
  .show-command-list-button {
7074
7094
  background-color: white;
7075
7095
  cursor: pointer;
7076
- height: 21px;
7077
- font-size: 15px;
7096
+ height: 22px;
7097
+ /* font-size: 15px; */
7078
7098
  border-top: 1px solid #aaa;
7079
7099
  border-bottom: 1px solid #aaa;
7080
7100
  border-radius: 0px;
@@ -7091,7 +7111,7 @@ code {
7091
7111
  visibility: visible; /* Show arrow on hover */
7092
7112
  }
7093
7113
 
7094
- #commandName:focus + .show-command-list-button .arrow {
7114
+ #command:focus + .show-command-list-button .arrow {
7095
7115
  visibility: visible; /* Show arrow when input has focus */
7096
7116
  }
7097
7117
 
@@ -7270,6 +7290,18 @@ body.dimmed * {
7270
7290
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
7271
7291
  font-size: 13px;
7272
7292
  }
7293
+ .command-line {
7294
+ padding: 6px 10px 6px 10px;
7295
+ background-color: #111;
7296
+ color: #eee;
7297
+ max-width: 300px;
7298
+ white-space: nowrap;
7299
+ border-radius: 5px;
7300
+ overflow: hidden;
7301
+ text-overflow: ellipsis;
7302
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
7303
+ font-size: 13px;
7304
+ }
7273
7305
 
7274
7306
  .nbrunning {
7275
7307
  display: inline-block;
@@ -9,6 +9,7 @@ let gExecutables = {};
9
9
  let helpDiv = document.getElementById('paramsHelp');
10
10
  let paramsContainer = document.getElementById('paramsContainer');
11
11
  let schemaForm = document.getElementById('schemaForm');
12
+ let inputHandlers = [];
12
13
 
13
14
  function unfilterCommands() {
14
15
  const items = commandListDiv.children;
@@ -260,6 +261,17 @@ async function fetchExecutables() {
260
261
  document.getElementById('launchForm').style.display = 'none';
261
262
 
262
263
  }
264
+ function formInputHandle() {
265
+ schemaForm.querySelectorAll('input[type="text"]').forEach(input => {
266
+ if (! inputHandlers.includes(input)) {
267
+ console.log('Adding input handler');
268
+ console.log(input);
269
+ input.setAttribute('size', '12');
270
+ input.addEventListener('input', () => adjustInputWidth(input));
271
+ inputHandlers.push(input);
272
+ }
273
+ });
274
+ }
263
275
 
264
276
  paramsInput.addEventListener('focus', () => {
265
277
  const currentCmd = commandInput.value;
@@ -304,14 +316,18 @@ paramsInput.addEventListener('focus', () => {
304
316
  type: 'submit',
305
317
  title: 'Run',
306
318
  }
307
- ]
319
+ ],
320
+ // params: {
321
+ // fieldHtmlClass: "input-small",
322
+ // }
308
323
  });
309
324
  schemaForm.firstChild.classList.add('form-inline');
310
- setHelpDivPosition();
311
- schemaForm.querySelectorAll('input[type="text"]').forEach(input => {
312
- input.setAttribute('size', '12');
313
- input.addEventListener('input', () => adjustInputWidth(input));
325
+ schemaForm.querySelectorAll('._jsonform-array-addmore').forEach(btn => {
326
+ btn.addEventListener('click', formInputHandle);
314
327
  });
328
+
329
+ setHelpDivPosition();
330
+ formInputHandle();
315
331
  paramsContainer.style.display = 'block';
316
332
  const input1 = schemaForm.querySelector('input[type="text"]');
317
333
  if (input1) {
@@ -171,10 +171,10 @@ async function fetchCommands(hide=false) {
171
171
  <td>${formatTime(command.start_time)}</td>
172
172
  <td>${command.status === 'running' ? formatDuration(command.start_time, new Date().toISOString()) : formatDuration(command.start_time, command.end_time)}</td>
173
173
  <td><span class="status-icon status-${command.status}"></span>${command.status}${command.status === 'failed' ? ` (${command.exit_code})` : ''}</td>
174
- <td>
175
- ${command.command.startsWith('term') ? '' : command.status === 'running' ? `<button onclick="stopCommand('${command.command_id}', event)">Stop</button>` : `<button onclick="relaunchCommand('${command.command_id}', event)">Run</button>`}
174
+ <td align="center">
175
+ ${command.command.startsWith('term') ? '' : command.status === 'running' ? `<button class="stop" onclick="stopCommand('${command.command_id}', event)">Stop</button>` : `<button class="run" onclick="relaunchCommand('${command.command_id}', event)">Run</button>`}
176
176
  </td>
177
- <td class="system-font" title="${command.user == '-' ? '' : command.user}">${command.command.replace(/^\.\//, '')}</td>
177
+ <td title="${command.user == '-' ? '' : command.user}"><span class="command-line">${command.command.replace(/^\.\//, '')}</span></td>
178
178
  <td class="monospace outcol">
179
179
  <button class="popup-button" onclick="openPopup('${command.command_id}', event)"></button>
180
180
  ${command.last_output_line || ''}
@@ -22,7 +22,7 @@
22
22
  <div id="commandList" class="command-list"></div>
23
23
  <input type="text" id="params" name="params" oninput="this.style.width = ((this.value.length + 1) * 8) + 'px';">
24
24
  </div>
25
- <button type="submit">Run</button>
25
+ <button class="run" type="submit">Run</button>
26
26
  </form>
27
27
  <div id="paramsContainer">
28
28
  <div id="schemaContainer">
pywebexec/version.py CHANGED
@@ -17,5 +17,5 @@ __version__: str
17
17
  __version_tuple__: VERSION_TUPLE
18
18
  version_tuple: VERSION_TUPLE
19
19
 
20
- __version__ = version = '1.9.18'
21
- __version_tuple__ = version_tuple = (1, 9, 18)
20
+ __version__ = version = '1.9.21'
21
+ __version_tuple__ = version_tuple = (1, 9, 21)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: pywebexec
3
- Version: 1.9.18
3
+ Version: 1.9.21
4
4
  Summary: Simple Python HTTP Exec Server
5
5
  Home-page: https://github.com/joknarf/pywebexec
6
6
  Author: Franck Jouvanceau
@@ -2,9 +2,9 @@ pywebexec/__init__.py,sha256=197fHJy0UDBwTTpGCGortZRr-w2kTaD7MxqdbVmTEi0,61
2
2
  pywebexec/host_ip.py,sha256=Ud_HTflWVQ8789aoQ2RZdT1wGI-ccvrwSWGz_c7T3TI,1241
3
3
  pywebexec/pywebexec.py,sha256=5hv_3F0Tbz_s5eXrt4WaPCylW44gk5NHCzjJzP5HITw,40320
4
4
  pywebexec/swagger.yaml,sha256=pGG4ikpASgBnzoZ44jJJ8l5JrNz7GOBpCakSJta-30c,5676
5
- pywebexec/version.py,sha256=o9GiMcCTI7JOEk8aQRS-nxlGHyFDZVzwEZKRXIetmXQ,513
5
+ pywebexec/version.py,sha256=Zo-mS3a1MwZvEgXjzm9emCI_RnGPRJSVRynGQFQi5xg,513
6
6
  pywebexec/static/css/bootstrap.min.css,sha256=916EbMg70RQy9LHiGkXzG8hSg9EdNy97GazNG_aiY1w,121200
7
- pywebexec/static/css/style.css,sha256=pgExFjeNwVQseuhnXT6I_30SNgUgWlT1g7ZQUQ5SMj4,170618
7
+ pywebexec/static/css/style.css,sha256=DVxDEiNQkn-nB43yRcqUWihdhcRHGZryhO5i2416QZs,171317
8
8
  pywebexec/static/css/xterm.css,sha256=uo5phWaUiJgcz0DAzv46uoByLLbJLeetYosL1xf68rY,5559
9
9
  pywebexec/static/fonts/CommitMonoNerdFontMono-Regular.ttf,sha256=v6nZdSx5cs_TIic8Fujrjzg9u9glWjorDIr7RlwNceM,2370228
10
10
  pywebexec/static/fonts/LICENSE,sha256=gsBdbFPfoMkCWYXBnjcYEAILdO0sYdUdNw8qirJQbVI,4395
@@ -29,9 +29,9 @@ pywebexec/static/images/popup.svg,sha256=0Bl9A_v5cBsMPn6FnOlVWlAQKgd2zqiWQbhjcL9
29
29
  pywebexec/static/images/resume.svg,sha256=99LP1Ya2JXakRCO9kW8JMuT_4a_CannF65EiuwtvK4A,607
30
30
  pywebexec/static/images/running.svg,sha256=fBCYwYb2O9K4N3waC2nURP25NRwZlqR4PbDZy6JQMww,610
31
31
  pywebexec/static/images/success.svg,sha256=NVwezvVMplt46ElW798vqGfrL21Mw_DWHUp_qiD_FU8,489
32
- pywebexec/static/js/executables.js,sha256=OENXnyyzaKTd6cmjxg3st6kTK22zZQe9ZmECgdpfc-Q,12351
32
+ pywebexec/static/js/executables.js,sha256=coSGGD_H47VXmSp-SSu6zZm59K9NsTIZ6Hnh_FRJnpY,12849
33
33
  pywebexec/static/js/popup.js,sha256=0fr3pp4j9D2fXEVnHyQrx2bPWFHfgbb336dbewgH1d8,9023
34
- pywebexec/static/js/script.js,sha256=EpDwM1CyvHgsfkMSAkYmS9nU0sKOEXpQ6L3xhDIabEY,17933
34
+ pywebexec/static/js/script.js,sha256=fwTo9Iz4xsl6wGs-Nm8-Ng8aXzDfvews5cHfzhSfg_0,17987
35
35
  pywebexec/static/js/marked/LICENSE.md,sha256=jjo_gvWaYJWPVsoI9EVkfDKkcz3HymwsRvbriYRxq5w,2942
36
36
  pywebexec/static/js/marked/marked.min.js,sha256=k04-Nuni2gr7Gm51B1uw8JrwUpOoROhKdHfvQJEcNJo,39589
37
37
  pywebexec/static/js/xterm/LICENSE,sha256=EU1P4eXTull-_T9I80VuwnJXubB-zLzUl3xpEYj2T1M,1083
@@ -52,11 +52,11 @@ pywebexec/static/jsonform/deps/underscore.js,sha256=SzKOQsVYGX1bmddyfPzGC6yXY_rW
52
52
  pywebexec/static/jsonform/deps/img/glyphicons-halflings.png,sha256=hpJM0AbbMLnU8UGOBs172D7vK-dooQ8n0s_ybml3zO0,13826
53
53
  pywebexec/static/jsonform/lib/jsonform.js,sha256=U-BvOgq5gCvSUo36qSAK7Y91RPKOq7vZShkIYpzwlkk,138525
54
54
  pywebexec/templates/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
55
- pywebexec/templates/index.html,sha256=_cMEM316zPYySIHVb_gQpf3Zxhk9tWJFF9hdWlFasgc,3598
55
+ pywebexec/templates/index.html,sha256=z63DTXuOoCQ8EngJuEZapRLIcfDHlWayNEsEF7fzsGs,3610
56
56
  pywebexec/templates/popup.html,sha256=3kpMccKD_OLLhJ4Y9KRw6Ny8wQWjVaRrUfV9y5-bDiQ,1580
57
- pywebexec-1.9.18.dist-info/LICENSE,sha256=gRJf0JPT_wsZJsUGlWPTS8Vypfl9vQ1qjp6sNbKykuA,1064
58
- pywebexec-1.9.18.dist-info/METADATA,sha256=37-1aKw6Od1HyNlkOXvvaDRkhysAh5IiwbcUbjkTOOc,9685
59
- pywebexec-1.9.18.dist-info/WHEEL,sha256=jB7zZ3N9hIM9adW7qlTAyycLYW9npaWKLRzaoVcLKcM,91
60
- pywebexec-1.9.18.dist-info/entry_points.txt,sha256=l52GBkPCXRkmlHfEyoVauyfBdg8o-CAtC8qQpOIjJK0,55
61
- pywebexec-1.9.18.dist-info/top_level.txt,sha256=vHoHyzngrfGdm_nM7Xn_5iLmaCrf10XO1EhldgNLEQ8,10
62
- pywebexec-1.9.18.dist-info/RECORD,,
57
+ pywebexec-1.9.21.dist-info/LICENSE,sha256=gRJf0JPT_wsZJsUGlWPTS8Vypfl9vQ1qjp6sNbKykuA,1064
58
+ pywebexec-1.9.21.dist-info/METADATA,sha256=1_ZKGU7GXQNNJV2hWb9-9vXIv0YDqh15PK3x85VTadg,9685
59
+ pywebexec-1.9.21.dist-info/WHEEL,sha256=jB7zZ3N9hIM9adW7qlTAyycLYW9npaWKLRzaoVcLKcM,91
60
+ pywebexec-1.9.21.dist-info/entry_points.txt,sha256=l52GBkPCXRkmlHfEyoVauyfBdg8o-CAtC8qQpOIjJK0,55
61
+ pywebexec-1.9.21.dist-info/top_level.txt,sha256=vHoHyzngrfGdm_nM7Xn_5iLmaCrf10XO1EhldgNLEQ8,10
62
+ pywebexec-1.9.21.dist-info/RECORD,,