OroCRM Hotkeys Extension

Notwithstanding the becoming age of touch devices, pointers like mouse and touch pads are still commonly used in desktop and laptop computers. Even more, the users who used to work with computers some time ago or users who want to increase their productivity use different types of shortcuts or gestures including keyboard hot keys. And it makes sense, just try to imagine your life without ctrl+c (cmd+c), ctrl+v(cmd+v) or ctrl+z(cmd+z). Not only desktop applications provide the ability to use keyboard shortcuts. If you have ever used Atlassian Jira you should know how fast and handy you can deal with different operations using hotkeys. That’s why we decided to bring the similar ability to OroCRM.

We have developed an extension for this purpose which is quite easy to install. You can find it on Github https://github.com/Atwix/oro-hotkeys

To install the extension you need to put the repository contents in src/Atwix/Bundle/HotkeysBundle/ and clean your cache using the following commands in your command line interface:

if it’s a production environment:

php app/console cache:clear -e prod

if it’s a development environment:

php app/console cache:clear -e dev

Now you should be able to use a single key pressing for making different actions. Currently, the following keys and actions are implemented:

  • ‘s’ – Open the search dialog.
  • ‘c’ – Open the shortcuts dialog.
  • ‘r’ – Return to the home page.
  • ‘f’ – Open the favorites tab.
  • ‘h’ – Open the history tab.
  • ‘m’ – Open the most viewed tab.
  • ‘p’ – Open the pinbar tab.

If you are developer you can add your own keys and actions by passing parameters to the hotkeysHandler() object. Just override src/Atwix/Bundle/HotkeysBundle/Resources/views/Js/hotkeys.js.twig and pass your own settings to the object.

Example, open user menu by pressing ‘u’ button:

{% if true == isDesktopVersion() and true == oro_config_value('atwix_hotkeys.hotkeys_enabled') %}
<script type="text/javascript">
    require(['jquery', 'atwixhotkeys/js/hotkeys'], function($) {
        $(function() {
            var customKeys = {
                usermenu: ['85', '.user-menu .dropdown-toggle', 'click']
            }
            var oroHotkeys = new hotkeysHandler(customKeys);
        });
    });
</script>
{% endif %}

We hope that this extension will help to increase your productivity while working with OroCRM. We plan to expand the extension’s features in the future. Do not hesitate to leave your feedback and ideas in the comments bellow. Thanks for reading us.