pywebexec 2.4.0__tar.gz → 2.4.1__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.4.0/pywebexec.egg-info → pywebexec-2.4.1}/PKG-INFO +1 -1
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec/static/css/style.css +1 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec/static/js/tablefilter.js +54 -2
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec/version.py +2 -2
- {pywebexec-2.4.0 → pywebexec-2.4.1/pywebexec.egg-info}/PKG-INFO +1 -1
- {pywebexec-2.4.0 → pywebexec-2.4.1}/.github/workflows/python-publish.yml +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/.gitignore +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/LICENSE +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/README.md +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pyproject.toml +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec/__init__.py +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec/host_ip.py +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec/pywebexec.py +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec/static/css/form.css +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec/static/css/markdown.css +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec/static/css/swagger-ui.css +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec/static/css/swagger-ui.css.map +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec/static/css/xterm.css +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec/static/fonts/CommitMonoNerdFontMono-Regular.ttf +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec/static/fonts/LICENSE +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec/static/fonts/glyphicons-halflings-regular.eot +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec/static/fonts/glyphicons-halflings-regular.svg +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec/static/fonts/glyphicons-halflings-regular.ttf +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec/static/fonts/glyphicons-halflings-regular.woff +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec/static/fonts/glyphicons-halflings-regular.woff2 +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec/static/images/aborted.svg +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec/static/images/copy.svg +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec/static/images/copy_ok.svg +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec/static/images/down-arrow.svg +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec/static/images/failed.svg +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec/static/images/favicon.svg +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec/static/images/fit-tty.svg +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec/static/images/fit-win.svg +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec/static/images/font-decrease.svg +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec/static/images/font-increase.svg +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec/static/images/norun.svg +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec/static/images/pause.svg +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec/static/images/popup.svg +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec/static/images/resume.svg +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec/static/images/running.svg +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec/static/images/success.svg +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec/static/images/swagger-ui.svg +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec/static/js/executables.js +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec/static/js/js-yaml/LICENSE +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec/static/js/js-yaml/js-yaml.min.js +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec/static/js/marked/LICENSE.md +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec/static/js/marked/marked.min.js +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec/static/js/popup.js +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec/static/js/schemaform.js +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec/static/js/script.js +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec/static/js/swagger-form.js +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec/static/js/swagger-ui/LICENSE +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec/static/js/swagger-ui/swagger-ui-bundle.js +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec/static/js/swagger-ui/swagger-ui-standalone-preset.js +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec/static/js/xterm/LICENSE +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec/static/js/xterm/addon-canvas.js +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec/static/js/xterm/addon-canvas.js.map +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec/static/js/xterm/addon-fit.js +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec/static/js/xterm/addon-fit.js.map +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec/static/js/xterm/addon-unicode-graphemes.js +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec/static/js/xterm/addon-unicode-graphemes.js.map +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec/static/js/xterm/addon-unicode11.js +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec/static/js/xterm/addon-unicode11.js.map +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec/static/js/xterm/xterm.js +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec/static/js/xterm/xterm.js.map +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec/static/jsonform/LICENSE +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec/static/jsonform/deps/README.md +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec/static/jsonform/deps/img/glyphicons-halflings.png +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec/static/jsonform/deps/jquery.min.js +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec/static/jsonform/deps/jsv.js +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec/static/jsonform/deps/underscore.js +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec/static/jsonform/lib/jsonform.js +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec/swagger.yaml +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec/templates/__init__.py +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec/templates/index.html +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec/templates/popup.html +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec/templates/swagger_ui.html +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec.egg-info/SOURCES.txt +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec.egg-info/dependency_links.txt +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec.egg-info/entry_points.txt +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec.egg-info/requires.txt +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec.egg-info/top_level.txt +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexecdev +0 -0
- {pywebexec-2.4.0 → pywebexec-2.4.1}/setup.cfg +0 -0
@@ -21,11 +21,13 @@ function initTableFilters(table) {
|
|
21
21
|
// Add sort button at the beginning
|
22
22
|
contentSpan.insertBefore(sortBtn, contentSpan.firstChild);
|
23
23
|
|
24
|
-
// Add row counter for last column
|
24
|
+
// Add export button and row counter for last column
|
25
25
|
if (index === headers.length - 1) {
|
26
|
+
// Add row counter
|
26
27
|
const rowCount = document.createElement('span');
|
27
28
|
rowCount.className = 'row-count';
|
28
29
|
rowCount.classList.add('system-font');
|
30
|
+
rowCount.onclick = () => exportToExcel(table);
|
29
31
|
contentSpan.appendChild(rowCount);
|
30
32
|
}
|
31
33
|
|
@@ -47,7 +49,7 @@ function initTableFilters(table) {
|
|
47
49
|
function updateRowCount(table, count) {
|
48
50
|
const rowCount = table.querySelector('.row-count');
|
49
51
|
if (rowCount) {
|
50
|
-
rowCount.textContent =
|
52
|
+
rowCount.textContent = `⤓ ${count}`;
|
51
53
|
}
|
52
54
|
}
|
53
55
|
|
@@ -143,6 +145,56 @@ function applyFilters(table) {
|
|
143
145
|
}
|
144
146
|
}
|
145
147
|
|
148
|
+
function exportToExcel(table) {
|
149
|
+
// Create HTML content
|
150
|
+
const html = `
|
151
|
+
<html>
|
152
|
+
<head>
|
153
|
+
<meta charset="UTF-8">
|
154
|
+
<style>
|
155
|
+
table { border-collapse: collapse; }
|
156
|
+
th, td { border: 1px solid black; padding: 5px; }
|
157
|
+
th { background-color: #f2f2f2; }
|
158
|
+
</style>
|
159
|
+
</head>
|
160
|
+
<body>
|
161
|
+
<table>
|
162
|
+
<thead>
|
163
|
+
<tr>${
|
164
|
+
Array.from(table.querySelectorAll('thead th'))
|
165
|
+
.filter((_, i) => i !== 4 || table !== commandsTable)
|
166
|
+
.map(th => `<th>${th.querySelector('.th-content')?.textContent.replace('⇕', '').replace(/⤓.*/, '').trim() || ''}</th>`)
|
167
|
+
.join('')
|
168
|
+
}</tr>
|
169
|
+
</thead>
|
170
|
+
<tbody>${
|
171
|
+
Array.from(table.querySelectorAll('tbody tr'))
|
172
|
+
.filter(row => row.style.display !== 'none')
|
173
|
+
.map(row =>
|
174
|
+
`<tr>${
|
175
|
+
Array.from(row.cells)
|
176
|
+
.filter((_, i) => i !== 4 || table !== commandsTable)
|
177
|
+
.map(cell => `<td>${cell.textContent.trim()}</td>`)
|
178
|
+
.join('')
|
179
|
+
}</tr>`
|
180
|
+
).join('')
|
181
|
+
}</tbody>
|
182
|
+
</table>
|
183
|
+
</body>
|
184
|
+
</html>`;
|
185
|
+
|
186
|
+
// Create and trigger download
|
187
|
+
const blob = new Blob([html], { type: 'application/vnd.ms-excel' });
|
188
|
+
const url = window.URL.createObjectURL(blob);
|
189
|
+
const a = document.createElement('a');
|
190
|
+
a.href = url;
|
191
|
+
a.download = 'export_' + new Date().toISOString().slice(0,10) + '.xls';
|
192
|
+
document.body.appendChild(a);
|
193
|
+
a.click();
|
194
|
+
document.body.removeChild(a);
|
195
|
+
window.URL.revokeObjectURL(url);
|
196
|
+
}
|
197
|
+
|
146
198
|
let commandsTable = document.querySelector('#commandsTable');
|
147
199
|
document.addEventListener('DOMContentLoaded', () => {
|
148
200
|
if (commandsTable) initTableFilters(commandsTable);
|
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.4.0 → pywebexec-2.4.1}/pywebexec/static/fonts/CommitMonoNerdFontMono-Regular.ttf
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{pywebexec-2.4.0 → pywebexec-2.4.1}/pywebexec/static/fonts/glyphicons-halflings-regular.woff
RENAMED
File without changes
|
{pywebexec-2.4.0 → pywebexec-2.4.1}/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
|
File without changes
|
File without changes
|
File without changes
|
{pywebexec-2.4.0 → pywebexec-2.4.1}/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.4.0 → pywebexec-2.4.1}/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.4.0 → pywebexec-2.4.1}/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
|
File without changes
|