pywebexec 2.1.17__tar.gz → 2.1.19__tar.gz

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 (83) hide show
  1. {pywebexec-2.1.17/pywebexec.egg-info → pywebexec-2.1.19}/PKG-INFO +1 -1
  2. {pywebexec-2.1.17 → pywebexec-2.1.19}/pywebexec/static/js/executables.js +1 -6
  3. {pywebexec-2.1.17 → pywebexec-2.1.19}/pywebexec/static/js/schemaform.js +17 -6
  4. {pywebexec-2.1.17 → pywebexec-2.1.19}/pywebexec/static/js/swagger-form.js +1 -1
  5. {pywebexec-2.1.17 → pywebexec-2.1.19}/pywebexec/version.py +2 -2
  6. {pywebexec-2.1.17 → pywebexec-2.1.19/pywebexec.egg-info}/PKG-INFO +1 -1
  7. {pywebexec-2.1.17 → pywebexec-2.1.19}/.github/workflows/python-publish.yml +0 -0
  8. {pywebexec-2.1.17 → pywebexec-2.1.19}/.gitignore +0 -0
  9. {pywebexec-2.1.17 → pywebexec-2.1.19}/LICENSE +0 -0
  10. {pywebexec-2.1.17 → pywebexec-2.1.19}/README.md +0 -0
  11. {pywebexec-2.1.17 → pywebexec-2.1.19}/pyproject.toml +0 -0
  12. {pywebexec-2.1.17 → pywebexec-2.1.19}/pywebexec/__init__.py +0 -0
  13. {pywebexec-2.1.17 → pywebexec-2.1.19}/pywebexec/host_ip.py +0 -0
  14. {pywebexec-2.1.17 → pywebexec-2.1.19}/pywebexec/pywebexec.py +0 -0
  15. {pywebexec-2.1.17 → pywebexec-2.1.19}/pywebexec/static/css/form.css +0 -0
  16. {pywebexec-2.1.17 → pywebexec-2.1.19}/pywebexec/static/css/markdown.css +0 -0
  17. {pywebexec-2.1.17 → pywebexec-2.1.19}/pywebexec/static/css/style.css +0 -0
  18. {pywebexec-2.1.17 → pywebexec-2.1.19}/pywebexec/static/css/swagger-ui.css +0 -0
  19. {pywebexec-2.1.17 → pywebexec-2.1.19}/pywebexec/static/css/swagger-ui.css.map +0 -0
  20. {pywebexec-2.1.17 → pywebexec-2.1.19}/pywebexec/static/css/xterm.css +0 -0
  21. {pywebexec-2.1.17 → pywebexec-2.1.19}/pywebexec/static/fonts/CommitMonoNerdFontMono-Regular.ttf +0 -0
  22. {pywebexec-2.1.17 → pywebexec-2.1.19}/pywebexec/static/fonts/LICENSE +0 -0
  23. {pywebexec-2.1.17 → pywebexec-2.1.19}/pywebexec/static/fonts/glyphicons-halflings-regular.eot +0 -0
  24. {pywebexec-2.1.17 → pywebexec-2.1.19}/pywebexec/static/fonts/glyphicons-halflings-regular.svg +0 -0
  25. {pywebexec-2.1.17 → pywebexec-2.1.19}/pywebexec/static/fonts/glyphicons-halflings-regular.ttf +0 -0
  26. {pywebexec-2.1.17 → pywebexec-2.1.19}/pywebexec/static/fonts/glyphicons-halflings-regular.woff +0 -0
  27. {pywebexec-2.1.17 → pywebexec-2.1.19}/pywebexec/static/fonts/glyphicons-halflings-regular.woff2 +0 -0
  28. {pywebexec-2.1.17 → pywebexec-2.1.19}/pywebexec/static/images/aborted.svg +0 -0
  29. {pywebexec-2.1.17 → pywebexec-2.1.19}/pywebexec/static/images/copy.svg +0 -0
  30. {pywebexec-2.1.17 → pywebexec-2.1.19}/pywebexec/static/images/copy_ok.svg +0 -0
  31. {pywebexec-2.1.17 → pywebexec-2.1.19}/pywebexec/static/images/down-arrow.svg +0 -0
  32. {pywebexec-2.1.17 → pywebexec-2.1.19}/pywebexec/static/images/failed.svg +0 -0
  33. {pywebexec-2.1.17 → pywebexec-2.1.19}/pywebexec/static/images/favicon.svg +0 -0
  34. {pywebexec-2.1.17 → pywebexec-2.1.19}/pywebexec/static/images/fit-tty.svg +0 -0
  35. {pywebexec-2.1.17 → pywebexec-2.1.19}/pywebexec/static/images/fit-win.svg +0 -0
  36. {pywebexec-2.1.17 → pywebexec-2.1.19}/pywebexec/static/images/font-decrease.svg +0 -0
  37. {pywebexec-2.1.17 → pywebexec-2.1.19}/pywebexec/static/images/font-increase.svg +0 -0
  38. {pywebexec-2.1.17 → pywebexec-2.1.19}/pywebexec/static/images/norun.svg +0 -0
  39. {pywebexec-2.1.17 → pywebexec-2.1.19}/pywebexec/static/images/pause.svg +0 -0
  40. {pywebexec-2.1.17 → pywebexec-2.1.19}/pywebexec/static/images/popup.svg +0 -0
  41. {pywebexec-2.1.17 → pywebexec-2.1.19}/pywebexec/static/images/resume.svg +0 -0
  42. {pywebexec-2.1.17 → pywebexec-2.1.19}/pywebexec/static/images/running.svg +0 -0
  43. {pywebexec-2.1.17 → pywebexec-2.1.19}/pywebexec/static/images/success.svg +0 -0
  44. {pywebexec-2.1.17 → pywebexec-2.1.19}/pywebexec/static/images/swagger-ui.svg +0 -0
  45. {pywebexec-2.1.17 → pywebexec-2.1.19}/pywebexec/static/js/js-yaml/LICENSE +0 -0
  46. {pywebexec-2.1.17 → pywebexec-2.1.19}/pywebexec/static/js/js-yaml/js-yaml.min.js +0 -0
  47. {pywebexec-2.1.17 → pywebexec-2.1.19}/pywebexec/static/js/marked/LICENSE.md +0 -0
  48. {pywebexec-2.1.17 → pywebexec-2.1.19}/pywebexec/static/js/marked/marked.min.js +0 -0
  49. {pywebexec-2.1.17 → pywebexec-2.1.19}/pywebexec/static/js/popup.js +0 -0
  50. {pywebexec-2.1.17 → pywebexec-2.1.19}/pywebexec/static/js/script.js +0 -0
  51. {pywebexec-2.1.17 → pywebexec-2.1.19}/pywebexec/static/js/swagger-ui/LICENSE +0 -0
  52. {pywebexec-2.1.17 → pywebexec-2.1.19}/pywebexec/static/js/swagger-ui/swagger-ui-bundle.js +0 -0
  53. {pywebexec-2.1.17 → pywebexec-2.1.19}/pywebexec/static/js/swagger-ui/swagger-ui-standalone-preset.js +0 -0
  54. {pywebexec-2.1.17 → pywebexec-2.1.19}/pywebexec/static/js/xterm/LICENSE +0 -0
  55. {pywebexec-2.1.17 → pywebexec-2.1.19}/pywebexec/static/js/xterm/addon-canvas.js +0 -0
  56. {pywebexec-2.1.17 → pywebexec-2.1.19}/pywebexec/static/js/xterm/addon-canvas.js.map +0 -0
  57. {pywebexec-2.1.17 → pywebexec-2.1.19}/pywebexec/static/js/xterm/addon-fit.js +0 -0
  58. {pywebexec-2.1.17 → pywebexec-2.1.19}/pywebexec/static/js/xterm/addon-fit.js.map +0 -0
  59. {pywebexec-2.1.17 → pywebexec-2.1.19}/pywebexec/static/js/xterm/addon-unicode-graphemes.js +0 -0
  60. {pywebexec-2.1.17 → pywebexec-2.1.19}/pywebexec/static/js/xterm/addon-unicode-graphemes.js.map +0 -0
  61. {pywebexec-2.1.17 → pywebexec-2.1.19}/pywebexec/static/js/xterm/addon-unicode11.js +0 -0
  62. {pywebexec-2.1.17 → pywebexec-2.1.19}/pywebexec/static/js/xterm/addon-unicode11.js.map +0 -0
  63. {pywebexec-2.1.17 → pywebexec-2.1.19}/pywebexec/static/js/xterm/xterm.js +0 -0
  64. {pywebexec-2.1.17 → pywebexec-2.1.19}/pywebexec/static/js/xterm/xterm.js.map +0 -0
  65. {pywebexec-2.1.17 → pywebexec-2.1.19}/pywebexec/static/jsonform/LICENSE +0 -0
  66. {pywebexec-2.1.17 → pywebexec-2.1.19}/pywebexec/static/jsonform/deps/README.md +0 -0
  67. {pywebexec-2.1.17 → pywebexec-2.1.19}/pywebexec/static/jsonform/deps/img/glyphicons-halflings.png +0 -0
  68. {pywebexec-2.1.17 → pywebexec-2.1.19}/pywebexec/static/jsonform/deps/jquery.min.js +0 -0
  69. {pywebexec-2.1.17 → pywebexec-2.1.19}/pywebexec/static/jsonform/deps/jsv.js +0 -0
  70. {pywebexec-2.1.17 → pywebexec-2.1.19}/pywebexec/static/jsonform/deps/underscore.js +0 -0
  71. {pywebexec-2.1.17 → pywebexec-2.1.19}/pywebexec/static/jsonform/lib/jsonform.js +0 -0
  72. {pywebexec-2.1.17 → pywebexec-2.1.19}/pywebexec/swagger.yaml +0 -0
  73. {pywebexec-2.1.17 → pywebexec-2.1.19}/pywebexec/templates/__init__.py +0 -0
  74. {pywebexec-2.1.17 → pywebexec-2.1.19}/pywebexec/templates/index.html +0 -0
  75. {pywebexec-2.1.17 → pywebexec-2.1.19}/pywebexec/templates/popup.html +0 -0
  76. {pywebexec-2.1.17 → pywebexec-2.1.19}/pywebexec/templates/swagger_ui.html +0 -0
  77. {pywebexec-2.1.17 → pywebexec-2.1.19}/pywebexec.egg-info/SOURCES.txt +0 -0
  78. {pywebexec-2.1.17 → pywebexec-2.1.19}/pywebexec.egg-info/dependency_links.txt +0 -0
  79. {pywebexec-2.1.17 → pywebexec-2.1.19}/pywebexec.egg-info/entry_points.txt +0 -0
  80. {pywebexec-2.1.17 → pywebexec-2.1.19}/pywebexec.egg-info/requires.txt +0 -0
  81. {pywebexec-2.1.17 → pywebexec-2.1.19}/pywebexec.egg-info/top_level.txt +0 -0
  82. {pywebexec-2.1.17 → pywebexec-2.1.19}/pywebexecdev +0 -0
  83. {pywebexec-2.1.17 → pywebexec-2.1.19}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: pywebexec
3
- Version: 2.1.17
3
+ Version: 2.1.19
4
4
  Summary: Simple Python HTTP Exec Server
5
5
  Home-page: https://github.com/joknarf/pywebexec
6
6
  Author: Franck Jouvanceau
@@ -256,8 +256,6 @@ async function fetchExecutables() {
256
256
 
257
257
  }
258
258
 
259
- let schemaValues = {};
260
-
261
259
  paramsInput.addEventListener('focus', () => {
262
260
  const currentCmd = commandInput.value;
263
261
  paramsInput.name = currentCmd;
@@ -267,8 +265,6 @@ paramsInput.addEventListener('focus', () => {
267
265
  if (gExecutables[currentCmd] && gExecutables[currentCmd].schema && gExecutables[currentCmd].schema.properties && paramsContainer.style.display == 'none') {
268
266
  createSchemaForm($('#schemaForm'), gExecutables[currentCmd].schema, async function (errors, values) {
269
267
  if (errors) {
270
- schemaValues[currentCmd] = values;
271
-
272
268
  console.log(errors);
273
269
  alert(errors[0].message);
274
270
  return false;
@@ -276,7 +272,6 @@ paramsInput.addEventListener('focus', () => {
276
272
  const commandName = commandInput.value;
277
273
  fitAddon.fit();
278
274
  terminal.clear();
279
- schemaValues[currentCmd] = values;
280
275
  payload = { params: values, rows: terminal.rows, cols: terminal.cols }
281
276
  if ('parallel' in values) {
282
277
  payload['parallel'] = values['parallel'];
@@ -306,7 +301,7 @@ paramsInput.addEventListener('focus', () => {
306
301
  console.log('Error running command:', error);
307
302
  }
308
303
  }
309
- }, schemaValues[currentCmd]);
304
+ }, currentCmd.toString());
310
305
  setHelpDivPosition();
311
306
  paramsContainer.style.display = 'block';
312
307
  const input1 = schemaFormPW.querySelector('input, select, textarea');
@@ -35,16 +35,17 @@ function extractKeysAndPlaceholders(obj, formoptions, prefix = '') {
35
35
  let result = [];
36
36
 
37
37
  for (let key in obj.properties) {
38
+ k = prefix ? `${prefix}.${key}` : key;
38
39
  if (obj.properties[key].type === 'object' && obj.properties[key].properties) {
39
- result = result.concat(extractKeysAndPlaceholders(obj.properties[key], formoptions, prefix ? `${prefix}.${key}` : key));
40
+ result = result.concat(extractKeysAndPlaceholders(obj.properties[key], formoptions, k));
40
41
  } else {
41
- if (formoptions[`${prefix}.${key}`]) {
42
- foptions = formoptions[`${prefix}.${key}`];
42
+ if (formoptions[k]) {
43
+ foptions = formoptions[k];
43
44
  } else {
44
45
  foptions = {};
45
46
  }
46
47
  result.push({
47
- key: prefix ? `${prefix}.${key}` : key,
48
+ key: k,
48
49
  placeholder: obj.properties[key].example || null,
49
50
  ... foptions
50
51
  });
@@ -53,7 +54,12 @@ function extractKeysAndPlaceholders(obj, formoptions, prefix = '') {
53
54
  return result;
54
55
  }
55
56
 
56
- function createSchemaForm(form, schema, onSubmit, value={}) {
57
+ function createSchemaForm(form, schema, onSubmit, schemaName) {
58
+ if (schemaValues[schemaName]) {
59
+ value = schemaValues[schemaName];
60
+ } else {
61
+ value = {};
62
+ }
57
63
  if (schema && schema.schema_options) {
58
64
  schema_options = schema.schema_options;
59
65
  } else {
@@ -162,7 +168,11 @@ function createSchemaForm(form, schema, onSubmit, value={}) {
162
168
  txt.setAttribute("spellcheck", "false");
163
169
  txt.addEventListener("input", () => adjustTxtHeight(txt));
164
170
  });
165
-
171
+ form[0].addEventListener('input', () => {
172
+ schemaValues[schemaName] = jsform.root.getFormValues();
173
+ localStorage.setItem('schemaValues', JSON.stringify(schemaValues));
174
+ });
175
+
166
176
  return jsform;
167
177
  }
168
178
  function adjustTxtHeight(txt) {
@@ -200,5 +210,6 @@ async function getPostParametersSchema() {
200
210
 
201
211
  let schemaForm;
202
212
  let inputHandlers = [];
213
+ let schemaValues = JSON.parse(localStorage.getItem('schemaValues')) || {};
203
214
 
204
215
 
@@ -88,7 +88,7 @@ window.onload = function() {
88
88
  const form = document.createElement("form");
89
89
  form.id = routePathId;
90
90
  form.classList.add("schema-form");
91
- jsform = createSchemaForm($(form), swaggerSchemas[routePath], null);
91
+ jsform = createSchemaForm($(form), swaggerSchemas[routePath], null, routePath);
92
92
  // form.addEventListener("input", formInput(node, jsform));
93
93
  form.addEventListener("input", addFormInputListener(node, jsform));
94
94
  node.parentNode.insertBefore(form, node.nextSibling);
@@ -17,5 +17,5 @@ __version__: str
17
17
  __version_tuple__: VERSION_TUPLE
18
18
  version_tuple: VERSION_TUPLE
19
19
 
20
- __version__ = version = '2.1.17'
21
- __version_tuple__ = version_tuple = (2, 1, 17)
20
+ __version__ = version = '2.1.19'
21
+ __version_tuple__ = version_tuple = (2, 1, 19)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: pywebexec
3
- Version: 2.1.17
3
+ Version: 2.1.19
4
4
  Summary: Simple Python HTTP Exec Server
5
5
  Home-page: https://github.com/joknarf/pywebexec
6
6
  Author: Franck Jouvanceau
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes