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; }