pywebexec 2.0.10__tar.gz → 2.0.12__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.
- {pywebexec-2.0.10/pywebexec.egg-info → pywebexec-2.0.12}/PKG-INFO +1 -1
- {pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/pywebexec.py +21 -8
- pywebexec-2.0.12/pywebexec/static/css/form.css +183 -0
- {pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/static/css/style.css +5 -1
- {pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/static/js/executables.js +1 -1
- {pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/static/js/schemaform.js +12 -0
- {pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/static/js/swagger-form.js +1 -1
- {pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/version.py +2 -2
- {pywebexec-2.0.10 → pywebexec-2.0.12/pywebexec.egg-info}/PKG-INFO +1 -1
- pywebexec-2.0.10/pywebexec/static/css/form.css +0 -162
- {pywebexec-2.0.10 → pywebexec-2.0.12}/.github/workflows/python-publish.yml +0 -0
- {pywebexec-2.0.10 → pywebexec-2.0.12}/.gitignore +0 -0
- {pywebexec-2.0.10 → pywebexec-2.0.12}/LICENSE +0 -0
- {pywebexec-2.0.10 → pywebexec-2.0.12}/README.md +0 -0
- {pywebexec-2.0.10 → pywebexec-2.0.12}/pyproject.toml +0 -0
- {pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/__init__.py +0 -0
- {pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/host_ip.py +0 -0
- {pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/static/css/markdown.css +0 -0
- {pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/static/css/swagger-ui.css +0 -0
- {pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/static/css/swagger-ui.css.map +0 -0
- {pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/static/css/xterm.css +0 -0
- {pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/static/fonts/CommitMonoNerdFontMono-Regular.ttf +0 -0
- {pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/static/fonts/LICENSE +0 -0
- {pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/static/fonts/glyphicons-halflings-regular.eot +0 -0
- {pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/static/fonts/glyphicons-halflings-regular.svg +0 -0
- {pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/static/fonts/glyphicons-halflings-regular.ttf +0 -0
- {pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/static/fonts/glyphicons-halflings-regular.woff +0 -0
- {pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/static/fonts/glyphicons-halflings-regular.woff2 +0 -0
- {pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/static/images/aborted.svg +0 -0
- {pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/static/images/copy.svg +0 -0
- {pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/static/images/copy_ok.svg +0 -0
- {pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/static/images/down-arrow.svg +0 -0
- {pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/static/images/failed.svg +0 -0
- {pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/static/images/favicon.svg +0 -0
- {pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/static/images/fit-tty.svg +0 -0
- {pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/static/images/fit-win.svg +0 -0
- {pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/static/images/font-decrease.svg +0 -0
- {pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/static/images/font-increase.svg +0 -0
- {pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/static/images/norun.svg +0 -0
- {pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/static/images/pause.svg +0 -0
- {pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/static/images/popup.svg +0 -0
- {pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/static/images/resume.svg +0 -0
- {pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/static/images/running.svg +0 -0
- {pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/static/images/success.svg +0 -0
- {pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/static/images/swagger-ui.svg +0 -0
- {pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/static/js/js-yaml/LICENSE +0 -0
- {pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/static/js/js-yaml/js-yaml.min.js +0 -0
- {pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/static/js/marked/LICENSE.md +0 -0
- {pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/static/js/marked/marked.min.js +0 -0
- {pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/static/js/popup.js +0 -0
- {pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/static/js/script.js +0 -0
- {pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/static/js/swagger-ui/LICENSE +0 -0
- {pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/static/js/swagger-ui/swagger-ui-bundle.js +0 -0
- {pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/static/js/swagger-ui/swagger-ui-standalone-preset.js +0 -0
- {pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/static/js/xterm/LICENSE +0 -0
- {pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/static/js/xterm/addon-canvas.js +0 -0
- {pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/static/js/xterm/addon-canvas.js.map +0 -0
- {pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/static/js/xterm/addon-fit.js +0 -0
- {pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/static/js/xterm/addon-fit.js.map +0 -0
- {pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/static/js/xterm/addon-unicode-graphemes.js +0 -0
- {pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/static/js/xterm/addon-unicode-graphemes.js.map +0 -0
- {pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/static/js/xterm/addon-unicode11.js +0 -0
- {pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/static/js/xterm/addon-unicode11.js.map +0 -0
- {pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/static/js/xterm/xterm.js +0 -0
- {pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/static/js/xterm/xterm.js.map +0 -0
- {pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/static/jsonform/LICENSE +0 -0
- {pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/static/jsonform/deps/README.md +0 -0
- {pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/static/jsonform/deps/img/glyphicons-halflings.png +0 -0
- {pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/static/jsonform/deps/jquery.min.js +0 -0
- {pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/static/jsonform/deps/underscore.js +0 -0
- {pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/static/jsonform/lib/jsonform.js +0 -0
- {pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/swagger.yaml +0 -0
- {pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/templates/__init__.py +0 -0
- {pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/templates/index.html +0 -0
- {pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/templates/popup.html +0 -0
- {pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/templates/swagger_ui.html +0 -0
- {pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec.egg-info/SOURCES.txt +0 -0
- {pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec.egg-info/dependency_links.txt +0 -0
- {pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec.egg-info/entry_points.txt +0 -0
- {pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec.egg-info/requires.txt +0 -0
- {pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec.egg-info/top_level.txt +0 -0
- {pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexecdev +0 -0
- {pywebexec-2.0.10 → pywebexec-2.0.12}/setup.cfg +0 -0
@@ -358,7 +358,8 @@ def parseargs():
|
|
358
358
|
parser.add_argument("-g", "--gencert", action="store_true", help="https server self signed cert")
|
359
359
|
parser.add_argument("-T", "--tokenurl", action="store_true", help="generate safe url to access")
|
360
360
|
parser.add_argument("action", nargs="?", help="daemon action start/stop/restart/status/shareterm/term",
|
361
|
-
choices=["start","stop","restart","status","shareterm", "term"])
|
361
|
+
choices=["start","stop","restart","status","shareterm", "term", "run"])
|
362
|
+
parser.add_argument("command", nargs="*", help="command to run")
|
362
363
|
|
363
364
|
args = parser.parse_args()
|
364
365
|
if not os.path.exists(CONFDIR):
|
@@ -378,6 +379,12 @@ def parseargs():
|
|
378
379
|
if args.action == "term":
|
379
380
|
COMMAND_STATUS_DIR = f"{os.getcwd()}/{COMMAND_STATUS_DIR}"
|
380
381
|
sys.exit(start_term())
|
382
|
+
elif args.action == "run":
|
383
|
+
command = args.command[0]
|
384
|
+
params = args.command[1:]
|
385
|
+
command_id = term_command_id
|
386
|
+
exit_code = run_command("localhost", args.user, command, params, command_id, tty_rows, tty_cols)
|
387
|
+
sys.exit(exit_code)
|
381
388
|
|
382
389
|
(hostname, ip) = host_ip.get_host_ip(args.listen)
|
383
390
|
|
@@ -483,10 +490,14 @@ def run_command(fromip, user, command, params, command_id, rows, cols):
|
|
483
490
|
# app.logger.info(f'{fromip} run_command {command_id} {user}: {command} {params}')
|
484
491
|
log_info(fromip, user, f'run_command {command_id}: {command_str(command, params)}')
|
485
492
|
start_time = datetime.now(timezone.utc).isoformat()
|
493
|
+
if user:
|
494
|
+
os.environ['PYWEBEXEC_USER'] = user
|
486
495
|
update_command_status(command_id, {
|
487
496
|
'command': command,
|
488
497
|
'params': params,
|
489
498
|
'start_time': start_time,
|
499
|
+
'status': 'running',
|
500
|
+
'from': fromip,
|
490
501
|
'user': user,
|
491
502
|
'cols': cols,
|
492
503
|
'rows': rows,
|
@@ -539,7 +550,7 @@ def run_command(fromip, user, command, params, command_id, rows, cols):
|
|
539
550
|
with open(get_output_file_path(command_id), 'a') as output_file:
|
540
551
|
output_file.write(str(e))
|
541
552
|
app.logger.error(fromip, user, f'Error running command {command_id}: {e}')
|
542
|
-
|
553
|
+
return exit_code
|
543
554
|
|
544
555
|
def command_str(command, params):
|
545
556
|
try:
|
@@ -603,12 +614,6 @@ def check_processes():
|
|
603
614
|
'exit_code': -1,
|
604
615
|
})
|
605
616
|
|
606
|
-
args = parseargs()
|
607
|
-
if args.cert:
|
608
|
-
app.config['SESSION_COOKIE_SECURE'] = True
|
609
|
-
app.config['TITLE'] = f"{args.title} API"
|
610
|
-
|
611
|
-
|
612
617
|
def log_info(fromip, user, message):
|
613
618
|
app.logger.info(f"{user} {fromip}: {message}")
|
614
619
|
|
@@ -618,6 +623,14 @@ def log_error(fromip, user, message):
|
|
618
623
|
def log_request(message):
|
619
624
|
log_info(request.remote_addr, session.get('username', '-'), message)
|
620
625
|
|
626
|
+
|
627
|
+
args = parseargs()
|
628
|
+
if args.cert:
|
629
|
+
app.config['SESSION_COOKIE_SECURE'] = True
|
630
|
+
app.config['TITLE'] = f"{args.title} API"
|
631
|
+
|
632
|
+
|
633
|
+
|
621
634
|
def get_executable(cmd):
|
622
635
|
if os.path.isfile(cmd) and os.access(cmd, os.X_OK):
|
623
636
|
help_file = f"{cmd}.help"
|
@@ -0,0 +1,183 @@
|
|
1
|
+
@font-face {
|
2
|
+
font-family: 'Glyphicons Halflings';
|
3
|
+
|
4
|
+
src: url('../fonts/glyphicons-halflings-regular.eot');
|
5
|
+
src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');
|
6
|
+
}
|
7
|
+
|
8
|
+
#schemaForm, .schema-form {
|
9
|
+
font-size: 14px;
|
10
|
+
|
11
|
+
.glyphicon-plus-sign:before {
|
12
|
+
content: "\e081";
|
13
|
+
}
|
14
|
+
.glyphicon-minus-sign:before {
|
15
|
+
content: "\e082";
|
16
|
+
}
|
17
|
+
|
18
|
+
.glyphicon {
|
19
|
+
position: relative;
|
20
|
+
top: 1px;
|
21
|
+
display: inline-block;
|
22
|
+
font-family: 'Glyphicons Halflings';
|
23
|
+
font-style: normal;
|
24
|
+
font-weight: normal;
|
25
|
+
line-height: 1;
|
26
|
+
-webkit-font-smoothing: antialiased;
|
27
|
+
-moz-osx-font-smoothing: grayscale;
|
28
|
+
}
|
29
|
+
|
30
|
+
.btn {
|
31
|
+
font-size: 14px;
|
32
|
+
font-weight: normal;
|
33
|
+
text-align: center;
|
34
|
+
white-space: nowrap;
|
35
|
+
cursor: pointer;
|
36
|
+
padding: 3px 13px;
|
37
|
+
border: 1px solid transparent;
|
38
|
+
border-radius: 15px;
|
39
|
+
font-family: Arial, Helvetica, sans-serif;
|
40
|
+
}
|
41
|
+
.btn-primary {
|
42
|
+
position: relative;
|
43
|
+
margin-bottom: 10px;
|
44
|
+
height: 24px;
|
45
|
+
top: 20px;
|
46
|
+
color: #fff;
|
47
|
+
background-color: #337ab7;
|
48
|
+
border-color: #2e6da4;
|
49
|
+
}
|
50
|
+
.btn-primary:hover {
|
51
|
+
background-color: #286090;
|
52
|
+
border-color: #204d74;
|
53
|
+
}
|
54
|
+
.btn-default {
|
55
|
+
background-color: transparent;
|
56
|
+
padding: 3px 5px 2px 5px;
|
57
|
+
color: #333;
|
58
|
+
/* border: 1px solid #ccc; */
|
59
|
+
/* color: #eee; */
|
60
|
+
}
|
61
|
+
|
62
|
+
|
63
|
+
/* Custom Style */
|
64
|
+
.help-block {
|
65
|
+
font-size: 12px;
|
66
|
+
color: #808080;
|
67
|
+
display: block;
|
68
|
+
margin-top: 5px;
|
69
|
+
margin-bottom: 10px;
|
70
|
+
}
|
71
|
+
.form-control {
|
72
|
+
font-size: 14px;
|
73
|
+
font-weight: normal;
|
74
|
+
line-height: 1.42857143;
|
75
|
+
color: #555;
|
76
|
+
background-color: #fff;
|
77
|
+
background-image: none;
|
78
|
+
border: 1px solid #ccc;
|
79
|
+
display: inline-block;
|
80
|
+
width: auto;
|
81
|
+
vertical-align: middle;
|
82
|
+
box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
|
83
|
+
transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
|
84
|
+
box-sizing: border-box;
|
85
|
+
padding: 3px 10px;
|
86
|
+
height: 24px;
|
87
|
+
border-radius: 15px;
|
88
|
+
margin: 0;
|
89
|
+
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
|
90
|
+
box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
|
91
|
+
-webkit-transition: border-color ease-in-out .15s, -webkit-box-shadow ease-in-out .15s;
|
92
|
+
-o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
|
93
|
+
transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
|
94
|
+
}
|
95
|
+
.form-control:focus {
|
96
|
+
border-color: #66afe9;
|
97
|
+
outline: 0;
|
98
|
+
-webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6);
|
99
|
+
box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6);
|
100
|
+
}
|
101
|
+
|
102
|
+
.jsonform-required > label:after {
|
103
|
+
content: ' *';
|
104
|
+
color: red;
|
105
|
+
}
|
106
|
+
label {
|
107
|
+
display: inline-block;
|
108
|
+
max-width: 100%;
|
109
|
+
margin-bottom: 5px;
|
110
|
+
font-weight: bold;
|
111
|
+
color: #444;
|
112
|
+
margin-left: 5px;
|
113
|
+
font-size: 14px;
|
114
|
+
}
|
115
|
+
.form-inline {
|
116
|
+
align-items: unset;
|
117
|
+
display: flex;
|
118
|
+
flex-flow: wrap;
|
119
|
+
gap: 10px;
|
120
|
+
}
|
121
|
+
.form-inline .checkbox {
|
122
|
+
margin-top: 0px;
|
123
|
+
margin-bottom: 1px;
|
124
|
+
padding: 0;
|
125
|
+
}
|
126
|
+
input[type="checkbox"] {
|
127
|
+
display: block;
|
128
|
+
position: relative;
|
129
|
+
margin: 0;
|
130
|
+
top: 5px;
|
131
|
+
}
|
132
|
+
li > div > label {
|
133
|
+
display: none;
|
134
|
+
}
|
135
|
+
ul {
|
136
|
+
padding: 0;
|
137
|
+
margin: 0;
|
138
|
+
}
|
139
|
+
li {
|
140
|
+
display: flex;
|
141
|
+
}
|
142
|
+
input, select {
|
143
|
+
min-width: unset;
|
144
|
+
max-width: unset;
|
145
|
+
width: auto;
|
146
|
+
}
|
147
|
+
input[type="number"] {
|
148
|
+
max-width: 100px;
|
149
|
+
text-align: right;
|
150
|
+
}
|
151
|
+
select {
|
152
|
+
-webkit-appearance: auto;
|
153
|
+
-moz-appearance: auto;
|
154
|
+
appearance: auto;
|
155
|
+
}
|
156
|
+
textarea {
|
157
|
+
min-height: 24px;
|
158
|
+
max-height: 300px;
|
159
|
+
overflow-y: auto;
|
160
|
+
resize: vertical;
|
161
|
+
border-radius: 5px;
|
162
|
+
border: 1px solid #ccc;
|
163
|
+
padding: 3px;
|
164
|
+
margin: 0px;
|
165
|
+
width: unset;
|
166
|
+
line-height: 1.15;
|
167
|
+
font-weight: normal;
|
168
|
+
font-family: Arial, Helvetica, sans-serif;
|
169
|
+
font-size: 14px;
|
170
|
+
box-sizing: border-box;
|
171
|
+
}
|
172
|
+
textarea:focus {
|
173
|
+
border-color: #66afe9;
|
174
|
+
outline: 0;
|
175
|
+
-webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6);
|
176
|
+
box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6);
|
177
|
+
}
|
178
|
+
}
|
179
|
+
|
180
|
+
.swagger-ui textarea {
|
181
|
+
min-height: 130px;
|
182
|
+
overflow-y: hidden;
|
183
|
+
}
|
@@ -440,8 +440,12 @@ body.dimmed * {
|
|
440
440
|
text-overflow: ellipsis;
|
441
441
|
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
|
442
442
|
font-size: 14px;
|
443
|
+
display: inline-block;
|
444
|
+
}
|
445
|
+
.command-line:hover {
|
446
|
+
text-overflow: unset;
|
447
|
+
max-width: unset;
|
443
448
|
}
|
444
|
-
|
445
449
|
.nbrunning {
|
446
450
|
display: inline-block;
|
447
451
|
font-size: 13px;
|
@@ -297,7 +297,7 @@ paramsInput.addEventListener('focus', () => {
|
|
297
297
|
});
|
298
298
|
setHelpDivPosition();
|
299
299
|
paramsContainer.style.display = 'block';
|
300
|
-
const input1 = schemaFormPW.querySelector('input
|
300
|
+
const input1 = schemaFormPW.querySelector('input, select, textarea');
|
301
301
|
if (input1) {
|
302
302
|
input1.focus();
|
303
303
|
}
|
@@ -54,6 +54,16 @@ function createSchemaForm(form, schema, onSubmit) {
|
|
54
54
|
btn.addEventListener('click', formInputHandle);
|
55
55
|
});
|
56
56
|
formInputHandle();
|
57
|
+
|
58
|
+
form[0].querySelectorAll('textarea').forEach(txt => {
|
59
|
+
txt.style.height = "0";
|
60
|
+
txt.style.height = txt.scrollHeight + "px";
|
61
|
+
txt.addEventListener("input", (e) => {
|
62
|
+
e.target.style.height = "0";
|
63
|
+
e.target.style.height = (e.target.scrollHeight+2) + "px";
|
64
|
+
});
|
65
|
+
});
|
66
|
+
|
57
67
|
return jsform;
|
58
68
|
}
|
59
69
|
|
@@ -88,3 +98,5 @@ async function getPostParametersSchema() {
|
|
88
98
|
|
89
99
|
let schemaForm;
|
90
100
|
let inputHandlers = [];
|
101
|
+
|
102
|
+
|
@@ -92,7 +92,7 @@ window.onload = function() {
|
|
92
92
|
// form.addEventListener("input", formInput(node, jsform));
|
93
93
|
form.addEventListener("input", addFormInputListener(node, jsform));
|
94
94
|
node.parentNode.insertBefore(form, node.nextSibling);
|
95
|
-
item1 = form.querySelector("input, select");
|
95
|
+
item1 = form.querySelector("input, select, textarea");
|
96
96
|
if (item1) {
|
97
97
|
item1.focus();
|
98
98
|
}
|
@@ -1,162 +0,0 @@
|
|
1
|
-
@font-face {
|
2
|
-
font-family: 'Glyphicons Halflings';
|
3
|
-
|
4
|
-
src: url('../fonts/glyphicons-halflings-regular.eot');
|
5
|
-
src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');
|
6
|
-
}
|
7
|
-
|
8
|
-
#schemaForm, .schema-form {
|
9
|
-
font-size: 14px;
|
10
|
-
|
11
|
-
.glyphicon-plus-sign:before {
|
12
|
-
content: "\e081";
|
13
|
-
}
|
14
|
-
.glyphicon-minus-sign:before {
|
15
|
-
content: "\e082";
|
16
|
-
}
|
17
|
-
|
18
|
-
.glyphicon {
|
19
|
-
position: relative;
|
20
|
-
top: 1px;
|
21
|
-
display: inline-block;
|
22
|
-
font-family: 'Glyphicons Halflings';
|
23
|
-
font-style: normal;
|
24
|
-
font-weight: normal;
|
25
|
-
line-height: 1;
|
26
|
-
-webkit-font-smoothing: antialiased;
|
27
|
-
-moz-osx-font-smoothing: grayscale;
|
28
|
-
}
|
29
|
-
|
30
|
-
.btn {
|
31
|
-
font-size: 14px;
|
32
|
-
font-weight: normal;
|
33
|
-
text-align: center;
|
34
|
-
white-space: nowrap;
|
35
|
-
cursor: pointer;
|
36
|
-
padding: 3px 13px;
|
37
|
-
border: 1px solid transparent;
|
38
|
-
border-radius: 15px;
|
39
|
-
font-family: Arial, Helvetica, sans-serif;
|
40
|
-
}
|
41
|
-
.btn-primary {
|
42
|
-
position: relative;
|
43
|
-
margin-bottom: 10px;
|
44
|
-
height: 24px;
|
45
|
-
top: 20px;
|
46
|
-
color: #fff;
|
47
|
-
background-color: #337ab7;
|
48
|
-
border-color: #2e6da4;
|
49
|
-
}
|
50
|
-
.btn-primary:hover {
|
51
|
-
background-color: #286090;
|
52
|
-
border-color: #204d74;
|
53
|
-
}
|
54
|
-
.btn-default {
|
55
|
-
background-color: transparent;
|
56
|
-
padding: 3px 5px 2px 5px;
|
57
|
-
color: #333;
|
58
|
-
/* border: 1px solid #ccc; */
|
59
|
-
/* color: #eee; */
|
60
|
-
}
|
61
|
-
|
62
|
-
|
63
|
-
/* Custom Style */
|
64
|
-
.help-block {
|
65
|
-
font-size: 12px;
|
66
|
-
color: #808080;
|
67
|
-
display: block;
|
68
|
-
margin-top: 5px;
|
69
|
-
margin-bottom: 10px;
|
70
|
-
}
|
71
|
-
.form-control {
|
72
|
-
font-size: 14px;
|
73
|
-
font-weight: normal;
|
74
|
-
line-height: 1.42857143;
|
75
|
-
color: #555;
|
76
|
-
background-color: #fff;
|
77
|
-
background-image: none;
|
78
|
-
border: 1px solid #ccc;
|
79
|
-
display: inline-block;
|
80
|
-
width: auto;
|
81
|
-
vertical-align: middle;
|
82
|
-
box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
|
83
|
-
transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
|
84
|
-
box-sizing: border-box;
|
85
|
-
padding: 3px 10px;
|
86
|
-
height: 24px;
|
87
|
-
border-radius: 15px;
|
88
|
-
margin: 0;
|
89
|
-
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
|
90
|
-
box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
|
91
|
-
-webkit-transition: border-color ease-in-out .15s, -webkit-box-shadow ease-in-out .15s;
|
92
|
-
-o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
|
93
|
-
transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
|
94
|
-
}
|
95
|
-
.form-control:focus {
|
96
|
-
border-color: #66afe9;
|
97
|
-
outline: 0;
|
98
|
-
-webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6);
|
99
|
-
box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6);
|
100
|
-
}
|
101
|
-
|
102
|
-
.jsonform-required > label:after {
|
103
|
-
content: ' *';
|
104
|
-
color: red;
|
105
|
-
}
|
106
|
-
label {
|
107
|
-
display: inline-block;
|
108
|
-
max-width: 100%;
|
109
|
-
margin-bottom: 5px;
|
110
|
-
font-weight: bold;
|
111
|
-
color: #444;
|
112
|
-
margin-left: 5px;
|
113
|
-
font-size: 14px;
|
114
|
-
}
|
115
|
-
.form-inline {
|
116
|
-
align-items: unset;
|
117
|
-
display: flex;
|
118
|
-
flex-flow: wrap;
|
119
|
-
gap: 10px;
|
120
|
-
}
|
121
|
-
.form-inline .checkbox {
|
122
|
-
margin-top: 0px;
|
123
|
-
margin-bottom: 1px;
|
124
|
-
padding: 0;
|
125
|
-
}
|
126
|
-
input[type="checkbox"] {
|
127
|
-
display: block;
|
128
|
-
position: relative;
|
129
|
-
margin: 0;
|
130
|
-
top: 5px;
|
131
|
-
}
|
132
|
-
li > div > label {
|
133
|
-
display: none;
|
134
|
-
}
|
135
|
-
ul {
|
136
|
-
padding: 0;
|
137
|
-
margin: 0;
|
138
|
-
}
|
139
|
-
li {
|
140
|
-
display: flex;
|
141
|
-
}
|
142
|
-
input, select {
|
143
|
-
min-width: unset;
|
144
|
-
max-width: unset;
|
145
|
-
width: auto;
|
146
|
-
}
|
147
|
-
input[type="number"] {
|
148
|
-
max-width: 100px;
|
149
|
-
text-align: right;
|
150
|
-
}
|
151
|
-
select {
|
152
|
-
-webkit-appearance: auto;
|
153
|
-
-moz-appearance: auto;
|
154
|
-
appearance: auto;
|
155
|
-
}
|
156
|
-
|
157
|
-
}
|
158
|
-
|
159
|
-
.swagger-ui textarea {
|
160
|
-
min-height: 130px;
|
161
|
-
overflow-y: hidden;
|
162
|
-
}
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/static/fonts/CommitMonoNerdFontMono-Regular.ttf
RENAMED
File without changes
|
File without changes
|
{pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/static/fonts/glyphicons-halflings-regular.eot
RENAMED
File without changes
|
{pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/static/fonts/glyphicons-halflings-regular.svg
RENAMED
File without changes
|
{pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/static/fonts/glyphicons-halflings-regular.ttf
RENAMED
File without changes
|
{pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/static/fonts/glyphicons-halflings-regular.woff
RENAMED
File without changes
|
{pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/static/fonts/glyphicons-halflings-regular.woff2
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/static/js/swagger-ui/swagger-ui-standalone-preset.js
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/static/js/xterm/addon-unicode-graphemes.js.map
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{pywebexec-2.0.10 → pywebexec-2.0.12}/pywebexec/static/jsonform/deps/img/glyphicons-halflings.png
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|