ondras / my-mind

Online Mindmapping Software
https://my-mind.github.io
MIT License
3.31k stars 652 forks source link

The webdav address cannot be entered. #166

Open liyboy opened 1 year ago

liyboy commented 1 year ago

Mymind is very simple and easy to use, thanks for open source. But when I input the webdav address, the input address conflicts with the shortcut key, which makes it impossible to input. For example: s in https is the shortcut key for down, and there is no response when pressing the backspace key. Additional explanation: my browser is edge.

ondras commented 1 year ago

Hi @liyboy,

thanks for the bugreport. I am having issues trying to reproduce it, though: when typing the (webdav) URL, no shortuts are evaluated. In Edge: obrazek

Perhaps the issue manifests only under some more arcane conditions? This is the part of the source code responsible for not applying keyboard shortcuts when the UI is focused:

https://github.com/ondras/my-mind/blob/master/src/keyboard.ts#L9 https://github.com/ondras/my-mind/blob/master/src/ui/ui.ts#L22

You can try this to help debug the issue:

1) open devtools 2) focus the webdav input field 3) type document.activeElement into the devtools JS console - it should output the webdav url input field.

liyboy commented 1 year ago

Thanks. I'll try it.

erdemgazeloglu commented 5 months ago

Hi @liyboy,

thanks for the bugreport. I am having issues trying to reproduce it, though: when typing the (webdav) URL, no shortuts are evaluated. In Edge: obrazek

Perhaps the issue manifests only under some more arcane conditions? This is the part of the source code responsible for not applying keyboard shortcuts when the UI is focused:

https://github.com/ondras/my-mind/blob/master/src/keyboard.ts#L9 https://github.com/ondras/my-mind/blob/master/src/ui/ui.ts#L22

You can try this to help debug the issue:

1. open devtools

2. focus the webdav input field

3. type `document.activeElement` into the devtools JS console - it should output the webdav url input field.

i have the same issue and i'll type your js code in console this is the output:


<input class="url" type="text">
​accept: ""
​accessKey: ""
​accessKeyLabel: ""
​align: ""
​alt: "" 
​ariaAtomic: null
​ariaAutoComplete: null
​ariaBrailleLabel: null
​ariaBrailleRoleDescription: null
​ariaBusy: null
​ariaChecked: null
​ariaColCount: null
​ariaColIndex: null
​ariaColIndexText: null
​ariaColSpan: null
​ariaCurrent: null
​ariaDescription: null
​ariaDisabled: null
​ariaExpanded: null
​ariaHasPopup: null
​ariaHidden: null
​ariaInvalid: null
​ariaKeyShortcuts: null
​ariaLabel: null
​ariaLevel: null
​ariaLive: null
​ariaModal: null
​ariaMultiLine: null
​ariaMultiSelectable: null
​ariaOrientation: null
​ariaPlaceholder: null
​ariaPosInSet: null
​ariaPressed: null
​ariaReadOnly: null
​ariaRelevant: null
​ariaRequired: null
​ariaRoleDescription: null
​ariaRowCount: null
​ariaRowIndex: null
​ariaRowIndexText: null
​ariaRowSpan: null
​ariaSelected: null
​ariaSetSize: null
​ariaSort: null
​ariaValueMax: null
​ariaValueMin: null
​ariaValueNow: null
​ariaValueText: null
​assignedSlot: null
​attributes: NamedNodeMap [ type="text", class="url" ]
​autocapitalize: ""
​autocomplete: ""
​autofocus: false
​baseURI: "https://myserver.local/mymind/"
​checked: false
​childElementCount: 0
​childNodes: NodeList []
​children: HTMLCollection { length: 0 }
​classList: DOMTokenList [ "url" ]
​className: "url"
​clientHeight: 29
​clientLeft: 1
​clientTop: 1
​clientWidth: 166
​contentEditable: "inherit"
​currentCSSZoom: 1
​dataset: DOMStringMap(0)
​defaultChecked: false
​defaultValue: ""
​dir: ""
​dirName: ""
​disabled: false
​draggable: false
​enterKeyHint: ""
​files: null
​firstChild: null
​firstElementChild: null
​form: null
​formAction: "https://myserver.local/mymind/"
​formEnctype: ""
​formMethod: ""
​formNoValidate: false
​formTarget: ""
​height: 0
​hidden: false
​id: ""
​indeterminate: false
​inert: false
​innerHTML: ""
​innerText: ""
​inputMode: ""
​isConnected: true
​isContentEditable: false
​labels: NodeList [ label
]
​lang: ""
​lastChild: null
​lastElementChild: null
​list: null
​localName: "input"
​max: ""
​maxLength: -1
​min: ""
​minLength: -1
​multiple: false
​name: ""
​namespaceURI: "http://www.w3.org/1999/xhtml"
​nextElementSibling: null
​nextSibling: null
​nodeName: "INPUT"
​nodeType: 1
​nodeValue: null
​nonce: ""
​offsetHeight: 30
​offsetLeft: 16
​offsetParent: <div id="io" class="pane">
​offsetTop: 191
​offsetWidth: 168
​onabort: null
​onanimationcancel: null
​onanimationend: null
​onanimationiteration: null
​onanimationstart: null
​onauxclick: null
​onbeforeinput: null
​onbeforetoggle: null
​onblur: null
​oncancel: null
​oncanplay: null
​oncanplaythrough: null
​onchange: null
​onclick: null
​onclose: null
​oncontextlost: null
​oncontextmenu: null
​oncontextrestored: null
​oncopy: null
​oncuechange: null
​oncut: null
​ondblclick: null
​ondrag: null
​ondragend: null
​ondragenter: null
​ondragexit: null
​ondragleave: null
​ondragover: null
​ondragstart: null
​ondrop: null
​ondurationchange: null
​onemptied: null
​onended: null
​onerror: null
​onfocus: null
​onformdata: null
​onfullscreenchange: null
​onfullscreenerror: null
​ongotpointercapture: null
​oninput: null
​oninvalid: null
​onkeydown: null
​onkeypress: null
​onkeyup: null
​onload: null
​onloadeddata: null
​onloadedmetadata: null
​onloadstart: null
​onlostpointercapture: null
​onmousedown: null
​onmousemove: null
​onmouseout: null
​onmouseover: null
​onmouseup: null
​onpaste: null
​onpause: null
​onplay: null
​onplaying: null
​onpointercancel: null
​onpointerdown: null
​onpointerenter: null
​onpointerleave: null
​onpointermove: null
​onpointerout: null
​onpointerover: null
​onpointerup: null
​onprogress: null
​onratechange: null
​onreset: null
​onresize: null
​onscroll: null
​onscrollend: null
​onsecuritypolicyviolation: null
​onseeked: null
​onseeking: null
​onselect: null
​onselectionchange: null
​onselectstart: null
​onslotchange: null
​onstalled: null
​onsubmit: null
​onsuspend: null
​ontimeupdate: null
​ontoggle: null
​ontransitioncancel: null
​ontransitionend: null
​ontransitionrun: null
​ontransitionstart: null
​onvolumechange: null
​onwaiting: null
​onwebkitanimationend: null
​onwebkitanimationiteration: null
​onwebkitanimationstart: null
​onwebkittransitionend: null
​onwheel: null
​outerHTML: '<input type="text" class="url">'
​outerText: ""
​ownerDocument: HTMLDocument https://myserver.local/mymind/
​parentElement: <label>​
arentNode: <label>​
part: DOMTokenList []
​pattern: ""
​placeholder: ""
​popover: null
​popoverTargetAction: ""
​popoverTargetElement: null
​prefix: null
​previousElementSibling: <span>​
previousSibling: #text "\n\t\t\t\t\t"
​preadOnly: false
​required: false
​role: null
​scrollHeight: 29
​scrollLeft: 0
​scrollLeftMax: 0
​scrollTop: 0
​scrollTopMax: 0
​scrollWidth: 166
​selectionDirection: "backward"
​selectionEnd: 7
​selectionStart: 0
​shadowRoot: null
​size: 20
​slot: ""
​spellcheck: false
​src: ""
​step: ""
​style: CSS2Properties(0)
​tabIndex: 0
​tagName: "INPUT"
​textContent: ""
​textLength: 7
​title: ""
​translate: true
​type: "text"
​useMap: ""
​validationMessage: ""
​validity: ValidityState { valueMissing: false, typeMismatch: false, patternMismatch: false, … }
​value: "http://"
​valueAsDate: null
​valueAsNumber: NaN
​webkitEntries: Array []
​webkitdirectory: false
​width: 0
​willValidate: true
​<prototype>: HTMLInputElementPrototype { stepUp: stepUp(), stepDown: stepDown(), checkValidity: checkValidity(), … }```
ondras commented 5 months ago

The output looks okay. I am afraid this will need someone with

1) the Edge browser where the issue manifests, 2) deep JS debugging skills in order to troubleshoot why the shortcut gets triggered, even though the input field is active