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