Daniel@0: "use strict"; Daniel@0: Daniel@0: App.addInitializer(function(options){ Daniel@0: var _this = this; Daniel@0: Daniel@0: /* ========================================================================= Daniel@0: * Global key shortcuts Daniel@0: */ Daniel@0: var $document = $(document); Daniel@0: Daniel@0: var aPopupIsOpen = function() { Daniel@0: return App.helpIsShowing(); Daniel@0: }; Daniel@0: var askToClosePopups = function() { Daniel@0: }; Daniel@0: Daniel@0: $document.bind("keydown", "esc", function(event) { Daniel@0: if (App.helpIsShowing()) { Daniel@0: App.hideHelp(); Daniel@0: } Daniel@0: }); Daniel@0: $document.bind("keydown", "h", function(event) { Daniel@0: if (App.helpIsShowing()) { Daniel@0: App.hideHelp(); Daniel@0: } else { Daniel@0: App.showHelp(); Daniel@0: } Daniel@0: }); Daniel@0: $document.bind("keydown", "f", function(event) { Daniel@0: if (aPopupIsOpen()) { Daniel@0: return false; Daniel@0: } Daniel@0: var state = App.context.get("state"); Daniel@0: state.set("musicRecordingsGridIsShown", !state.get("musicRecordingsGridIsShown")); Daniel@0: }); Daniel@0: Daniel@0: $document.bind("keydown", App.keyboardMappings.ctrl + "+z", function(event) { Daniel@0: if (aPopupIsOpen()) { Daniel@0: askToClosePopups(); Daniel@0: return false; Daniel@0: } Daniel@0: App.undo(); Daniel@0: }); Daniel@0: Daniel@0: $document.bind("keydown", App.keyboardMappings.ctrlShift + "+z", function(event) { Daniel@0: if (aPopupIsOpen()) { Daniel@0: askToClosePopups(); Daniel@0: return false; Daniel@0: } Daniel@0: App.redo(); Daniel@0: }); Daniel@0: Daniel@0: var moveConfig = function(dimension, offset) { Daniel@0: var state = App.context.get("state"); Daniel@0: var configGrid = state.get(state.get("musicRecordingsGridIsShown") ? "musicRecordingGrid" : "musicCollectionGrid"); Daniel@0: var configs = null; Daniel@0: if (dimension == "entity") { Daniel@0: configs = configGrid.get("entityConfigs"); Daniel@0: var selectedConfig = configGrid.getSelectedEntityConfig(); Daniel@0: if (selectedConfig) { Daniel@0: var configToInsertBefore; Daniel@0: if (offset == 1) { Daniel@0: configToInsertBefore = configGrid.getNextEntityNeighbour(selectedConfig); Daniel@0: if (configToInsertBefore) { Daniel@0: configToInsertBefore = configGrid.getNextEntityNeighbour(configToInsertBefore); Daniel@0: } Daniel@0: } else { Daniel@0: configToInsertBefore = configGrid.getPrevEntityNeighbour(selectedConfig); Daniel@0: if (!configToInsertBefore) { Daniel@0: return; Daniel@0: } Daniel@0: } Daniel@0: configGrid.relocateEntityConfig(selectedConfig, configToInsertBefore ? configToInsertBefore : null); Daniel@0: } Daniel@0: } else { Daniel@0: configs = configGrid.get("viewConfigs"); Daniel@0: var selectedConfig = configGrid.getSelectedViewConfig(); Daniel@0: if (selectedConfig) { Daniel@0: var configToInsertBefore; Daniel@0: if (offset == 1) { Daniel@0: configToInsertBefore = configGrid.getNextViewNeighbour(selectedConfig); Daniel@0: if (configToInsertBefore) { Daniel@0: configToInsertBefore = configGrid.getNextViewNeighbour(configToInsertBefore); Daniel@0: } Daniel@0: } else { Daniel@0: configToInsertBefore = configGrid.getPrevViewNeighbour(selectedConfig); Daniel@0: if (!configToInsertBefore) { Daniel@0: return; Daniel@0: } Daniel@0: } Daniel@0: configGrid.relocateViewConfig(selectedConfig, configToInsertBefore ? configToInsertBefore : null); Daniel@0: } Daniel@0: } Daniel@0: }; Daniel@0: Daniel@0: $document.bind("keydown", "alt+left", function(event) { Daniel@0: if (aPopupIsOpen()) { Daniel@0: askToClosePopups(); Daniel@0: return false; Daniel@0: } Daniel@0: moveConfig("entity", -1); Daniel@0: event.preventDefault(); Daniel@0: return false; Daniel@0: }); Daniel@0: Daniel@0: $document.bind("keydown", "alt+right", function(event) { Daniel@0: if (aPopupIsOpen()) { Daniel@0: askToClosePopups(); Daniel@0: return false; Daniel@0: } Daniel@0: moveConfig("entity", 1); Daniel@0: event.preventDefault(); Daniel@0: return false; Daniel@0: }); Daniel@0: Daniel@0: $document.bind("keydown", "alt+up", function(event) { Daniel@0: if (aPopupIsOpen()) { Daniel@0: askToClosePopups(); Daniel@0: return false; Daniel@0: } Daniel@0: moveConfig("view", -1); Daniel@0: event.preventDefault(); Daniel@0: return false; Daniel@0: }); Daniel@0: $document.bind("keydown", "alt+down", function(event) { Daniel@0: if (aPopupIsOpen()) { Daniel@0: askToClosePopups(); Daniel@0: return false; Daniel@0: } Daniel@0: moveConfig("view", 1); Daniel@0: event.preventDefault(); Daniel@0: return false; Daniel@0: }); Daniel@0: Daniel@0: });