tourfp 0.3.2 → 0.3.3
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.
- package/README.md +7 -4
- package/package.json +1 -1
- package/tourfp.js +9 -2
package/README.md
CHANGED
|
@@ -29,13 +29,13 @@ Với Angular, nên khai báo trong `angular.json` để thư viện được n
|
|
|
29
29
|
Hoặc không cần cài, nạp bằng một thẻ script qua CDN:
|
|
30
30
|
|
|
31
31
|
```html
|
|
32
|
-
<script src="https://cdn.jsdelivr.net/npm/tourfp@0.3.
|
|
32
|
+
<script src="https://cdn.jsdelivr.net/npm/tourfp@0.3.3/tourfp.js"></script>
|
|
33
33
|
```
|
|
34
34
|
|
|
35
35
|
Để dùng thử nhanh trên một trang đang mở (trang phải cho phép script từ `cdn.jsdelivr.net`), dán dòng này vào console:
|
|
36
36
|
|
|
37
37
|
```js
|
|
38
|
-
document.head.appendChild(Object.assign(document.createElement('script'), { src: 'https://cdn.jsdelivr.net/npm/tourfp@0.3.
|
|
38
|
+
document.head.appendChild(Object.assign(document.createElement('script'), { src: 'https://cdn.jsdelivr.net/npm/tourfp@0.3.3/tourfp.js' }));
|
|
39
39
|
```
|
|
40
40
|
|
|
41
41
|
Tuỳ chọn, đặt trước khi nạp thư viện:
|
|
@@ -85,8 +85,11 @@ uvicorn main:app --app-dir server --host 127.0.0.1 --port 8000
|
|
|
85
85
|
|
|
86
86
|
Mở <http://localhost:8000>:
|
|
87
87
|
|
|
88
|
-
- **Thêm tour** —
|
|
89
|
-
|
|
88
|
+
- **Thêm tour** — bấm **Ghi tour bằng Chrome**: máy chủ mở Chrome (hồ sơ kiểm thử, đã đăng nhập) có sẵn thanh ghi ở mọi
|
|
89
|
+
trang. Ghi xong bấm **Gửi** trên thanh ghi, tour tự hiện trong hộp Thêm tour; đặt tên rồi lưu. Kéo hẹp cửa sổ Chrome
|
|
90
|
+
để ghi tour cho bố cục mobile. Cũng có thể dán JSON chép từ thanh ghi trên trang khác.
|
|
91
|
+
- **Chạy thử** — bấm **Chạy trong Chrome**: máy chủ mở Chrome (hồ sơ kiểm thử, đã đăng nhập) tại màn bắt đầu của tour,
|
|
92
|
+
nạp thư viện và phát tour ngay theo chế độ và bước dừng đã chọn. Đoạn mã chạy thử vẫn lấy được ở `/api/tours/{id}/snippet.js`.
|
|
90
93
|
Khi chạy thử, thanh ghi tour không hiện (chế độ chỉ phát); gọi `TourFP.showPanel()` nếu cần hiện lại.
|
|
91
94
|
- **Xoá**, **Tải JSON**, và xem danh sách bước của từng tour.
|
|
92
95
|
- **Sửa tên**: bấm vào tên một bước để đặt tên hiển thị cho bước đó (để trống thì dùng lại tên tự lấy từ giao diện); nút **Sửa tên tour** đổi tên và mô tả của tour. Tên đã đặt được dùng trong lời hướng dẫn khi phát và trong việc tìm tour của trợ lý.
|
package/package.json
CHANGED
package/tourfp.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* TourFP 0.3.
|
|
1
|
+
/* TourFP 0.3.3 — bản thử: ghi tour theo thao tác và khớp phần tử bằng "dấu vân tay".
|
|
2
2
|
* - Không dùng class/id. Không phụ thuộc thư viện.
|
|
3
3
|
* - Chữ lấy từ API (tên, tên kế hoạch…) và chữ số bị loại khỏi dấu vân tay.
|
|
4
4
|
* Để lọc được, file này phải được nạp TRƯỚC khi app gọi API (đặt trong <head>).
|
|
@@ -1062,8 +1062,11 @@
|
|
|
1062
1062
|
}
|
|
1063
1063
|
// Máy chủ có gọi được không: null = chưa biết. Trang chặn kết nối ra ngoài thì kết quả không đổi, nên chỉ cần dò một lần.
|
|
1064
1064
|
let serverOk = null;
|
|
1065
|
-
|
|
1065
|
+
// Chrome do trang quản trị mở để ghi tour: có sẵn hàm __tourfpHost, gửi tour thẳng về trang quản trị qua đó
|
|
1066
|
+
const host = () => typeof window.__tourfpHost === 'function';
|
|
1067
|
+
const setSaveMode = () => { bSave.textContent = host() ? 'Gửi' : serverOk === false ? 'Chép JSON' : 'Lưu'; };
|
|
1066
1068
|
async function probe() {
|
|
1069
|
+
if (host()) return setSaveMode();
|
|
1067
1070
|
if (serverOk !== null) return;
|
|
1068
1071
|
try { serverOk = (await fetch(SERVER + '/api/config')).ok; } catch (_) { serverOk = false; }
|
|
1069
1072
|
setSaveMode();
|
|
@@ -1074,6 +1077,10 @@
|
|
|
1074
1077
|
scrub();
|
|
1075
1078
|
if (recording) stop();
|
|
1076
1079
|
if (!steps.length) return setInfo('Chưa có bước nào để lưu');
|
|
1080
|
+
if (host()) {
|
|
1081
|
+
try { await window.__tourfpHost(JSON.stringify(steps)); return setInfo(`Đã gửi ${steps.length} bước về trang quản trị · đặt tên và lưu ở đó`); }
|
|
1082
|
+
catch (_) { return setInfo('Không gửi được về trang quản trị'); }
|
|
1083
|
+
}
|
|
1077
1084
|
if (serverOk === false) {
|
|
1078
1085
|
return setInfo(copyNow(JSON.stringify(steps)) ? 'Đã chép JSON · dán vào Thêm tour ở trang quản trị' : 'Không chép được · dùng copy(TourFP.export()) trong console');
|
|
1079
1086
|
}
|