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

Добавил функцию asc_isDocumentCanSave (Эта функция возвращает true, если есть...

Добавил функцию asc_isDocumentCanSave (Эта функция возвращает true, если есть изменения или есть lock-и в документе)
Добавил эвент asc_onDocumentCanSaveChanged - эвент об обновлении статуса "можно ли сохранять файл"
Все это нужно для правки бага http://bugzserver/show_bug.cgi?id=25991

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@57809 954022d7-b5bf-4e40-9824-e11837661b57
parent 3095b01f
......@@ -654,6 +654,7 @@ function CCollaborativeEditing()
this.Add_Unlock2 = function(Lock)
{
this.m_aNeedUnlock2.push( Lock );
editor._onUpdateDocumentCanSave();
};
this.Apply_OtherChanges = function()
......@@ -1155,6 +1156,9 @@ function CCollaborativeEditing()
}
};
this.getOwnLocksLength = function () {
return this.m_aNeedUnlock2.length;
};
}
var CollaborativeEditing = new CCollaborativeEditing();
......
......@@ -11571,6 +11571,7 @@ CDocument.prototype =
// дублирование евента. когда будет undo-redo - тогда
// эти евенты начнут отличаться
editor.asc_fireCallback("asc_onDocumentModifiedChanged");
editor._onUpdateDocumentCanSave();
}
else
{
......
......@@ -553,6 +553,7 @@ function asc_docs_api(name)
this.CoAuthoringApi = new CDocsCoApi();
this.isCoAuthoringEnable = true;
this.isCoMarksDraw = false;
this.isDocumentCanSave = false; // Флаг, говорит о возможности сохранять документ (активна кнопка save или нет)
// Spell Checking
this.SpellCheckApi = new CSpellCheckApi();
......@@ -761,6 +762,7 @@ asc_docs_api.prototype.SetUnchangedDocument = function()
{
this.isDocumentModify = false;
this.asc_fireCallback("asc_onDocumentModifiedChanged");
editor._onUpdateDocumentCanSave();
};
asc_docs_api.prototype.isDocumentModified = function()
......@@ -772,6 +774,13 @@ asc_docs_api.prototype.isDocumentModified = function()
return this.isDocumentModify;
};
/**
* Эта функция возвращает true, если есть изменения или есть lock-и в документе
*/
asc_docs_api.prototype.asc_isDocumentCanSave = function () {
return this.isDocumentCanSave;
};
asc_docs_api.prototype.sync_BeginCatchSelectedElements = function()
{
if (0 != this.SelectedObjectsStack.length)
......@@ -1700,6 +1709,17 @@ asc_docs_api.prototype.asc_getSpellCheckLanguages = function() {
return g_spellCheckLanguages;
};
asc_docs_api.prototype._onUpdateDocumentCanSave = function () {
// Можно модифицировать это условие на более быстрое (менять самим состояние в аргументах, а не запрашивать каждый раз)
var tmp = this.isDocumentModified() || (0 >= CollaborativeEditing.m_nUseType &&
0 !== CollaborativeEditing.getOwnLocksLength());
if (tmp !== this.isDocumentCanSave) {
this.isDocumentCanSave = tmp;
this.asc_fireCallback('asc_onDocumentCanSaveChanged', this.isDocumentCanSave);
console.log(this.isDocumentCanSave);
}
};
// get functions
// Возвращает
//{
......@@ -2750,6 +2770,9 @@ function OnSave_Callback2(e)
// Снимаем лок с функции сохранения на сервере
editor.CoAuthoringApi.unSaveChanges();
// Обновляем состояние возможности сохранения документа
editor._onUpdateDocumentCanSave();
}
else
{
......@@ -2782,6 +2805,8 @@ asc_docs_api.prototype.asc_OnSaveEnd = function (isDocumentSaved) {
this.CoAuthoringApi.unSaveChanges();
if (!isDocumentSaved)
this.CoAuthoringApi.disconnect();
// Обновляем состояние возможности сохранения документа
this._onUpdateDocumentCanSave();
};
function safe_Apply_Changes()
......
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