about summary refs log tree commit diff stats
path: root/wiki/lib/scripts/hotkeys.js
diff options
context:
space:
mode:
Diffstat (limited to 'wiki/lib/scripts/hotkeys.js')
-rw-r--r--wiki/lib/scripts/hotkeys.js302
1 files changed, 0 insertions, 302 deletions
diff --git a/wiki/lib/scripts/hotkeys.js b/wiki/lib/scripts/hotkeys.js
deleted file mode 100644
index 76a277a..0000000
--- a/wiki/lib/scripts/hotkeys.js
+++ /dev/null
@@ -1,302 +0,0 @@
-/**
- * Some of these scripts were taken from TinyMCE (http://tinymce.moxiecode.com/) and were modified for DokuWiki
- *
- * Class handles accesskeys using javascript and also provides ability
- * to register and use other hotkeys as well.
- *
- * @author Marek Sacha <sachamar@fel.cvut.cz>
- */
-function Hotkeys() {
-
-    this.shortcuts = new Array();
-
-    /**
-     * Set modifier keys, for instance:
-     *  this.modifier = 'ctrl';
-     *  this.modifier = 'ctrl+shift';
-     *  this.modifier = 'ctrl+alt+shift';
-     *  this.modifier = 'alt';
-     *  this.modifier = 'alt+shift';
-     *
-     *  overwritten in intitialize (see below)
-     */
-    this.modifier = 'ctrl+alt';
-
-    /**
-     * Initialization
-     *
-     * This function looks up all the accesskeys used in the current page
-     * (at anchor elements and button elements [type="submit"]) and registers
-     * appropriate shortcuts.
-     *
-     * Secondly, initialization registers listeners on document to catch all
-     * keyboard events.
-     *
-     * @author Marek Sacha <sachamar@fel.cvut.cz>
-     */
-    this.initialize = function() {
-        var t = this;
-
-        //switch modifier key based on OS FS#1958
-        if(is_macos){
-            t.modifier = 'ctrl+alt';
-        }else{
-            t.modifier = 'alt';
-        }
-
-        /**
-         * Lookup all anchors with accesskey and register event - go to anchor
-         * target.
-         */
-        var anchors = document.getElementsByTagName("a");
-        t.each(anchors, function(a) {
-            if (a.accessKey != "") {
-                t.addShortcut(t.modifier + '+' + a.accessKey, function() {
-                    location.href = a.href;
-                });
-                a.accessKey = '';
-            }
-        });
-
-        /**
-         * Lookup all button [type="submit"] with accesskey and register event -
-         * perform "click" on a button.
-         */
-        var inputs = document.getElementsByTagName("button");
-        t.each(inputs, function(i) {
-            if (i.type == "submit" && i.accessKey != "") {
-                t.addShortcut(t.modifier + '+' + i.accessKey, function() {
-                    i.click();
-                });
-                i.accessKey = '';
-            }
-        });
-
-        /**
-         * Lookup all buttons with accesskey and register event -
-         * perform "click" on a button.
-         */
-        var buttons = document.getElementsByTagName("button");
-        t.each(buttons, function(b) {
-            if (b.accessKey != "") {
-                t.addShortcut(t.modifier + '+' + b.accessKey, function() {
-                    b.click();
-                });
-                b.accessKey = '';
-            }
-        });
-
-        /**
-         * Register listeners on document to catch keyboard events.
-         */
-
-        addEvent(document,'keyup',function (e) {
-            return t.onkeyup.call(t,e);
-        });
-
-        addEvent(document,'keypress',function (e) {
-            return t.onkeypress.call(t,e);
-        });
-
-        addEvent(document,'keydown',function (e) {
-            return t.onkeydown.call(t,e);
-        });
-    };
-
-    /**
-     * Keyup processing function
-     * Function returns true if keyboard event has registered handler, and
-     * executes the handler function.
-     *
-     * @param e KeyboardEvent
-     * @author Marek Sacha <sachamar@fel.cvut.cz>
-     * @return b boolean
-     */
-    this.onkeyup = function(e) {
-        var t = this;
-        var v = t.findShortcut(e);
-        if (v != null && v != false) {
-            v.func.call(t);
-            return false;
-        }
-        return true;
-    };
-
-    /**
-     * Keydown processing function
-     * Function returns true if keyboard event has registered handler
-     *
-     * @param e KeyboardEvent
-     * @author Marek Sacha <sachamar@fel.cvut.cz>
-     * @return b boolean
-     */
-    this.onkeydown = function(e) {
-        var t = this;
-        var v = t.findShortcut(e);
-        if (v != null && v != false) {
-            return false;
-        }
-        return true;
-    };
-
-    /**
-     * Keypress processing function
-     * Function returns true if keyboard event has registered handler
-     *
-     * @param e KeyboardEvent
-     * @author Marek Sacha <sachamar@fel.cvut.cz>
-     * @return b
-     */
-    this.onkeypress = function(e) {
-        var t = this;
-        var v = t.findShortcut(e);
-        if (v != null && v != false) {
-            return false;
-        }
-        return true;
-    };
-
-    /**
-     * Register new shortcut
-     *
-     * This function registers new shortcuts, each shortcut is defined by its
-     * modifier keys and a key (with + as delimiter). If shortcut is pressed
-     * cmd_function is performed.
-     *
-     * For example:
-     *  pa = "ctrl+alt+p";
-     *  pa = "shift+alt+s";
-     *
-     * Full example of method usage:
-     *  hotkeys.addShortcut('ctrl+s',function() {
-     *      document.getElementByID('form_1').submit();
-     *  });
-     *
-     * @param pa String description of the shortcut (ctrl+a, ctrl+shift+p, .. )
-     * @param cmd_func Function to be called if shortcut is pressed
-     * @author Marek Sacha <sachamar@fel.cvut.cz>
-     */
-    this.addShortcut = function(pa, cmd_func) {
-        var t = this;
-
-        var o = {
-            func : cmd_func,
-            alt : false,
-            ctrl : false,
-            shift : false
-        };
-
-        t.each(t.explode(pa, '+'), function(v) {
-            switch (v) {
-                case 'alt':
-                case 'ctrl':
-                case 'shift':
-                    o[v] = true;
-                    break;
-
-                default:
-                    o.charCode = v.charCodeAt(0);
-                    o.keyCode = v.toUpperCase().charCodeAt(0);
-            }
-        });
-
-        t.shortcuts.push((o.ctrl ? 'ctrl' : '') + ',' + (o.alt ? 'alt' : '') + ',' + (o.shift ? 'shift' : '') + ',' + o.keyCode,  o);
-
-        return true;
-    };
-
-    /**
-     * @property isMac
-     */
-    this.isMac = is_macos;
-
-    /**
-     * Apply function cb on each element of o in the namespace of s
-     * @param o Array of objects
-     * @param cb Function to be called on each object
-     * @param s Namespace to be used during call of cb (default namespace is o)
-     * @author Marek Sacha <sachamar@fel.cvut.cz>
-     */
-    this.each = function(o, cb, s) {
-        var n, l;
-
-        if (!o)
-            return 0;
-
-        s = s || o;
-
-        if (o.length !== undefined) {
-            // Indexed arrays, needed for Safari
-            for (n=0, l = o.length; n < l; n++) {
-                if (cb.call(s, o[n], n, o) === false)
-                    return 0;
-            }
-        } else {
-            // Hashtables
-            for (n in o) {
-                if (o.hasOwnProperty(n)) {
-                    if (cb.call(s, o[n], n, o) === false)
-                        return 0;
-                }
-            }
-        }
-
-        return 1;
-    };
-
-    /**
-     * Explode string according to delimiter
-     * @param s String
-     * @param d Delimiter (default ',')
-     * @author Marek Sacha <sachamar@fel.cvut.cz>
-     * @return a Array of tokens
-     */
-    this.explode = function(s, d) {
-        return  s.split(d || ',');
-    };
-
-    /**
-     * Find if the shortcut was registered
-     *
-     * @param e KeyboardEvent
-     * @author Marek Sacha <sachamar@fel.cvut.cz>
-     * @return v Shortcut structure or null if not found
-     */
-    this.findShortcut = function (e) {
-        var t = this;
-        var v = null;
-
-        /* No modifier key used - shortcut does not exist */
-        if (!e.altKey && !e.ctrlKey && !e.metaKey) {
-            return v;
-        }
-
-        t.each(t.shortcuts, function(o) {
-            if (o.ctrl != e.ctrlKey)
-                return;
-
-            if (o.alt != e.altKey)
-                return;
-
-            if (o.shift != e.shiftKey)
-                return;
-
-            if (e.keyCode == o.keyCode || (e.charCode && e.charCode == o.charCode)) {
-                v = o;
-                return;
-            }
-        });
-        return v;
-    };
-}
-
-/**
- * Init function for hotkeys. Called from js.php, to ensure hotkyes are initialized after toolbar.
- * Call of addInitEvent(initializeHotkeys) is unnecessary now.
- *
- * @author Marek Sacha <sachamar@fel.cvut.cz>
- */
-function initializeHotkeys() {
-    var hotkeys = new Hotkeys();
-    hotkeys.initialize();
-}