Commit b3ac3249 authored by Alexander.Trofimov's avatar Alexander.Trofimov Committed by Alexander.Trofimov

Input теперь тоже на javascript (вместо jquery)

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@53381 954022d7-b5bf-4e40-9824-e11837661b57
parent c3709515
...@@ -26,6 +26,7 @@ var ASC_DOCS_API_USE_EMBEDDED_FONTS = "@@ASC_DOCS_API_USE_EMBEDDED_FONTS"; ...@@ -26,6 +26,7 @@ var ASC_DOCS_API_USE_EMBEDDED_FONTS = "@@ASC_DOCS_API_USE_EMBEDDED_FONTS";
this.HtmlElementName = name; this.HtmlElementName = name;
this.topLineEditorName = inputName; this.topLineEditorName = inputName;
this.HtmlElement = null; this.HtmlElement = null;
this.topLineEditorElement = null;
if ("function" === typeof(eventsController)) { if ("function" === typeof(eventsController)) {
var prot = eventsController.prototype; var prot = eventsController.prototype;
...@@ -162,6 +163,7 @@ var ASC_DOCS_API_USE_EMBEDDED_FONTS = "@@ASC_DOCS_API_USE_EMBEDDED_FONTS"; ...@@ -162,6 +163,7 @@ var ASC_DOCS_API_USE_EMBEDDED_FONTS = "@@ASC_DOCS_API_USE_EMBEDDED_FONTS";
_init: function() { _init: function() {
var t = this; var t = this;
this.HtmlElement = document.getElementById(this.HtmlElementName); this.HtmlElement = document.getElementById(this.HtmlElementName);
this.topLineEditorElement = document.getElementById(this.topLineEditorName);
// init drag&drop // init drag&drop
if ("undefined" != typeof(FileReader) && "undefined" != typeof(FormData) && null != this.HtmlElement) { if ("undefined" != typeof(FileReader) && "undefined" != typeof(FormData) && null != this.HtmlElement) {
this.HtmlElement["ondragover"] = function (e) {t._onDragOverImage(e);}; this.HtmlElement["ondragover"] = function (e) {t._onDragOverImage(e);};
...@@ -1732,7 +1734,7 @@ var ASC_DOCS_API_USE_EMBEDDED_FONTS = "@@ASC_DOCS_API_USE_EMBEDDED_FONTS"; ...@@ -1732,7 +1734,7 @@ var ASC_DOCS_API_USE_EMBEDDED_FONTS = "@@ASC_DOCS_API_USE_EMBEDDED_FONTS";
this.controller, this.controller,
this.handlers, this.handlers,
this.HtmlElement, this.HtmlElement,
$("#" + this.topLineEditorName), this.topLineEditorElement,
this, this,
this.collaborativeEditing, this.collaborativeEditing,
this.fontRenderingMode, this.fontRenderingMode,
......
...@@ -204,7 +204,7 @@ ...@@ -204,7 +204,7 @@
.on("mouseleave." + namespace, function () {return t._onMouseLeave.apply(t, arguments);}) .on("mouseleave." + namespace, function () {return t._onMouseLeave.apply(t, arguments);})
.on("dblclick." + namespace, function () {return t._onMouseDblClick.apply(t, arguments);}); .on("dblclick." + namespace, function () {return t._onMouseDblClick.apply(t, arguments);});
t.input $(t.input)
.off("." + namespace) .off("." + namespace)
.on("focus." + namespace, function () {return t.isOpened ? t._topLineGotFocus.apply(t, arguments) : true;}) .on("focus." + namespace, function () {return t.isOpened ? t._topLineGotFocus.apply(t, arguments) : true;})
.on("mousedown." + namespace, function () {return t.isOpened ? (t.callTopLineMouseup = true, true) : true;}) .on("mousedown." + namespace, function () {return t.isOpened ? (t.callTopLineMouseup = true, true) : true;})
...@@ -212,16 +212,15 @@ ...@@ -212,16 +212,15 @@
.on("input." + namespace, function () {return t._onInputTextArea.apply(t, arguments);}); .on("input." + namespace, function () {return t._onInputTextArea.apply(t, arguments);});
// check input, it may have zero len, for mobile version // check input, it may have zero len, for mobile version
if(t.input[0]) if (t.input) {
{
// Не поддерживаем drop на верхнюю строку // Не поддерживаем drop на верхнюю строку
if (document.addEventListener) { if (document.addEventListener) {
t.input[0].addEventListener("drop", function (e) { t.input.addEventListener("drop", function (e) {
e.preventDefault(); e.preventDefault();
return false; return false;
}, false); }, false);
} else { } else {
t.input[0].attachEvent("ondrop", function (e) { t.input.attachEvent("ondrop", function (e) {
e.preventDefault(); e.preventDefault();
return false; return false;
}); });
...@@ -231,7 +230,7 @@ ...@@ -231,7 +230,7 @@
destroy: function() { destroy: function() {
$(window).off("." + namespace); $(window).off("." + namespace);
this.input.off("." + namespace); $(this.input).off("." + namespace);
}, },
/** /**
...@@ -259,7 +258,7 @@ ...@@ -259,7 +258,7 @@
.on("mouseup." + namespace, function () {return t._onWindowMouseUp.apply(t, arguments);}) .on("mouseup." + namespace, function () {return t._onWindowMouseUp.apply(t, arguments);})
.on("mousemove." + namespace, function () {return t._onWindowMouseMove.apply(t, arguments);}); .on("mousemove." + namespace, function () {return t._onWindowMouseMove.apply(t, arguments);});
t._setOptions(options); t._setOptions(options);
t.isTopLineActive = t.input.hasClass("focused"); t.isTopLineActive = true === t.input.isFocused;
t._draw(); t._draw();
if (!(options.cursorPos >= 0)) { if (!(options.cursorPos >= 0)) {
if (options.isClearCell) if (options.isClearCell)
...@@ -291,7 +290,7 @@ ...@@ -291,7 +290,7 @@
$(window).off("." + namespace); $(window).off("." + namespace);
t.input.blur(); t.input.blur();
t.isTopLineActive = false; t.isTopLineActive = false;
t.input.removeClass("focused"); t.input.isFocused = false;
t._hideCursor(); t._hideCursor();
// hide // hide
t.canvasOuterStyle.display = "none"; t.canvasOuterStyle.display = "none";
...@@ -835,7 +834,7 @@ ...@@ -835,7 +834,7 @@
t._cleanSelection(); t._cleanSelection();
t._adjustCanvas(); t._adjustCanvas();
t._renderText(); t._renderText();
t.input.val( t._getFragmentsText(opt.fragments) ); t.input.value = t._getFragmentsText(opt.fragments);
t._updateCursorPosition(); t._updateCursorPosition();
t._showCursor(); t._showCursor();
}, },
...@@ -890,7 +889,7 @@ ...@@ -890,7 +889,7 @@
var funcPos, funcName, match; var funcPos, funcName, match;
if (!t.isTopLineActive || !t.skipTLUpdate || t.undoMode) { if (!t.isTopLineActive || !t.skipTLUpdate || t.undoMode) {
t.input.val(s); t.input.value = s;
} }
if (isFormula) { if (isFormula) {
...@@ -1048,10 +1047,7 @@ ...@@ -1048,10 +1047,7 @@
window.clearInterval(t.cursorTID); window.clearInterval(t.cursorTID);
t.cursorStyle.display = "block"; t.cursorStyle.display = "block";
t.cursorTID = window.setInterval(function () { t.cursorTID = window.setInterval(function () {
if ("block" === t.cursorStyle.display) t.cursorStyle.display = ("none" === t.cursorStyle.display) ? "block" : "none";
t.cursorStyle.display = "none";
else
t.cursorStyle.display = "block";
}, t.settings.blinkInterval); }, t.settings.blinkInterval);
}, },
...@@ -1097,7 +1093,7 @@ ...@@ -1097,7 +1093,7 @@
t.cursorStyle.top = curTop + "px"; t.cursorStyle.top = curTop + "px";
t.cursorStyle.height = curHeight + "px"; t.cursorStyle.height = curHeight + "px";
if (cur) {t.input.scrollTop(t.input.height() * cur.lineIndex);} if (cur) {t.input.scrollTop = t.input.clientHeight * cur.lineIndex;}
if (t.isTopLineActive && !t.skipTLUpdate) {t._updateTopLineCurPos();} if (t.isTopLineActive && !t.skipTLUpdate) {t._updateTopLineCurPos();}
}, },
...@@ -1152,13 +1148,13 @@ ...@@ -1152,13 +1148,13 @@
var isSelected = t.selectionBegin !== t.selectionEnd; var isSelected = t.selectionBegin !== t.selectionEnd;
var b = isSelected ? t.selectionBegin : t.cursorPos; var b = isSelected ? t.selectionBegin : t.cursorPos;
var e = isSelected ? t.selectionEnd : t.cursorPos; var e = isSelected ? t.selectionEnd : t.cursorPos;
if (t.input[0].setSelectionRange) {t.input[0].setSelectionRange(Math.min(b, e), Math.max(b, e));} if (t.input.setSelectionRange) {t.input.setSelectionRange(Math.min(b, e), Math.max(b, e));}
}, },
_topLineGotFocus: function () { _topLineGotFocus: function () {
var t = this; var t = this;
t.isTopLineActive = true; t.isTopLineActive = true;
t.input.addClass("focused"); t.input.isFocused = true;
t.setFocus(true); t.setFocus(true);
t._hideCursor(); t._hideCursor();
t._updateTopLineCurPos(); t._updateTopLineCurPos();
...@@ -1171,8 +1167,8 @@ ...@@ -1171,8 +1167,8 @@
// при такой комбинации ctrl+a, click, ctrl+a, click не обновляется selectionStart // при такой комбинации ctrl+a, click, ctrl+a, click не обновляется selectionStart
// поэтому выполняем обработку после обработчика системы // поэтому выполняем обработку после обработчика системы
setTimeout(function () { setTimeout(function () {
var b = t.input[0].selectionStart; var b = t.input.selectionStart;
var e = t.input[0].selectionEnd; var e = t.input.selectionEnd;
if (typeof b !== "undefined") { if (typeof b !== "undefined") {
if (t.cursorPos !== b) {t._moveCursor(kPosition, b);} if (t.cursorPos !== b) {t._moveCursor(kPosition, b);}
if (b !== e) {t._selectChars(kPosition, e);} if (b !== e) {t._selectChars(kPosition, e);}
...@@ -1183,7 +1179,7 @@ ...@@ -1183,7 +1179,7 @@
_syncEditors: function () { _syncEditors: function () {
var t = this; var t = this;
var s1 = t._getFragmentsText(t.options.fragments); var s1 = t._getFragmentsText(t.options.fragments);
var s2 = t.input.val(); var s2 = t.input.value;
var l = Math.min(s1.length, s2.length); var l = Math.min(s1.length, s2.length);
var i1 = 0, i2 = 0; var i1 = 0, i2 = 0;
...@@ -1611,7 +1607,7 @@ ...@@ -1611,7 +1607,7 @@
t.skipTLUpdate = false; t.skipTLUpdate = false;
// определение ввода иероглифов // определение ввода иероглифов
if (t.isTopLineActive && t._getFragmentsLength(t.options.fragments) !== t.input.val().length) { if (t.isTopLineActive && t._getFragmentsLength(t.options.fragments) !== t.input.value.length) {
hieroglyph = true; hieroglyph = true;
} }
...@@ -1794,7 +1790,7 @@ ...@@ -1794,7 +1790,7 @@
if (t.isTopLineActive) { if (t.isTopLineActive) {
// чтобы поставить выполнение в очередь после вставки из клипборда используется двойной setTimeout // чтобы поставить выполнение в очередь после вставки из клипборда используется двойной setTimeout
setTimeout( setTimeout(
function(){setTimeout(function(){t._updateTopLineCurPos(); t.input[0].focus();}, 0);}, function(){setTimeout(function(){t._updateTopLineCurPos(); t.input.focus();}, 0);},
0); 0);
} }
switch (event.which) { switch (event.which) {
...@@ -1847,7 +1843,7 @@ ...@@ -1847,7 +1843,7 @@
if (!t.hasFocus) {t.setFocus(true);} if (!t.hasFocus) {t.setFocus(true);}
// определение ввода иероглифов // определение ввода иероглифов
if (t.isTopLineActive && t._getFragmentsLength(t.options.fragments) !== t.input.val().length) { if (t.isTopLineActive && t._getFragmentsLength(t.options.fragments) !== t.input.value.length) {
t._syncEditors(); t._syncEditors();
} }
...@@ -1889,7 +1885,7 @@ ...@@ -1889,7 +1885,7 @@
this.setFocus(true); this.setFocus(true);
t.isTopLineActive = false; t.isTopLineActive = false;
t.input.removeClass("focused"); t.input.isFocused = false;
t._showCursor(); t._showCursor();
if (event.which === 1) { if (event.which === 1) {
...@@ -1947,7 +1943,7 @@ ...@@ -1947,7 +1943,7 @@
if (this.isUpdateValue) { if (this.isUpdateValue) {
// Для языков с иероглифами не приходят эвенты с клавиатуры, поэтому обработаем здесь // Для языков с иероглифами не приходят эвенты с клавиатуры, поэтому обработаем здесь
this.skipTLUpdate = true; this.skipTLUpdate = true;
this.replaceText(0, this.textRender.getEndOfLine(this.cursorPos), this.input.val()); this.replaceText(0, this.textRender.getEndOfLine(this.cursorPos), this.input.value);
} }
this.isUpdateValue = true; this.isUpdateValue = true;
return true; return true;
......
...@@ -348,9 +348,9 @@ ...@@ -348,9 +348,9 @@
}); });
this.input $(this.input)
.on("focus", function () { .on("focus", function () {
self.input.addClass("focused"); self.input.isFocused = true;
if (self.controller.settings.isViewerMode) { if (self.controller.settings.isViewerMode) {
return; return;
} }
...@@ -456,11 +456,8 @@ ...@@ -456,11 +456,8 @@
// При редактировании ячейки не нужно пересылать изменения // При редактировании ячейки не нужно пересылать изменения
if (false === ws.getCellEditMode()) { if (false === ws.getCellEditMode()) {
// Сами запретим заходить в строку формул, когда выделен shape // Сами запретим заходить в строку формул, когда выделен shape
if (this.lastSendInfoRangeIsSelectOnShape) this.input.disabled = true === this.lastSendInfoRangeIsSelectOnShape;
this.input.prop("disabled", true); this.input.value = info.text;
else
this.input.prop("disabled", false);
this.input.val(info.text);
} }
this.handlers.trigger("asc_onSelectionChanged", info); this.handlers.trigger("asc_onSelectionChanged", info);
}, },
...@@ -858,12 +855,12 @@ ...@@ -858,12 +855,12 @@
t.controller.setFormulaEditMode(false); t.controller.setFormulaEditMode(false);
ws.setCellEditMode(false); ws.setCellEditMode(false);
ws.setFormulaEditMode(false); ws.setFormulaEditMode(false);
t.input.prop("disabled", true); t.input.disabled = true;
asc_applyFunction(callback, false); asc_applyFunction(callback, false);
return; return;
} }
t.input.prop("disabled", false); t.input.disabled = false;
t.handlers.trigger("asc_onEditCell", c_oAscCellEditorState.editStart); t.handlers.trigger("asc_onEditCell", c_oAscCellEditorState.editStart);
// Эвент на обновление состояния редактора // Эвент на обновление состояния редактора
t.cellEditor._updateEditorState(); t.cellEditor._updateEditorState();
...@@ -878,7 +875,7 @@ ...@@ -878,7 +875,7 @@
t.controller.setFormulaEditMode(false); t.controller.setFormulaEditMode(false);
ws.setCellEditMode(false); ws.setCellEditMode(false);
ws.setFormulaEditMode(false); ws.setFormulaEditMode(false);
t.input.prop("disabled", true); t.input.disabled = true;
// Выключаем lock для редактирования ячейки // Выключаем lock для редактирования ячейки
t.collaborativeEditing.onStopEditCell(); t.collaborativeEditing.onStopEditCell();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment