diff --git a/www/src/data/command.js b/www/src/data/command.js
index 137cb4f..270196a 100644
--- a/www/src/data/command.js
+++ b/www/src/data/command.js
@@ -61,7 +61,7 @@ function Command({
function getTitle() {
if (_title) return _title;
- return `${Command.CommandTypes[commandType]} (${Command.Protocols[protocol]})`;
+ return `${Command.getTypeString(_commandType)} (${Command.getProtocolString(_protocol)})`;
}
function setTitle(title) {
@@ -84,73 +84,148 @@ function Command({
};
}
-Command.Protocols = {
- samsung: "Samsung",
- nec: "NEC",
- onkyo: "Onkyo",
- apple: "Apple",
- denon: "Denon",
- sharp: "Sharp",
- panasonic: "Panasonic",
- kaseikyo: "Kaseikyo",
- jvc: "JVC",
- lg: "LG",
- sony: "Sony",
- rc5: "RC5",
- rc6: "RC6",
- universal_pulse_distance: "Universal Pulse Distance",
- universal_pulse_width: "Universal Pulse Width",
- universal_pulse_distance_width: "Universal Pulse Distance Width",
- hash: "Hash",
- pronto: "Pronto",
- bose_wave: "BoseWave",
- bang_olufsen: "Bang & Olufsen",
- lego: "Lego",
- fast: "FAST",
- whynter: "Whynter",
- magiquest: "MagiQuest",
-};
+Command.PROTOCOLS = {
+ SAMSUNG: "samsung",
+ NEC: "nec",
+ ONKYO: "onkyo",
+ APPLE: "apple",
+ DENON: "denon",
+ SHARP: "sharp",
+ PANASONIC: "panasonic",
+ KASEIKYO: "kaseikyo",
+ JVC: "jvc",
+ LG: "lg",
+ SONY: "sony",
+ RC5: "rc5",
+ RC6: "rc6",
+ UNIVERSAL_PULSE_DISTANCE: "universal_pulse_distance",
+ UNIVERSAL_PULSE_WIDTH: "universal_pulse_width",
+ UNIVERSAL_PULSE_DISTANCE_WIDTH: "universal_pulse_distance_width",
+ HASH: "hash",
+ PRONTO: "pronto",
+ BOSE_WAVE: "bose_wave",
+ BANG_OLUFSEN: "bang_olufsen",
+ LEGO: "lego",
+ FAST: "fast",
+ WHYNTER: "whynter",
+ MAGIQUEST: "magiquest",
+}
-Command.CommandTypes = {
- power: "Power",
- input: "Input",
- one: "1",
- two: "2",
- three: "3",
- four: "4",
- five: "5",
- six: "6",
- seven: "7",
- eight: "8",
- nine: "9",
- zero: "0",
- volume_up: "Volume Up",
- volume_down: "Volume Down",
- mute: "Mute",
- channel_up: "Channel Up",
- channel_down: "Channel Down",
- menu: "Menu",
- home: "Home",
- settings: "Settings",
- options: "Options",
- up: "Up",
- down: "Down",
- left: "Left",
- right: "Right",
- enter: "Enter",
- info: "Info",
- return: "Return",
- exit: "Exit",
- red: "Red",
- green: "Green",
- yellow: "Yellow",
- blue: "Blue",
- rewind: "Rewind",
- play: "Play",
- pause: "Pause",
- stop: "Stop",
- forward: "Forward",
- other: "Other",
-};
+Command.getProtocolString = (protocol) => {
+ let mapping = {
+ [Command.PROTOCOLS.SAMSUNG]: "Samsung",
+ [Command.PROTOCOLS.NEC]: "NEC",
+ [Command.PROTOCOLS.ONKYO]: "Onkyo",
+ [Command.PROTOCOLS.APPLE]: "Apple",
+ [Command.PROTOCOLS.DENON]: "Denon",
+ [Command.PROTOCOLS.SHARP]: "Sharp",
+ [Command.PROTOCOLS.PANASONIC]: "Panasonic",
+ [Command.PROTOCOLS.KASEIKYO]: "Kaseikyo",
+ [Command.PROTOCOLS.JVC]: "JVC",
+ [Command.PROTOCOLS.LG]: "LG",
+ [Command.PROTOCOLS.SONY]: "Sony",
+ [Command.PROTOCOLS.RC5]: "RC5",
+ [Command.PROTOCOLS.RC6]: "RC6",
+ [Command.PROTOCOLS.UNIVERSAL_PULSE_DISTANCE]: "Universal Pulse Distance",
+ [Command.PROTOCOLS.UNIVERSAL_PULSE_WIDTH]: "Universal Pulse Width",
+ [Command.PROTOCOLS.UNIVERSAL_PULSE_DISTANCE_WIDTH]: "Universal Pulse Distance Width",
+ [Command.PROTOCOLS.HASH]: "Hash",
+ [Command.PROTOCOLS.PRONTO]: "Pronto",
+ [Command.PROTOCOLS.BOSE_WAVE]: "BoseWave",
+ [Command.PROTOCOLS.BANG_OLUFSEN]: "Bang & Olufsen",
+ [Command.PROTOCOLS.LEGO]: "Lego",
+ [Command.PROTOCOLS.FAST]: "FAST",
+ [Command.PROTOCOLS.WHYNTER]: "Whynter",
+ [Command.PROTOCOLS.MAGIQUEST]: "MagiQuest",
+ }
+ return mapping[protocol]
+}
+
+Command.TYPES = {
+ POWER: "power",
+ INPUT: "input",
+ ONE: "one",
+ TWO: "two",
+ THREE: "three",
+ FOUR: "four",
+ FIVE: "five",
+ SIX: "six",
+ SEVEN: "seven",
+ EIGHT: "eight",
+ NINE: "nine",
+ ZERO: "zero",
+ VOLUME_UP: "volume_up",
+ VOLUME_DOWN: "volume_down",
+ MUTE: "mute",
+ CHANNEL_UP: "channel_up",
+ CHANNEL_DOWN: "channel_down",
+ MENU: "menu",
+ HOME: "home",
+ SETTINGS: "settings",
+ OPTIONS: "options",
+ UP: "up",
+ DOWN: "down",
+ LEFT: "left",
+ RIGHT: "right",
+ ENTER: "enter",
+ INFO: "info",
+ RETURN: "return",
+ EXIT: "exit",
+ RED: "red",
+ GREEN: "green",
+ YELLOW: "yellow",
+ BLUE: "blue",
+ REWIND: "rewind",
+ PLAY: "play",
+ PAUSE: "pause",
+ STOP: "stop",
+ FORWARD: "forward",
+ OTHER: "other",
+}
+
+Command.getTypeString = (type) => {
+ let mapping = {
+ [Command.TYPES.POWER]: "Power",
+ [Command.TYPES.INPUT]: "Input",
+ [Command.TYPES.ONE]: "1",
+ [Command.TYPES.TWO]: "2",
+ [Command.TYPES.THREE]: "3",
+ [Command.TYPES.FOUR]: "4",
+ [Command.TYPES.FIVE]: "5",
+ [Command.TYPES.SIX]: "6",
+ [Command.TYPES.SEVEN]: "7",
+ [Command.TYPES.EIGHT]: "8",
+ [Command.TYPES.NINE]: "9",
+ [Command.TYPES.ZERO]: "0",
+ [Command.TYPES.VOLUME_UP]: "Volume Up",
+ [Command.TYPES.VOLUME_DOWN]: "Volume Down",
+ [Command.TYPES.MUTE]: "Mute",
+ [Command.TYPES.CHANNEL_UP]: "Channel Up",
+ [Command.TYPES.CHANNEL_DOWN]: "Channel Down",
+ [Command.TYPES.MENU]: "Menu",
+ [Command.TYPES.HOME]: "Home",
+ [Command.TYPES.SETTINGS]: "Settings",
+ [Command.TYPES.OPTIONS]: "Options",
+ [Command.TYPES.UP]: "Up",
+ [Command.TYPES.DOWN]: "Down",
+ [Command.TYPES.LEFT]: "Left",
+ [Command.TYPES.RIGHT]: "Right",
+ [Command.TYPES.ENTER]: "Enter",
+ [Command.TYPES.INFO]: "Info",
+ [Command.TYPES.RETURN]: "Return",
+ [Command.TYPES.EXIT]: "Exit",
+ [Command.TYPES.RED]: "Red",
+ [Command.TYPES.GREEN]: "Green",
+ [Command.TYPES.YELLOW]: "Yellow",
+ [Command.TYPES.BLUE]: "Blue",
+ [Command.TYPES.REWIND]: "Rewind",
+ [Command.TYPES.PLAY]: "Play",
+ [Command.TYPES.PAUSE]: "Pause",
+ [Command.TYPES.STOP]: "Stop",
+ [Command.TYPES.FORWARD]: "Forward",
+ [Command.TYPES.OTHER]: "Other",
+ }
+ return mapping[type]
+}
export default Command;
diff --git a/www/src/modals/create-command-modal.jsx b/www/src/modals/create-command-modal.jsx
index 71cad47..92162af 100644
--- a/www/src/modals/create-command-modal.jsx
+++ b/www/src/modals/create-command-modal.jsx
@@ -92,8 +92,10 @@ function CreateCommandModal(props) {
- {Object.keys(Command.Protocols).map((protocol) => (
-
+ {Object.values(Command.PROTOCOLS).map((protocol) => (
+
))}
@@ -139,9 +141,9 @@ function CreateCommandModal(props) {
- {Object.keys(Command.CommandTypes).map((commandType) => (
+ {Object.values(Command.TYPES).map((commandType) => (
))}
diff --git a/www/src/modals/import-commands-modal.jsx b/www/src/modals/import-commands-modal.jsx
index ce88198..071cc39 100644
--- a/www/src/modals/import-commands-modal.jsx
+++ b/www/src/modals/import-commands-modal.jsx
@@ -35,8 +35,14 @@ FieldTitles[COMMAND_TYPE_FIELD] = "Type";
FieldTitles[TITLE_FIELD] = "Title";
const CommandFieldsRequiringValueMapping = ["protocol", "commandType"];
-const commandTypeFuse = new Fuse(Object.values(Command.CommandTypes));
-const protocolsFuse = new Fuse(Object.values(Command.Protocols));
+const commandTypeFuse = new Fuse(
+ Object.values(Command.TYPES).map((type) => Command.getTypeString(type))
+);
+const protocolsFuse = new Fuse(
+ Object.values(Command.PROTOCOLS).map((protocol) =>
+ Command.getProtocolString(protocol)
+ )
+);
function ImportCommandsModal(props) {
const [csvString, setCsvString] = createSignal("");
@@ -246,7 +252,7 @@ function ImportCommandsModal(props) {
- {Object.keys(Command.Protocols).map(
+ {Object.values(Command.PROTOCOLS).map(
(protocol) => (
)
)}
@@ -272,7 +278,7 @@ function ImportCommandsModal(props) {
- {Object.keys(Command.CommandTypes).map(
+ {Object.values(Command.TYPES).map(
(commandType) => (
)
)}
@@ -318,8 +324,8 @@ function ImportCommandsModal(props) {
if (!valueMapping[PROTOCOL_FIELD][protocolValue]) {
let result = protocolsFuse.search(protocolValue).shift();
if (result) {
- let protocol = Object.keys(Command.Protocols).find(
- (protocol) => Command.Protocols[protocol] === result.item
+ let protocol = Object.values(Command.PROTOCOLS).find(
+ (protocol) => Command.getProtocolString(protocol) === result.item
);
valueMapping[PROTOCOL_FIELD][protocolValue] = protocol;
}
@@ -327,8 +333,9 @@ function ImportCommandsModal(props) {
if (!valueMapping[COMMAND_TYPE_FIELD][commandTypeValue]) {
let result = commandTypeFuse.search(commandTypeValue).shift();
if (result) {
- let commandType = Object.keys(Command.CommandTypes).find(
- (commandType) => Command.CommandTypes[commandType] === result.item
+ let commandType = Object.values(Command.TYPES).find(
+ (commandType) =>
+ Command.getTypeString(commandType) === result.item
);
valueMapping[COMMAND_TYPE_FIELD][commandTypeValue] = commandType;
}