mirror of
https://github.com/Jermolene/TiddlyWiki5
synced 2025-08-06 22:04:19 +00:00
Adding optional tabindex attr to simple, framed and cm engines (#3756)
* add optional tabindex attribute to factory.js * add changedAttributes.tabindex to refresh mechanic * add optional tabindex attribute to edit widget * remove some extra whitespace * remove some trailing whitespace * add optional tabindex attribute to simple engine * add optional tabindex attribute to framed engine * add optional tabindex attribute to cm engine
This commit is contained in:
parent
9d7d3fefa0
commit
f97d18bb6e
@ -70,6 +70,9 @@ function FramedEngine(options) {
|
|||||||
if(this.widget.editRows) {
|
if(this.widget.editRows) {
|
||||||
this.domNode.setAttribute("rows",this.widget.editRows);
|
this.domNode.setAttribute("rows",this.widget.editRows);
|
||||||
}
|
}
|
||||||
|
if(this.widget.editTabIndex) {
|
||||||
|
this.iframeNode.setAttribute("tabindex",this.widget.editTabIndex);
|
||||||
|
}
|
||||||
// Copy the styles from the dummy textarea
|
// Copy the styles from the dummy textarea
|
||||||
this.copyStyles();
|
this.copyStyles();
|
||||||
// Add event listeners
|
// Add event listeners
|
||||||
|
@ -49,6 +49,9 @@ function SimpleEngine(options) {
|
|||||||
if(this.widget.editClass) {
|
if(this.widget.editClass) {
|
||||||
this.domNode.className = this.widget.editClass;
|
this.domNode.className = this.widget.editClass;
|
||||||
}
|
}
|
||||||
|
if(this.widget.editTabIndex) {
|
||||||
|
this.domNode.setAttribute("tabindex",this.widget.editTabIndex);
|
||||||
|
}
|
||||||
// Add an input event handler
|
// Add an input event handler
|
||||||
$tw.utils.addEventListeners(this.domNode,[
|
$tw.utils.addEventListeners(this.domNode,[
|
||||||
{name: "focus", handlerObject: this, handlerMethod: "handleFocusEvent"},
|
{name: "focus", handlerObject: this, handlerMethod: "handleFocusEvent"},
|
||||||
|
@ -176,6 +176,7 @@ function editTextWidgetFactory(toolbarEngine,nonToolbarEngine) {
|
|||||||
this.editMinHeight = this.getAttribute("minHeight",DEFAULT_MIN_TEXT_AREA_HEIGHT);
|
this.editMinHeight = this.getAttribute("minHeight",DEFAULT_MIN_TEXT_AREA_HEIGHT);
|
||||||
this.editFocusPopup = this.getAttribute("focusPopup");
|
this.editFocusPopup = this.getAttribute("focusPopup");
|
||||||
this.editFocus = this.getAttribute("focus");
|
this.editFocus = this.getAttribute("focus");
|
||||||
|
this.editTabIndex = this.getAttribute("tabindex");
|
||||||
// Get the default editor element tag and type
|
// Get the default editor element tag and type
|
||||||
var tag,type;
|
var tag,type;
|
||||||
if(this.editField === "text") {
|
if(this.editField === "text") {
|
||||||
@ -207,7 +208,7 @@ function editTextWidgetFactory(toolbarEngine,nonToolbarEngine) {
|
|||||||
EditTextWidget.prototype.refresh = function(changedTiddlers) {
|
EditTextWidget.prototype.refresh = function(changedTiddlers) {
|
||||||
var changedAttributes = this.computeAttributes();
|
var changedAttributes = this.computeAttributes();
|
||||||
// Completely rerender if any of our attributes have changed
|
// Completely rerender if any of our attributes have changed
|
||||||
if(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes["default"] || changedAttributes["class"] || changedAttributes.placeholder || changedAttributes.size || changedAttributes.autoHeight || changedAttributes.minHeight || changedAttributes.focusPopup || changedAttributes.rows || changedTiddlers[HEIGHT_MODE_TITLE] || changedTiddlers[ENABLE_TOOLBAR_TITLE]) {
|
if(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes["default"] || changedAttributes["class"] || changedAttributes.placeholder || changedAttributes.size || changedAttributes.autoHeight || changedAttributes.minHeight || changedAttributes.focusPopup || changedAttributes.rows || changedAttributes.tabindex || changedTiddlers[HEIGHT_MODE_TITLE] || changedTiddlers[ENABLE_TOOLBAR_TITLE]) {
|
||||||
this.refreshSelf();
|
this.refreshSelf();
|
||||||
return true;
|
return true;
|
||||||
} else if(changedTiddlers[this.editTitle]) {
|
} else if(changedTiddlers[this.editTitle]) {
|
||||||
@ -216,7 +217,7 @@ function editTextWidgetFactory(toolbarEngine,nonToolbarEngine) {
|
|||||||
}
|
}
|
||||||
this.engine.fixHeight();
|
this.engine.fixHeight();
|
||||||
if(this.editShowToolbar) {
|
if(this.editShowToolbar) {
|
||||||
return this.refreshChildren(changedTiddlers);
|
return this.refreshChildren(changedTiddlers);
|
||||||
} else {
|
} else {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -266,7 +267,7 @@ function editTextWidgetFactory(toolbarEngine,nonToolbarEngine) {
|
|||||||
el.dispatchEvent(clickEvent);
|
el.dispatchEvent(clickEvent);
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
event.stopPropagation();
|
event.stopPropagation();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -46,6 +46,7 @@ EditWidget.prototype.execute = function() {
|
|||||||
this.editIndex = this.getAttribute("index");
|
this.editIndex = this.getAttribute("index");
|
||||||
this.editClass = this.getAttribute("class");
|
this.editClass = this.getAttribute("class");
|
||||||
this.editPlaceholder = this.getAttribute("placeholder");
|
this.editPlaceholder = this.getAttribute("placeholder");
|
||||||
|
this.editTabIndex = this.getAttribute("tabindex");
|
||||||
// Choose the appropriate edit widget
|
// Choose the appropriate edit widget
|
||||||
this.editorType = this.getEditorType();
|
this.editorType = this.getEditorType();
|
||||||
// Make the child widgets
|
// Make the child widgets
|
||||||
@ -56,7 +57,8 @@ EditWidget.prototype.execute = function() {
|
|||||||
field: {type: "string", value: this.editField},
|
field: {type: "string", value: this.editField},
|
||||||
index: {type: "string", value: this.editIndex},
|
index: {type: "string", value: this.editIndex},
|
||||||
"class": {type: "string", value: this.editClass},
|
"class": {type: "string", value: this.editClass},
|
||||||
"placeholder": {type: "string", value: this.editPlaceholder}
|
"placeholder": {type: "string", value: this.editPlaceholder},
|
||||||
|
"tabindex": {type: "string", value: this.editTabIndex}
|
||||||
},
|
},
|
||||||
children: this.parseTreeNode.children
|
children: this.parseTreeNode.children
|
||||||
}]);
|
}]);
|
||||||
@ -90,11 +92,11 @@ Selectively refreshes the widget if needed. Returns true if the widget or any of
|
|||||||
EditWidget.prototype.refresh = function(changedTiddlers) {
|
EditWidget.prototype.refresh = function(changedTiddlers) {
|
||||||
var changedAttributes = this.computeAttributes();
|
var changedAttributes = this.computeAttributes();
|
||||||
// Refresh if an attribute has changed, or the type associated with the target tiddler has changed
|
// Refresh if an attribute has changed, or the type associated with the target tiddler has changed
|
||||||
if(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || (changedTiddlers[this.editTitle] && this.getEditorType() !== this.editorType)) {
|
if(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes.tabindex || (changedTiddlers[this.editTitle] && this.getEditorType() !== this.editorType)) {
|
||||||
this.refreshSelf();
|
this.refreshSelf();
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
return this.refreshChildren(changedTiddlers);
|
return this.refreshChildren(changedTiddlers);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -106,6 +106,9 @@ function CodeMirrorEngine(options) {
|
|||||||
|
|
||||||
config.mode = options.type;
|
config.mode = options.type;
|
||||||
config.value = options.value;
|
config.value = options.value;
|
||||||
|
if(this.widget.editTabIndex) {
|
||||||
|
config["tabindex"] = this.widget.editTabIndex;
|
||||||
|
}
|
||||||
// Create the CodeMirror instance
|
// Create the CodeMirror instance
|
||||||
this.cm = window.CodeMirror(function(cmDomNode) {
|
this.cm = window.CodeMirror(function(cmDomNode) {
|
||||||
// Note that this is a synchronous callback that is called before the constructor returns
|
// Note that this is a synchronous callback that is called before the constructor returns
|
||||||
|
Loading…
x
Reference in New Issue
Block a user