diff --git a/zefie_wtvp_minisrv/includes/ServiceVault/wtv-favorite/commit-shortcuts-favorites.js b/zefie_wtvp_minisrv/includes/ServiceVault/wtv-favorite/commit-shortcuts-favorites.js index 093fb42f..eb1837cf 100644 --- a/zefie_wtvp_minisrv/includes/ServiceVault/wtv-favorite/commit-shortcuts-favorites.js +++ b/zefie_wtvp_minisrv/includes/ServiceVault/wtv-favorite/commit-shortcuts-favorites.js @@ -4,6 +4,8 @@ var folder = request_headers.query.favorite_folder_name; var key = request_headers.query.Choose; var id = request_headers.query.favoriteid; -session_data.favstore.createShortcutKey(); session_data.favstore.updateShortcutKey("none", key, folder, id); +headers = `300 OK +Content-type: text/html +Location: wtv-favorite:/serve-shortcuts-favorites?favorite_folder_name=${folder}` diff --git a/zefie_wtvp_minisrv/includes/ServiceVault/wtv-favorite/serve-choose-shortcut-favorites.js b/zefie_wtvp_minisrv/includes/ServiceVault/wtv-favorite/serve-choose-shortcut-favorites.js index a4353081..52ac3294 100644 --- a/zefie_wtvp_minisrv/includes/ServiceVault/wtv-favorite/serve-choose-shortcut-favorites.js +++ b/zefie_wtvp_minisrv/includes/ServiceVault/wtv-favorite/serve-choose-shortcut-favorites.js @@ -116,264 +116,64 @@ Choose a shortcut label for ${favoritedata.title}, then choose Done -
- -
-
- -
-
-
- - -Not assigned
-
-
-
- - -  F1 - -
- - - - - -
-
-
-
-
-
- -
-
- -
-
-
- -
- - -
-
- -
-
-
- - -Not assigned
-
-
-
- - -  F2 - -
-
- - - - -
-
-
-
-
-
- -
-
- -
-
-
- -
- - -
-
- -
-
-
- - -Not assigned
-
-
-
- - -  F3 - -
-
- - - - -
-
-
-
-
-
- -
-
- -
-
-
- -
- - -
-
- -
-
-
- - -Not assigned
-
-
-
- - -  F4 - -
-
- - - - -
-
-
-
-
-
- -
-
- -
-
-
- -
- - -
-
- -
-
-
- - -Not assigned
-
-
-
- - -  F5 - -
-
- - - - -
-
-
-
-
-
- -
-
- -
-
-
- -
- - -
-
- -
-
-
- - -Not assigned
-
-
-
- - -  F6 - -
-
- - - - -
-
-
-
-
-
- -
-
- -
-
-
- -
- - -
-
- -
-
-
- - -Not assigned
-
-
-
- - -  F7 - -
-
- - - +` +for (var i = 1; i <= 8; i++) { + var key = "F" + i; + var scfav = session_data.favstore.getShortcutKey(key); + if (scfav && scfav.id != "none") { + var fav = session_data.favstore.getFavorite(scfav.folder, scfav.id); + } else { + var fav = { image: "wtv-home:/ROMCache/Spacer.gif", title: "Not assigned" }; + } + +data += ` + +
+
+ +
+
+
+ + +${fav.title}
+
+
+
+ +`; + +if (fav.title != favoritedata.title) { + data += `  ${key}` +} + +data += ` +
+ + + + + +
+
+
+
+
+
+ +
+
+ +
+
+
+ +
+` +} + +data += `
diff --git a/zefie_wtvp_minisrv/includes/ServiceVault/wtv-favorite/serve-organize-favorites.js b/zefie_wtvp_minisrv/includes/ServiceVault/wtv-favorite/serve-organize-favorites.js index 1595dd3f..c6a08de1 100644 --- a/zefie_wtvp_minisrv/includes/ServiceVault/wtv-favorite/serve-organize-favorites.js +++ b/zefie_wtvp_minisrv/includes/ServiceVault/wtv-favorite/serve-organize-favorites.js @@ -185,9 +185,9 @@ Organize favorites
Rename
Rename favorites in this folder
- +Assign a keyboard shortcut to a favorite, or view a list of all shortcuts
diff --git a/zefie_wtvp_minisrv/includes/ServiceVault/wtv-favorite/serve-shortcut-list.js b/zefie_wtvp_minisrv/includes/ServiceVault/wtv-favorite/serve-shortcut-list.js new file mode 100644 index 00000000..e2144a67 --- /dev/null +++ b/zefie_wtvp_minisrv/includes/ServiceVault/wtv-favorite/serve-shortcut-list.js @@ -0,0 +1,157 @@ +var minisrv_service_file = true; + +headers = `200 OK +Content-Type: text/html` + +data = ` + +Keyboard shortcut list + + + + + +
+ + +
+ + + +
+
+ + + +
+ +
+
+
+ +
+
+
+ +
+ +
+ +
+ Favorites +
+
+
+
+ +
+
+ +
+
+
+
+
+ +
+ +
+
+
+
+ + + + +
+
+ + + +
+Keyboard shortcut list +
+
+
` + +for (var i = 1; i <= 8; i++) { + var key = "F" + i; + var scfav = session_data.favstore.getShortcutKey(key); + if (scfav && scfav.id != "none") { + var fav = session_data.favstore.getFavorite(scfav.folder, scfav.id); + } else { + var fav = { image: "wtv-home:/ROMCache/Spacer.gif", title: "Not assigned" }; + } + +data += ` + +
+
+
+
+
+ +
+
+ +
+
+
+ +
+ + + +
+
+ +
+
+
+ + +${fav.title} + + + +
+ +${key} + +
+
+
+
+
+` +} + +data += ` + +
+
+
+
+
+
+
+ +
+
+ +
+
+
+ + + +
+
+ + + + + +
+ +` \ No newline at end of file diff --git a/zefie_wtvp_minisrv/includes/ServiceVault/wtv-favorite/serve-shortcuts-favorites.js b/zefie_wtvp_minisrv/includes/ServiceVault/wtv-favorite/serve-shortcuts-favorites.js index 6ea44797..38060328 100644 --- a/zefie_wtvp_minisrv/includes/ServiceVault/wtv-favorite/serve-shortcuts-favorites.js +++ b/zefie_wtvp_minisrv/includes/ServiceVault/wtv-favorite/serve-shortcuts-favorites.js @@ -162,7 +162,14 @@ ${favarray[i].title}
-
+
+` +var scdata = session_data.favstore.isFavoriteAShortcut(favarray[i].id); +if (scdata) { + data += `${scdata.key}`; +} + +data += `
diff --git a/zefie_wtvp_minisrv/includes/classes/WTVFavorites.js b/zefie_wtvp_minisrv/includes/classes/WTVFavorites.js index e179b7a7..5be2ca39 100644 --- a/zefie_wtvp_minisrv/includes/classes/WTVFavorites.js +++ b/zefie_wtvp_minisrv/includes/classes/WTVFavorites.js @@ -185,7 +185,22 @@ class WTVFavorites { }) return self.messageArr; } - + + + getFavoriteById(favoriteid) { + const folders = this.getFolders(); + for (let i = 0; i < folders.length; i++) { + const folder = folders[i]; + const favorites = this.listFavorites(folder); + for (let j = 0; j < favorites.length; j++) { + if (favorites[j].id === favoriteid) { + return favorites[j]; + } + } + } + return false; + } + getFavorite(folder, favoriteid) { var folder_path = this.getFolderDir(folder); var folder_file = favoriteid + this.favFileExt; @@ -278,6 +293,35 @@ class WTVFavorites { this.deleteFavorite(favoriteid, oldfolder) return true; } + + + isFavoriteAShortcut(favoriteid) { + var favoritefileout = this.favstore_dir + "KeyStore.zfav"; + if (!this.fs.existsSync(favoritefileout)) { + this.createShortcutKey(); + } + var keydata = {}; + keydata = JSON.parse(this.fs.readFileSync(favoritefileout)); + var keys = Object.keys(keydata); + for (var i = 0; i < keys.length; i++) { + if (keydata[keys[i]].id == favoriteid) { + return { key: keys[i], folder: keydata[keys[i]].folder }; + } + } + return false; + } + + getShortcutKey(key) { + var favoritefileout = this.favstore_dir + "KeyStore.zfav"; + if (!this.fs.existsSync(favoritefileout)) { + this.createShortcutKey(); + } + var keydata = {}; + keydata = JSON.parse(this.fs.readFileSync(favoritefileout)); + if (key && keydata[key]) { + return { folder: keydata[key].folder, id: keydata[key].id }; + } + } createShortcutKey() { var favoritefileout = this.favstore_dir + "KeyStore.zfav"; @@ -314,7 +358,7 @@ class WTVFavorites { try { // encode favorite into json - var result = this.fs.writeFileSync(favoritefileout, keydata); + var result = this.fs.writeFileSync(favoritefileout, JSON.stringify(keydata)); if (!result) return false; } catch (e) { @@ -324,53 +368,57 @@ class WTVFavorites { } updateShortcutKey(oldkey, newkey, folder, id) { - var folderpath = this.getFolderDir(folder); var favoritefileout = this.favstore_dir + "KeyStore.zfav"; + if (!this.fs.existsSync(favoritefileout)) { + this.createShortcutKey(); + } var keydata = {}; - - keydata = this.fs.readFileSync(favoritefileout) - console.log(newkey) + + keydata = JSON.parse(this.fs.readFileSync(favoritefileout)) switch(newkey) { case "F1": - keydata.F1.folder = folder; - break + keydata.F1 = { + folder: folder, + id: id + }; + break; case "F2": - keydata.F2 = { - folder: folder, - id: id - } - break; + keydata.F2 = { + folder: folder, + id: id + } + break; case "F3": - keydata.F3 = { - folder: folder, - id: id - } - break; + keydata.F3 = { + folder: folder, + id: id + } + break; case "F4": - keydata.F4 = { - folder: folder, - id: id - } - break; + keydata.F4 = { + folder: folder, + id: id + } + break; case "F5": - keydata.F5 = { - folder: folder, - id: id - } - break; + keydata.F5 = { + folder: folder, + id: id + } + break; case "F6": - keydata.F6 = { - folder: folder, - id: id - } - break; + keydata.F6 = { + folder: folder, + id: id + } + break; case "F7": - keydata.F7 = { - folder: folder, - id: id + keydata.F7 = { + folder: folder, + id: id + } + break; } - break; - } if (oldkey != "none") { keydata[oldkey].folder = null; keydata[oldkey].id = null; @@ -378,7 +426,7 @@ class WTVFavorites { try { // encode favorite into json - var result = this.fs.writeFileSync(favoritefileout, keydata); + var result = this.fs.writeFileSync(favoritefileout, JSON.stringify(keydata)); if (!result) return false; } catch (e) {