Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
sdkjs
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Boris Kocherov
sdkjs
Commits
c5b52c29
Commit
c5b52c29
authored
Nov 13, 2017
by
Boris Kocherov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
gadget mode changes
parent
c95c52d8
Changes
11
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
385 additions
and
786 deletions
+385
-786
cell/Local/api.js
cell/Local/api.js
+61
-149
cell/api.js
cell/api.js
+1
-0
common/Drawings/Externals.js
common/Drawings/Externals.js
+2
-10
common/GlobalLoaders.js
common/GlobalLoaders.js
+1
-1
common/Local/common.js
common/Local/common.js
+191
-400
common/editorscommon.js
common/editorscommon.js
+53
-1
common/externs/global.js
common/externs/global.js
+17
-0
slide/Local/api.js
slide/Local/api.js
+28
-101
slide/api.js
slide/api.js
+1
-0
word/Local/api.js
word/Local/api.js
+29
-124
word/api.js
word/api.js
+1
-0
No files found.
cell/Local/api.js
View file @
c5b52c29
...
...
@@ -53,92 +53,67 @@ var c_oAscError = Asc.c_oAscError;
{
this
.
asc_registerCallback
(
'
asc_onDocumentContentReady
'
,
function
(){
DesktopOfflineUpdateLocalName
(
window
[
"
Asc
"
][
"
editor
"
]);
setTimeout
(
function
(){
window
[
"
UpdateInstallPlugins
"
]();},
10
);
});
window
[
"
AscDesktopEditor
"
][
"
LocalStartOpen
"
]();
return
this
.
jio_open
();
};
asc
[
'
spreadsheet_api
'
].
prototype
.
_OfflineAppDocumentEndLoad
=
function
(
_
data
,
_len
)
asc
[
'
spreadsheet_api
'
].
prototype
.
_OfflineAppDocumentEndLoad
=
function
(
_
url
,
_data
)
{
AscCommon
.
g_oIdCounter
.
m_sUserId
=
window
[
"
AscDesktopEditor
"
][
"
CheckUserId
"
]();
//
AscCommon.g_oIdCounter.m_sUserId = window["AscDesktopEditor"]["CheckUserId"]();
if
(
_data
==
""
)
{
this
.
sendEvent
(
"
asc_onError
"
,
c_oAscError
.
ID
.
Convertation
Open
Error
,
c_oAscError
.
Level
.
Critical
);
this
.
sendEvent
(
"
asc_onError
"
,
c_oAscError
.
ID
.
ConvertationError
,
c_oAscError
.
Level
.
Critical
);
return
;
}
var
_binary
=
getBinaryArray
(
_data
,
_len
);
this
.
openDocument
(
_binary
);
this
.
openDocument
(
_data
);
AscCommon
.
History
.
UserSaveMode
=
true
;
DesktopOfflineUpdateLocalName
(
this
);
window
[
"
DesktopAfterOpen
"
](
this
);
this
.
onUpdateDocumentModified
(
AscCommon
.
History
.
Have_Changes
());
this
.
onUpdateDocumentModified
(
AscCommon
.
History
.
Is_Modified
());
};
asc
[
'
spreadsheet_api
'
].
prototype
.
_onNeedParams
=
function
(
data
,
opt_isPassword
)
asc
[
'
spreadsheet_api
'
].
prototype
.
_onNeedParams
=
function
(
data
)
{
var
options
;
if
(
opt_isPassword
){
options
=
new
AscCommon
.
asc_CAdvancedOptions
(
Asc
.
c_oAscAdvancedOptionsID
.
DRM
);
}
else
{
var
cp
=
JSON
.
parse
(
"
{
\"
codepage
\"
:46,
\"
delimiter
\"
:1}
"
);
cp
[
'
encodings
'
]
=
AscCommon
.
getEncodingParams
();
options
=
new
AscCommon
.
asc_CAdvancedOptions
(
Asc
.
c_oAscAdvancedOptionsID
.
CSV
,
cp
);
}
this
.
handlers
.
trigger
(
"
asc_onAdvancedOptions
"
,
options
,
AscCommon
.
c_oAscAdvancedOptionsAction
.
Open
);
this
.
handlers
.
trigger
(
"
asc_onAdvancedOptions
"
,
new
AscCommon
.
asc_CAdvancedOptions
(
Asc
.
c_oAscAdvancedOptionsID
.
CSV
,
cp
),
AscCommon
.
c_oAscAdvancedOptionsAction
.
Open
);
};
asc
[
'
spreadsheet_api
'
].
prototype
.
asc_addImageDrawingObject
=
function
(
url
)
{
var
_url
=
window
[
"
AscDesktopEditor
"
][
"
LocalFileGetImageUrl
"
](
url
);
var
ws
=
this
.
wb
.
getWorksheet
();
if
(
ws
)
{
var
_url
=
window
[
"
AscDesktopEditor
"
][
"
LocalFileGetImageUrl
"
](
url
);
ws
.
objectRender
.
addImageDrawingObject
([
AscCommon
.
g_oDocumentUrls
.
getImageUrl
(
_url
)],
null
);
}
};
//
asc['spreadsheet_api'].prototype.asc_addImageDrawingObject = function(url)
//
{
//
var _url = window["AscDesktopEditor"]["LocalFileGetImageUrl"](url);
//
//
var ws = this.wb.getWorksheet();
// if (ws)
//
{
//
var _url = window["AscDesktopEditor"]["LocalFileGetImageUrl"](url);
//
ws.objectRender.addImageDrawingObject([AscCommon.g_oDocumentUrls.getImageUrl(_url)], null);
//
}
//
};
asc
[
'
spreadsheet_api
'
].
prototype
.
asc_showImageFileDialog
=
function
()
{
window
[
"
AscDesktopEditor
"
][
"
LocalFileGetImageUrlFromOpenFileDialog
"
]();
};
asc
[
'
spreadsheet_api
'
].
prototype
.
asc_addImage
=
function
()
{
window
[
"
AscDesktopEditor
"
][
"
LocalFileGetImageUrlFromOpenFileDialog
"
]();
};
//
asc['spreadsheet_api'].prototype.asc_addImage = function()
//
{
//
window["AscDesktopEditor"]["LocalFileGetImageUrlFromOpenFileDialog"]();
//
};
})(
jQuery
,
window
);
window
[
"
Asc
"
][
'
spreadsheet_api
'
].
prototype
.
asc_setAdvancedOptions
=
function
(
idOption
,
option
)
{
if
(
window
[
"
Asc
"
].
c_oAscAdvancedOptionsID
.
CSV
===
idOption
)
{
var
delimiter
=
option
.
asc_getDelimiter
();
var
delimiterChar
=
option
.
asc_getDelimiterChar
();
var
_param
=
""
;
_param
+=
(
"
<m_nCsvTxtEncoding>
"
+
option
.
asc_getCodePage
()
+
"
</m_nCsvTxtEncoding>
"
);
if
(
null
!=
delimiter
)
{
_param
+=
(
"
<m_nCsvDelimiter>
"
+
delimiter
+
"
</m_nCsvDelimiter>
"
);
}
if
(
null
!=
delimiterChar
)
{
_param
+=
(
"
<m_nCsvDelimiterChar>
"
+
delimiterChar
+
"
</m_nCsvDelimiterChar>
"
);
}
window
[
"
AscDesktopEditor
"
][
"
SetAdvancedOptions
"
](
_param
);
}
else
if
(
window
[
"
Asc
"
].
c_oAscAdvancedOptionsID
.
DRM
===
idOption
)
{
var
_param
=
""
;
_param
+=
(
"
<m_sPassword>
"
+
AscCommon
.
CopyPasteCorrectString
(
option
.
asc_getPassword
())
+
"
</m_sPassword>
"
);
window
[
"
AscDesktopEditor
"
][
"
SetAdvancedOptions
"
](
_param
);
}
window
[
"
AscDesktopEditor
"
][
"
SetAdvancedOptions
"
](
""
+
option
.
asc_getCodePage
(),
""
+
option
.
asc_getDelimiter
());
};
window
[
"
Asc
"
][
'
spreadsheet_api
'
].
prototype
[
"
asc_setAdvancedOptions
"
]
=
window
[
"
Asc
"
][
'
spreadsheet_api
'
].
prototype
.
asc_setAdvancedOptions
;
window
[
"
DesktopOfflineAppDocumentEndLoad
"
]
=
function
(
_url
,
_data
,
_len
)
window
[
"
asc_initAdvancedOptions
"
]
=
function
()
{
window
[
"
Asc
"
][
"
editor
"
].
_onNeedParams
(
undefined
);
};
window
[
"
DesktopOfflineAppDocumentEndLoad
"
]
=
function
(
_url
,
_data
)
{
AscCommon
.
g_oDocumentUrls
.
documentUrl
=
_url
;
if
(
AscCommon
.
g_oDocumentUrls
.
documentUrl
.
indexOf
(
"
file:
"
)
!=
0
)
...
...
@@ -148,7 +123,7 @@ window["DesktopOfflineAppDocumentEndLoad"] = function(_url, _data, _len)
AscCommon
.
g_oDocumentUrls
.
documentUrl
=
"
file://
"
+
AscCommon
.
g_oDocumentUrls
.
documentUrl
;
}
window
[
"
Asc
"
][
"
editor
"
].
_OfflineAppDocumentEndLoad
(
_data
,
_len
);
window
[
"
Asc
"
][
"
editor
"
].
_OfflineAppDocumentEndLoad
(
_data
);
};
/////////////////////////////////////////////////////////
...
...
@@ -156,9 +131,9 @@ window["DesktopOfflineAppDocumentEndLoad"] = function(_url, _data, _len)
/////////////////////////////////////////////////////////
AscCommon
.
CHistory
.
prototype
.
Reset_SavedIndex
=
function
(
IsUserSave
)
{
this
.
SavedIndex
=
(
null
===
this
.
SavedIndex
&&
-
1
===
this
.
Index
?
null
:
this
.
Index
);
if
(
true
===
this
.
Is_UserSaveMode
())
{
this
.
SavedIndex
=
this
.
Index
;
if
(
true
===
IsUserSave
)
{
this
.
UserSavedIndex
=
this
.
Index
;
...
...
@@ -167,11 +142,12 @@ AscCommon.CHistory.prototype.Reset_SavedIndex = function(IsUserSave)
}
else
{
this
.
SavedIndex
=
this
.
Index
;
this
.
ForceSave
=
false
;
}
};
AscCommon
.
CHistory
.
prototype
.
Have_Changes
=
function
(
IsNotUserSave
,
IsNoSavedNoModifyed
)
AscCommon
.
CHistory
.
prototype
.
Is_Modified
=
function
(
IsNotUserSave
,
IsNoSavedNoModifyed
)
{
var
checkIndex
=
(
this
.
Is_UserSaveMode
()
&&
!
IsNotUserSave
)
?
this
.
UserSavedIndex
:
this
.
SavedIndex
;
if
(
-
1
===
this
.
Index
&&
null
===
checkIndex
&&
false
===
this
.
ForceSave
)
...
...
@@ -199,46 +175,7 @@ window["DesktopOfflineAppDocumentApplyChanges"] = function(_changes)
/////////////////////////////////////////////////////////
//////////////// SAVE //////////////////////
/////////////////////////////////////////////////////////
window
[
"
Asc
"
][
'
spreadsheet_api
'
].
prototype
.
onUpdateDocumentModified
=
function
(
bIsModified
)
{
// Обновляем только после окончания сохранения
if
(
this
.
canSave
)
{
this
.
handlers
.
trigger
(
"
asc_onDocumentModifiedChanged
"
,
bIsModified
);
this
.
_onUpdateDocumentCanSave
();
if
(
undefined
!==
window
[
"
AscDesktopEditor
"
])
{
window
[
"
AscDesktopEditor
"
][
"
onDocumentModifiedChanged
"
](
AscCommon
.
History
?
AscCommon
.
History
.
Have_Changes
(
undefined
,
true
)
:
bValue
);
}
}
};
window
[
"
Asc
"
][
'
spreadsheet_api
'
].
prototype
.
asc_Save
=
function
(
isNoUserSave
,
isSaveAs
)
{
if
(
this
.
isChartEditor
||
AscCommon
.
c_oAscAdvancedOptionsAction
.
None
!==
this
.
advancedOptionsAction
)
return
;
var
t
=
this
;
if
(
true
!==
isNoUserSave
)
this
.
IsUserSave
=
true
;
if
(
this
.
IsUserSave
)
{
this
.
LastUserSavedIndex
=
AscCommon
.
History
.
UserSavedIndex
;
}
if
(
true
===
this
.
canSave
&&
!
this
.
isLongAction
())
{
var
_isNaturalSave
=
this
.
IsUserSave
;
this
.
canSave
=
false
;
this
.
CoAuthoringApi
.
askSaveChanges
(
function
(
e
){
t
.
onSaveCallback
(
e
);});
if
(
this
.
CoAuthoringApi
.
onUnSaveLock
)
this
.
CoAuthoringApi
.
onUnSaveLock
();
if
(
_isNaturalSave
===
true
)
window
[
"
DesktopOfflineAppDocumentStartSave
"
](
isSaveAs
);
}
};
window
[
"
Asc
"
][
'
spreadsheet_api
'
].
prototype
.
asc_DownloadAs
=
function
(
typeFile
,
bIsDownloadEvent
)
{
this
.
asc_Save
(
false
,
true
);
...
...
@@ -249,15 +186,8 @@ window["Asc"]['spreadsheet_api'].prototype.asc_isOffline = function()
return
true
;
};
window
[
"
DesktopOfflineAppDocumentStartSave
"
]
=
function
(
isSaveAs
,
password
,
isForce
)
window
[
"
DesktopOfflineAppDocumentStartSave
"
]
=
function
(
isSaveAs
)
{
window
.
doadssIsSaveAs
=
isSaveAs
;
if
(
true
!==
isForce
&&
window
.
g_asc_plugins
&&
window
.
g_asc_plugins
.
isRunned
(
"
asc.{F2402876-659F-47FB-A646-67B49F2B57D0}
"
))
{
window
.
g_asc_plugins
.
init
({
"
type
"
:
"
generatePassword
"
});
return
;
}
window
[
"
Asc
"
][
"
editor
"
].
sync_StartAction
(
Asc
.
c_oAscAsyncActionType
.
BlockInteraction
,
Asc
.
c_oAscAsyncAction
.
Save
);
var
_param
=
""
;
...
...
@@ -266,9 +196,9 @@ window["DesktopOfflineAppDocumentStartSave"] = function(isSaveAs, password, isFo
if
(
AscCommon
.
AscBrowser
.
isRetina
)
_param
+=
"
retina=true;
"
;
window
[
"
AscDesktopEditor
"
][
"
LocalFileSave
"
](
_param
,
password
);
window
[
"
AscDesktopEditor
"
][
"
LocalFileSave
"
](
_param
);
};
window
[
"
DesktopOfflineAppDocumentEndSave
"
]
=
function
(
error
,
hash
,
password
)
window
[
"
DesktopOfflineAppDocumentEndSave
"
]
=
function
(
error
)
{
window
[
"
Asc
"
][
"
editor
"
].
sync_EndAction
(
Asc
.
c_oAscAsyncActionType
.
BlockInteraction
,
Asc
.
c_oAscAsyncAction
.
Save
);
if
(
0
==
error
)
...
...
@@ -276,29 +206,11 @@ window["DesktopOfflineAppDocumentEndSave"] = function(error, hash, password)
else
AscCommon
.
History
.
UserSavedIndex
=
window
[
"
Asc
"
][
"
editor
"
].
LastUserSavedIndex
;
window
[
"
Asc
"
][
"
editor
"
].
onUpdateDocumentModified
(
AscCommon
.
History
.
Have_Changes
());
window
[
"
Asc
"
][
"
editor
"
].
onUpdateDocumentModified
(
AscCommon
.
History
.
Is_Modified
());
window
[
"
Asc
"
][
"
editor
"
].
LastUserSavedIndex
=
undefined
;
if
(
2
==
error
)
window
[
"
Asc
"
][
"
editor
"
].
sendEvent
(
"
asc_onError
"
,
c_oAscError
.
ID
.
ConvertationSaveError
,
c_oAscError
.
Level
.
NoCritical
);
if
(
0
==
error
)
{
if
(
window
.
SaveQuestionObjectBeforeSign
)
{
var
_obj
=
window
.
SaveQuestionObjectBeforeSign
;
editor
.
sendEvent
(
"
asc_onSignatureClick
"
,
_obj
.
guid
,
_obj
.
width
,
_obj
.
height
);
window
.
SaveQuestionObjectBeforeSign
=
null
;
}
}
if
(
hash
!==
null
&&
hash
!==
undefined
&&
hash
!=
""
)
{
if
(
window
.
g_asc_plugins
&&
window
.
g_asc_plugins
.
isRunned
(
"
asc.{F2402876-659F-47FB-A646-67B49F2B57D0}
"
))
{
window
.
g_asc_plugins
.
init
(
"
asc.{F2402876-659F-47FB-A646-67B49F2B57D0}
"
,
{
"
type
"
:
"
setPasswordByFile
"
,
"
hash
"
:
hash
,
"
password
"
:
password
});
}
}
window
[
"
Asc
"
][
"
editor
"
].
sendEvent
(
"
asc_onError
"
,
c_oAscError
.
ID
.
ConvertationError
,
c_oAscError
.
Level
.
NoCritical
);
};
window
[
"
Asc
"
][
'
spreadsheet_api
'
].
prototype
[
"
asc_addImageDrawingObject
"
]
=
window
[
"
Asc
"
][
'
spreadsheet_api
'
].
prototype
.
asc_addImageDrawingObject
;
...
...
@@ -317,7 +229,7 @@ window["DesktopOfflineAppDocumentAddImageEnd"] = function(url)
if
(
ws
)
{
var
_url
=
window
[
"
AscDesktopEditor
"
][
"
LocalFileGetImageUrl
"
](
url
);
ws
.
objectRender
.
addImageDrawingObject
([
AscCommon
.
g_oDocumentUrls
.
getImageUrl
(
_url
)]
,
null
);
ws
.
objectRender
.
addImageDrawingObject
(
AscCommon
.
g_oDocumentUrls
.
getImageUrl
(
_url
)
,
null
);
}
};
...
...
cell/api.js
View file @
c5b52c29
...
...
@@ -1625,6 +1625,7 @@ var editor;
// Обновляем состояние возможности сохранения документа
t
.
onUpdateDocumentModified
(
History
.
Have_Changes
());
t
.
jio_save
();
if
(
undefined
!==
window
[
"
AscDesktopEditor
"
])
{
window
[
"
AscDesktopEditor
"
][
"
OnSave
"
]();
}
...
...
common/Drawings/Externals.js
View file @
c5b52c29
...
...
@@ -424,9 +424,9 @@ function CFontFileLoader(id)
g_fontNamesEncoder
=
new
ZBase32Encoder
();
//var _name = this.Id;
var
_name
=
g_fontNamesEncoder
.
Encode
(
this
.
Id
)
+
"
.
js
"
;
var
_name
=
g_fontNamesEncoder
.
Encode
(
this
.
Id
)
+
"
.
ttf
"
;
xhr
.
open
(
'
GET
'
,
basePath
+
"
od
ttf/
"
+
_name
,
true
);
// TODO:
xhr
.
open
(
'
GET
'
,
basePath
+
"
ttf/
"
+
_name
,
true
);
// TODO:
if
(
typeof
ArrayBuffer
!==
'
undefined
'
&&
!
window
.
opera
)
xhr
.
responseType
=
'
arraybuffer
'
;
...
...
@@ -482,14 +482,6 @@ function CFontFileLoader(id)
oThis
.
SetStreamIndex
(
__font_data_idx
);
}
// decode
var
guidOdttf
=
[
0xA0
,
0x66
,
0xD6
,
0x20
,
0x14
,
0x96
,
0x47
,
0xfa
,
0x95
,
0x69
,
0xB8
,
0x50
,
0xB0
,
0x41
,
0x49
,
0x48
];
var
_stream
=
g_fonts_streams
[
g_fonts_streams
.
length
-
1
];
var
_data
=
_stream
.
data
;
var
_count_decode
=
Math
.
min
(
32
,
_stream
.
size
);
for
(
var
i
=
0
;
i
<
_count_decode
;
++
i
)
_data
[
i
]
^=
guidOdttf
[
i
%
16
];
};
xhr
.
send
(
null
);
...
...
common/GlobalLoaders.js
View file @
c5b52c29
...
...
@@ -51,7 +51,7 @@
this
.
fonts_streams
=
[];
// теперь вся информация о всех возможных шрифтах. Они во всех редакторах должны быть одни и те же
this
.
fontFilesPath
=
"
../../../..
/fonts/
"
;
this
.
fontFilesPath
=
"
onlyoffice
/fonts/
"
;
this
.
fontFiles
=
AscFonts
.
g_font_files
;
this
.
fontInfos
=
AscFonts
.
g_font_infos
;
this
.
map_font_index
=
AscFonts
.
g_map_font_index
;
...
...
common/Local/common.js
View file @
c5b52c29
...
...
@@ -32,65 +32,65 @@
"
use strict
"
;
///////////////////////////////////////////////////////
//
////////////
//
FONTS ////////////////////////
///////////////////////////////////////////////////////
//
AscFonts
.
CFontFileLoader
.
prototype
.
LoadFontAsync
=
function
(
basePath
,
_callback
,
isEmbed
)
{
this
.
callback
=
_callback
;
if
(
-
1
!=
this
.
Status
)
return
true
;
var
oThis
=
this
;
this
.
Status
=
2
;
if
(
window
[
"
AscDesktopEditor
"
]
!==
undefined
&&
!
this
.
CanUseOriginalFormat
)
{
this
.
callback
=
null
;
window
[
"
AscDesktopEditor
"
][
"
LoadFontBase64
"
](
this
.
Id
);
this
.
_callback_font_load
();
return
;
}
var
xhr
=
new
XMLHttpRequest
();
xhr
.
open
(
'
GET
'
,
"
ascdesktop://fonts/
"
+
this
.
Id
,
true
);
xhr
.
responseType
=
'
arraybuffer
'
;
if
(
xhr
.
overrideMimeType
)
xhr
.
overrideMimeType
(
'
text/plain; charset=x-user-defined
'
);
else
xhr
.
setRequestHeader
(
'
Accept-Charset
'
,
'
x-user-defined
'
);
xhr
.
onload
=
function
()
{
if
(
this
.
status
!=
200
)
{
oThis
.
Status
=
1
;
return
;
}
oThis
.
Status
=
0
;
var
fontStreams
=
AscFonts
.
g_fonts_streams
;
if
(
this
.
response
)
{
var
__font_data_idx
=
fontStreams
.
length
;
var
_uintData
=
new
Uint8Array
(
this
.
response
);
fontStreams
[
__font_data_idx
]
=
new
AscFonts
.
FT_Stream
(
_uintData
,
_uintData
.
length
);
oThis
.
SetStreamIndex
(
__font_data_idx
);
}
else
{
var
__font_data_idx
=
fontStreams
.
length
;
fontStreams
[
__font_data_idx
]
=
AscFonts
.
CreateFontData3
(
this
.
responseText
);
oThis
.
SetStreamIndex
(
__font_data_idx
);
if
(
null
!=
oThis
.
callback
)
oThis
.
callback
();
}
};
xhr
.
send
(
null
);
};
///////////////////////////////////////////////////////
//////////// FONTS ////////////////////////
///////////////////////////////////////////////////////
//
AscFonts.CFontFileLoader.prototype.LoadFontAsync = function(basePath, _callback, isEmbed)
//
{
//
this.callback = _callback;
//
if (-1 != this.Status)
//
return true;
//
//
var oThis = this;
//
this.Status = 2;
//
if (window["AscDesktopEditor"] !== undefined && !this.CanUseOriginalFormat)
//
{
// this.callback = null;
//
window["AscDesktopEditor"]["LoadFontBase64"](this.Id);
//
this._callback_font_load();
//
return;
//
}
//
//
var xhr = new XMLHttpRequest();
//
xhr.open('GET', "ascdesktop://fonts/" + this.Id, true);
//
xhr.responseType = 'arraybuffer';
//
//
if (xhr.overrideMimeType)
//
xhr.overrideMimeType('text/plain; charset=x-user-defined');
//
else
//
xhr.setRequestHeader('Accept-Charset', 'x-user-defined');
//
//
xhr.onload = function()
//
{
//
if (this.status != 200)
//
{
//
oThis.Status = 1;
//
return;
//
}
//
//
oThis.Status = 0;
//
//
var fontStreams = AscFonts.g_fonts_streams;
//
if (this.response)
//
{
//
var __font_data_idx = fontStreams.length;
//
var _uintData = new Uint8Array(this.response);
//
fontStreams[__font_data_idx] = new AscFonts.FT_Stream(_uintData, _uintData.length);
//
oThis.SetStreamIndex(__font_data_idx);
//
}
//
else
//
{
//
var __font_data_idx = fontStreams.length;
//
fontStreams[__font_data_idx] = AscFonts.CreateFontData3(this.responseText);
//
oThis.SetStreamIndex(__font_data_idx);
//
//
if (null != oThis.callback)
//
oThis.callback();
//
}
//
};
//
//
xhr.send(null);
//
};
/////////////////////////////////////////////////////////
////////////// IMAGES ////////////////////////
...
...
@@ -167,23 +167,23 @@ AscCommon.sendImgUrls = function(api, images, callback)
/////////////////////////////////////////////////////////
function
DesktopOfflineUpdateLocalName
(
_api
)
{
var
_name
=
window
[
"
AscDesktopEditor
"
][
"
LocalFileGetSourcePath
"
]();
var
_ind1
=
_name
.
lastIndexOf
(
"
\\
"
);
var
_ind2
=
_name
.
lastIndexOf
(
"
/
"
);
if
(
_ind1
==
-
1
)
_ind1
=
1000000
;
if
(
_ind2
==
-
1
)
_ind2
=
1000000
;
var
_ind
=
Math
.
min
(
_ind1
,
_ind2
);
if
(
_ind
!=
1000000
)
_name
=
_name
.
substring
(
_ind
+
1
);
_api
.
documentTitle
=
_name
;
_api
.
sendEvent
(
"
asc_onDocumentName
"
,
_name
);
window
[
"
AscDesktopEditor
"
][
"
SetDocumentName
"
](
_name
);
//
var _name = window["AscDesktopEditor"]["LocalFileGetSourcePath"]();
//
//
var _ind1 = _name.lastIndexOf("\\");
//
var _ind2 = _name.lastIndexOf("/");
//
//
if (_ind1 == -1)
//
_ind1 = 1000000;
//
if (_ind2 == -1)
//
_ind2 = 1000000;
//
//
var _ind = Math.min(_ind1, _ind2);
//
if (_ind != 1000000)
//
_name = _name.substring(_ind + 1);
//
//
_api.documentTitle = _name;
//
_api.sendEvent("asc_onDocumentName", _name);
//
window["AscDesktopEditor"]["SetDocumentName"](_name);
}
AscCommon
.
CDocsCoApi
.
prototype
.
askSaveChanges
=
function
(
callback
)
...
...
@@ -192,343 +192,134 @@ AscCommon.CDocsCoApi.prototype.askSaveChanges = function(callback)
};
AscCommon
.
CDocsCoApi
.
prototype
.
saveChanges
=
function
(
arrayChanges
,
deleteIndex
,
excelAdditionalInfo
)
{
window
[
"
AscDesktopEditor
"
][
"
LocalFileSaveChanges
"
](
arrayChanges
.
join
(
"
\"
,
\"
"
),
deleteIndex
,
arrayChanges
.
length
);
//this.onUnSaveLock();
};
window
[
"
NativeCorrectImageUrlOnCopy
"
]
=
function
(
url
)
{
AscCommon
.
g_oDocumentUrls
.
getImageUrl
(
url
);
};
window
[
"
NativeCorrectImageUrlOnPaste
"
]
=
function
(
url
)
{
return
window
[
"
AscDesktopEditor
"
][
"
LocalFileGetImageUrl
"
](
url
);
};
window
[
"
UpdateInstallPlugins
"
]
=
function
()
{
var
_plugins
=
JSON
.
parse
(
window
[
"
AscDesktopEditor
"
][
"
GetInstallPlugins
"
]());
_plugins
[
"
url
"
]
=
_plugins
[
"
url
"
].
replace
(
"
"
,
"
%20
"
);
for
(
var
i
=
0
;
i
<
_plugins
[
"
pluginsData
"
].
length
;
i
++
)
{
var
_plugin
=
_plugins
[
"
pluginsData
"
][
i
];
_plugin
[
"
baseUrl
"
]
=
_plugins
[
"
url
"
]
+
_plugin
[
"
guid
"
].
substring
(
4
)
+
"
/
"
;
var
isSystem
=
false
;
for
(
var
j
=
0
;
j
<
_plugin
[
"
variations
"
].
length
;
j
++
)
{
var
_variation
=
_plugin
[
"
variations
"
][
j
];
if
(
_variation
[
"
initDataType
"
]
==
"
desktop
"
)
{
isSystem
=
true
;
break
;
}
}
if
(
isSystem
)
{
_plugins
[
"
pluginsData
"
].
splice
(
i
,
1
);
--
i
;
}
}
var
_editor
=
window
[
"
Asc
"
][
"
editor
"
]
?
window
[
"
Asc
"
][
"
editor
"
]
:
window
.
editor
;
_editor
.
sendEvent
(
"
asc_onPluginsInit
"
,
_plugins
);
};
window
[
"
UpdateSystemPlugins
"
]
=
function
()
{
var
_plugins
=
JSON
.
parse
(
window
[
"
AscDesktopEditor
"
][
"
GetInstallPlugins
"
]());
_plugins
[
"
url
"
]
=
_plugins
[
"
url
"
].
replace
(
"
"
,
"
%20
"
);
var
_len
=
_plugins
[
"
pluginsData
"
].
length
;
for
(
var
i
=
0
;
i
<
_len
;
i
++
)
_plugins
[
"
pluginsData
"
][
i
][
"
baseUrl
"
]
=
_plugins
[
"
url
"
]
+
_plugins
[
"
pluginsData
"
][
i
][
"
guid
"
].
substring
(
4
)
+
"
/
"
;
var
_editor
=
window
[
"
Asc
"
][
"
editor
"
]
?
window
[
"
Asc
"
][
"
editor
"
]
:
window
.
editor
;
var
_array
=
[];
for
(
var
i
=
0
;
i
<
_len
;
i
++
)
{
var
_plugin
=
_plugins
[
"
pluginsData
"
][
i
];
for
(
var
j
=
0
;
j
<
_plugin
[
"
variations
"
].
length
;
j
++
)
{
var
_variation
=
_plugin
[
"
variations
"
][
j
];
if
(
_variation
[
"
initDataType
"
]
==
"
desktop
"
)
{
_array
.
push
(
_plugin
);
break
;
}
}
}
var
_arraySystem
=
[];
for
(
var
i
=
0
;
i
<
_array
.
length
;
i
++
)
{
var
plugin
=
new
Asc
.
CPlugin
();
plugin
[
"
deserialize
"
](
_array
[
i
]);
_arraySystem
.
push
(
plugin
);
}
window
.
g_asc_plugins
.
registerSystem
(
""
,
_arraySystem
);
window
.
g_asc_plugins
.
runAllSystem
();
};
AscCommon
.
InitDragAndDrop
=
function
(
oHtmlElement
,
callback
)
{
if
(
"
undefined
"
!=
typeof
(
FileReader
)
&&
null
!=
oHtmlElement
)
{
oHtmlElement
[
"
ondragover
"
]
=
function
(
e
)
{
e
.
preventDefault
();
e
.
dataTransfer
.
dropEffect
=
AscCommon
.
CanDropFiles
(
e
)
?
'
copy
'
:
'
none
'
;
return
false
;
};
oHtmlElement
[
"
ondrop
"
]
=
function
(
e
)
{
e
.
preventDefault
();
var
_files
=
window
[
"
AscDesktopEditor
"
][
"
GetDropFiles
"
]();
for
(
var
i
=
0
;
i
<
_files
.
length
;
i
++
)
{
if
(
window
[
"
AscDesktopEditor
"
][
"
IsImageFile
"
](
_files
[
i
]))
{
window
[
"
DesktopOfflineAppDocumentAddImageEnd
"
](
_files
[
i
]);
break
;
}
}
};
}
}
window
[
"
asc_initAdvancedOptions
"
]
=
function
(
_code
,
_file_hash
)
{
var
_editor
=
window
[
"
Asc
"
][
"
editor
"
]
?
window
[
"
Asc
"
][
"
editor
"
]
:
window
.
editor
;
if
((
_code
==
90
||
_code
==
91
)
&&
window
.
g_asc_plugins
&&
window
.
g_asc_plugins
.
isRunned
(
"
asc.{F2402876-659F-47FB-A646-67B49F2B57D0}
"
))
{
window
.
g_asc_plugins
.
init
(
"
asc.{F2402876-659F-47FB-A646-67B49F2B57D0}
"
,
{
"
type
"
:
"
getPasswordByFile
"
,
"
hash
"
:
_file_hash
});
return
;
}
_editor
.
_onNeedParams
(
undefined
,
(
_code
==
90
||
_code
==
91
)
?
true
:
undefined
);
//window["AscDesktopEditor"]["LocalFileSaveChanges"](arrayChanges.join("\",\""), deleteIndex, arrayChanges.length);
this
.
onUnSaveLock
();
};
window
[
"
DesktopOfflineAppDocumentSignatures
"
]
=
function
(
_json
)
{
var
_editor
=
window
[
"
Asc
"
][
"
editor
"
]
?
window
[
"
Asc
"
][
"
editor
"
]
:
window
.
editor
;
_editor
.
signatures
=
[];
var
_signatures
=
null
;
try
{
_signatures
=
JSON
.
parse
(
_json
);
}
catch
(
err
)
{
return
;
}
if
(
!
_signatures
)
return
;
var
_count
=
_signatures
[
"
count
"
];
var
_data
=
_signatures
[
"
data
"
];
var
_sign
;
var
_add_sign
;
//window["NativeCorrectImageUrlOnCopy"] = function(url)
//{
// AscCommon.g_oDocumentUrls.getImageUrl(url);
//};
//window["NativeCorrectImageUrlOnPaste"] = function(url)
//{
// return window["AscDesktopEditor"]["LocalFileGetImageUrl"](url);
//};
//window["UpdateInstallPlugins"] = function()
//{
// var _plugins = JSON.parse(window["AscDesktopEditor"]["GetInstallPlugins"]());
// var _editor = window["Asc"]["editor"] ? window["Asc"]["editor"] : window.editor;
// _editor.asc_fireCallback("asc_onPluginsInit", _plugins);
//};
//AscCommon.InitDragAndDrop = function(oHtmlElement, callback) {
// if ("undefined" != typeof(FileReader) && null != oHtmlElement) {
// oHtmlElement["ondragover"] = function (e) {
// e.preventDefault();
// e.dataTransfer.dropEffect = AscCommon.CanDropFiles(e) ? 'copy' : 'none';
// return false;
// };
// oHtmlElement["ondrop"] = function (e) {
// e.preventDefault();
//
// var _files = window["AscDesktopEditor"]["GetDropFiles"]();
// for (var i = 0; i < _files.length; i++)
// {
// if (window["AscDesktopEditor"]["IsImageFile"](_files[i]))
// {
// window["DesktopOfflineAppDocumentAddImageEnd"](_files[i]);
// break;
// }
// }
// };
// }
//};
var
_images_loading
=
[];
for
(
var
i
=
0
;
i
<
_count
;
i
++
)
{
_sign
=
_data
[
i
];
_add_sign
=
new
window
[
"
AscCommon
"
].
asc_CSignatureLine
();
_add_sign
.
guid
=
_sign
[
"
guid
"
];
_add_sign
.
valid
=
_sign
[
"
valid
"
];
_add_sign
.
image
=
(
_add_sign
.
valid
==
0
)
?
_sign
[
"
image_valid
"
]
:
_sign
[
"
image_invalid
"
];
_add_sign
.
image
=
"
data:image/png;base64,
"
+
_add_sign
.
image
;
_add_sign
.
signer1
=
_sign
[
"
name
"
];
_add_sign
.
id
=
i
;
_editor
.
signatures
.
push
(
_add_sign
);
_images_loading
.
push
(
_add_sign
.
image
);
}
if
(
!
window
.
FirstSignaturesCall
)
{
_editor
.
asc_registerCallback
(
"
asc_onAddSignature
"
,
function
(
guid
)
{
// меняем среду
//AscBrowser.isSafari = false;
//AscBrowser.isSafariMacOs = false;
//window.USER_AGENT_SAFARI_MACOS = false;
var
_api
=
window
[
"
Asc
"
][
"
editor
"
]
?
window
[
"
Asc
"
][
"
editor
"
]
:
window
.
editor
;
_api
.
sendEvent
(
"
asc_onUpdateSignatures
"
,
_api
.
asc_getSignatures
(),
_api
.
asc_getRequestSignatures
());
AscCommon
.
readBlobAsDataURL
=
function
(
blob
)
{
var
fr
=
new
FileReader
();
return
new
RSVP
.
Promise
(
function
(
resolve
,
reject
,
notify
)
{
fr
.
addEventListener
(
"
load
"
,
function
()
{
resolve
(
fr
.
result
);
});
_editor
.
asc_registerCallback
(
"
asc_onRemoveSignature
"
,
function
(
guid
)
{
var
_api
=
window
[
"
Asc
"
][
"
editor
"
]
?
window
[
"
Asc
"
][
"
editor
"
]
:
window
.
editor
;
_api
.
sendEvent
(
"
asc_onUpdateSignatures
"
,
_api
.
asc_getSignatures
(),
_api
.
asc_getRequestSignatures
());
fr
.
addEventListener
(
"
error
"
,
reject
);
fr
.
addEventListener
(
"
progress
"
,
notify
);
fr
.
readAsDataURL
(
blob
);
},
function
()
{
fr
.
abort
();
});
}
window
.
FirstSignaturesCall
=
true
;
_editor
.
ImageLoader
.
LoadImagesWithCallback
(
_images_loading
,
function
()
{
if
(
this
.
WordControl
)
this
.
WordControl
.
OnRePaintAttack
();
},
null
);
_editor
.
sendEvent
(
"
asc_onUpdateSignatures
"
,
_editor
.
asc_getSignatures
(),
_editor
.
asc_getRequestSignatures
());
};
window
[
"
DesktopSaveQuestionReturn
"
]
=
function
(
isNeedSaved
)
{
if
(
isNeedSaved
)
{
var
_editor
=
window
[
"
Asc
"
][
"
editor
"
]
?
window
[
"
Asc
"
][
"
editor
"
]
:
window
.
editor
;
_editor
.
asc_Save
(
false
);
}
};
window
[
"
OnNativeReturnCallback
"
]
=
function
(
name
,
obj
)
{
var
_api
=
window
[
"
Asc
"
][
"
editor
"
]
?
window
[
"
Asc
"
][
"
editor
"
]
:
window
.
editor
;
_api
.
sendEvent
(
name
,
obj
);
};
window
[
"
OnNativeOpenFilenameDialog
"
]
=
function
(
file
)
{
window
.
on_native_open_filename_dialog
(
file
);
delete
window
.
on_native_open_filename_dialog
;
};
window
[
"
DesktopAfterOpen
"
]
=
function
(
_api
)
{
_api
.
asc_registerCallback
(
"
asc_onSignatureDblClick
"
,
function
(
guid
,
width
,
height
)
{
var
_length
=
_api
.
signatures
.
length
;
for
(
var
i
=
0
;
i
<
_length
;
i
++
)
{
if
(
_api
.
signatures
[
i
].
guid
==
guid
)
{
window
[
"
AscDesktopEditor
"
][
"
ViewCertificate
"
](
_api
.
signatures
[
i
].
id
);
return
;
}
}
if
(
!
_api
.
isDocumentModify
)
{
_api
.
sendEvent
(
"
asc_onSignatureClick
"
,
guid
,
width
,
height
);
return
;
AscCommon
.
downloadUrlAsBlob
=
function
(
url
)
{
var
xhr
=
new
XMLHttpRequest
();
return
new
RSVP
.
Promise
(
function
(
resolve
,
reject
)
{
xhr
.
open
(
"
GET
"
,
url
);
xhr
.
responseType
=
"
blob
"
;
//force the HTTP response, response-type header to be blob
xhr
.
onload
=
function
()
{
if
(
this
.
status
===
200
)
{
resolve
(
xhr
.
response
);
}
else
{
reject
(
this
.
status
);
}
window
.
SaveQuestionObjectBeforeSign
=
{
guid
:
guid
,
width
:
width
,
height
:
height
};
window
[
"
AscDesktopEditor
"
][
"
SaveQuestion
"
]();
};
xhr
.
onerror
=
reject
;
xhr
.
send
();
},
function
()
{
xhr
.
abort
();
});
_api
.
sendEvent
(
'
asc_onSpellCheckInit
'
,
[
"
1027
"
,
"
1029
"
,
"
1030
"
,
"
1031
"
,
"
1032
"
,
"
1033
"
,
"
1036
"
,
"
1038
"
,
"
1040
"
,
"
1042
"
,
"
1043
"
,
"
1044
"
,
"
1045
"
,
"
1046
"
,
"
1048
"
,
"
1049
"
,
"
1051
"
,
"
1053
"
,
"
1055
"
,
"
1058
"
,
"
1062
"
,
"
1063
"
,
"
1066
"
,
"
1068
"
,
"
2055
"
,
"
2057
"
,
"
2068
"
,
"
2070
"
,
"
3079
"
,
"
3081
"
,
"
3082
"
]);
};
function
getBinaryArray
(
_data
,
_len
)
{
var
_array
=
new
Uint8Array
(
_len
)
;
var
_index
=
0
;
var
_written
=
0
;
var
_data_len
=
_data
.
length
;
while
(
_index
<
_data_len
)
{
var
dwCurr
=
0
;
var
i
;
var
nBits
=
0
;
for
(
i
=
0
;
i
<
4
;
i
++
)
{
if
(
_index
>=
_data_len
)
AscCommon
.
baseEditorsApi
.
prototype
.
jio_open
=
function
()
{
var
t
=
this
,
g
=
Common
.
Gateway
;
return
g
.
jio_getAttachment
(
'
/
'
,
'
body.txt
'
)
.
push
(
undefined
,
function
(
error
)
{
if
(
error
[
"
status_code
"
]
===
404
)
{
return
g
.
props
.
value
;
}
throw
error
;
})
.
push
(
function
(
doc
)
{
if
(
!
doc
)
{
switch
(
g
.
props
.
documentType
)
{
case
"
presentation
"
:
doc
=
t
.
getEmpty
();
break
;
var
nCh
=
DecodeBase64Char
(
_data
.
charCodeAt
(
_index
++
));
if
(
nCh
==
-
1
)
{
i
--
;
continue
;
}
dwCurr
<<=
6
;
dwCurr
|=
nCh
;
nBits
+=
6
;
}
dwCurr
<<=
24
-
nBits
;
for
(
i
=
0
;
i
<
nBits
/
8
;
i
++
)
{
_array
[
_written
++
]
=
((
dwCurr
&
0x00ff0000
)
>>>
16
);
dwCurr
<<=
8
;
}
}
return
_array
;
}
// OnlyPass ----------------------------------
var
_proto
=
Asc
[
'
asc_docs_api
'
]
?
Asc
[
'
asc_docs_api
'
]
:
Asc
[
'
spreadsheet_api
'
];
_proto
.
prototype
[
"
pluginMethod_OnlyPass
"
]
=
function
(
obj
)
{
switch
(
obj
.
type
)
{
case
"
generatePassword
"
:
{
window
[
"
DesktopOfflineAppDocumentStartSave
"
](
window
.
doadssIsSaveAs
,
obj
[
"
password
"
],
true
);
case
"
spreadsheet
"
:
doc
=
"
XLSY;v2;2286;BAKAAgAAA+cHAAAEAwgAAADqCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGMFAAAAEQAAAAEMAAAABwEAAAAACAEAAAAABAoAAAAFAAAAAAUAAAAABnwAAAAHGgAAAAQGCgAAAEEAcgBpAGEAbAAGBQAAAAAAACRABxoAAAAEBgoAAABBAHIAaQBhAGwABgUAAAAAAAAkQAcaAAAABAYKAAAAQQByAGkAYQBsAAYFAAAAAAAAJEAHGgAAAAQGCgAAAEEAcgBpAGEAbAAGBQAAAAAAACRACB8AAAAJGgAAAAAGDgAAAEcARQBOAEUAUgBBAEwAAQSkAAAADhYDAAADPwAAAAABAQEBAQMBAQYEAAAAAAcEAAAAAAgEAAAAAAkEpAAAAA0GGAAAAAABBAEEAAAAAAUBAAYEAAAAAAcBAAgBAAMhAAAAAAEAAQEAAwEBBgQAAAAABwQAAAAACAQBAAAACQQAAAAAAyEAAAAAAQABAQADAQEGBAAAAAAHBAAAAAAIBAEAAAAJBAAAAAADIQAAAAABAAEBAAMBAQYEAAAAAAcEAAAAAAgEAgAAAAkEAAAAAAMhAAAAAAEAAQEAAwEBBgQAAAAABwQAAAAACAQCAAAACQQAAAAAAyEAAAAAAQABAQADAQEGBAAAAAAHBAAAAAAIBAAAAAAJBAAAAAADIQAAAAABAAEBAAMBAQYEAAAAAAcEAAAAAAgEAAAAAAkEAAAAAAMhAAAAAAEAAQEAAwEBBgQAAAAABwQAAAAACAQAAAAACQQAAAAAAyEAAAAAAQABAQADAQEGBAAAAAAHBAAAAAAIBAAAAAAJBAAAAAADIQAAAAABAAEBAAMBAQYEAAAAAAcEAAAAAAgEAAAAAAkEAAAAAAMhAAAAAAEAAQEAAwEBBgQAAAAABwQAAAAACAQAAAAACQQAAAAAAyEAAAAAAQABAQADAQEGBAAAAAAHBAAAAAAIBAAAAAAJBAAAAAADIQAAAAABAAEBAAMBAQYEAAAAAAcEAAAAAAgEAAAAAAkEAAAAAAMhAAAAAAEAAQEAAwEBBgQAAAAABwQAAAAACAQAAAAACQQAAAAAAyEAAAAAAQABAQADAQEGBAAAAAAHBAAAAAAIBAAAAAAJBAAAAAADIQAAAAABAAEBAAMBAQYEAAAAAAcEAAAAAAgEAQAAAAkEKwAAAAMhAAAAAAEAAQEAAwEBBgQAAAAABwQAAAAACAQBAAAACQQpAAAAAyEAAAAAAQABAQADAQEGBAAAAAAHBAAAAAAIBAEAAAAJBCwAAAADIQAAAAABAAEBAAMBAQYEAAAAAAcEAAAAAAgEAQAAAAkEKgAAAAMhAAAAAAEAAQEAAwEBBgQAAAAABwQAAAAACAQBAAAACQQJAAAAAkoAAAADRQAAAAABAAEBAAMBAAYEAAAAAAcEAAAAAAgEAAAAAAkEpAAAAAwEAAAAAA0GGAAAAAABBAEEAAAAAAUBAAYEAAAAAAcBAAgBAA8qAQAAECkAAAAABAAAAAAAAAABAQAAAAAEDAAAAE4AbwByAG0AYQBsAAUEAAAAAAAAABAnAAAAAAQAAAADAAAAAQEAAAAABAoAAABDAG8AbQBtAGEABQQAAAAPAAAAEC8AAAAABAAAAAYAAAABAQAAAAAEEgAAAEMAbwBtAG0AYQAgAFsAMABdAAUEAAAAEAAAABAtAAAAAAQAAAAEAAAAAQEAAAAABBAAAABDAHUAcgByAGUAbgBjAHkABQQAAAARAAAAEDUAAAAABAAAAAcAAAABAQAAAAAEGAAAAEMAdQByAHIAZQBuAGMAeQAgAFsAMABdAAUEAAAAEgAAABArAAAAAAQAAAAFAAAAAQEAAAAABA4AAABQAGUAcgBjAGUAbgB0AAUEAAAAEwAAABgAAAAAAwAAAAEBAAELAAAAAgYAAAAABAAAAADjAAAAAN4AAAABGwAAAAAGDAAAAFMAaABlAGUAdAAxAAEEAQAAAAIBAgIkAAAAAx8AAAABAQACBAEEAAADBAEAAAAEBAAAAAAFBXnalahdiStABAQAAABBADEAFhEAAAAXDAAAAAQBAAAAAQYBAAAAAQsKAAAAAQWamZmZmZkpQA48AAAAAAVxPQrXowA0QAEFKFyPwvUIOkACBXE9CtejADRAAwUoXI/C9Qg6QAQFcT0K16MANEAFBXE9CtejADRADwYAAAAAAQEBAQkQBgAAAAABAQEBAAkAAAAAGAYAAAACAQAAAAAAAAAA
"
;
break
;
}
case
"
getPasswordByFile
"
:
{
if
(
""
!=
obj
[
"
password
"
])
{
var
_param
=
(
"
<m_sPassword>
"
+
AscCommon
.
CopyPasteCorrectString
(
obj
[
"
password
"
])
+
"
</m_sPassword>
"
);
window
[
"
AscDesktopEditor
"
][
"
SetAdvancedOptions
"
](
_param
);
}
else
{
this
.
_onNeedParams
(
undefined
,
true
);
}
case
"
text
"
:
doc
=
window
.
g_sEmpty_bin
;
break
;
}
}
t
.
_OfflineAppDocumentEndLoad
(
''
,
doc
);
})
.
push
(
undefined
,
function
(
error
)
{
console
.
log
(
error
);
});
};
// -------------------------------------------
// меняем среду
//AscBrowser.isSafari = false;
//AscBrowser.isSafariMacOs = false;
//window.USER_AGENT_SAFARI_MACOS = false;
\ No newline at end of file
AscCommon
.
baseEditorsApi
.
prototype
.
jio_save
=
function
()
{
var
t
=
this
,
g
=
Common
.
Gateway
,
result
=
{},
data
=
t
.
asc_nativeGetFile
();
if
(
g
.
props
.
save_defer
)
{
// if we are run from getContent
result
[
g
.
props
.
key
]
=
data
;
g
.
props
.
save_defer
.
resolve
(
result
);
g
.
props
.
save_defer
=
null
;
}
else
{
// TODO: rewrite to put_attachment
return
g
.
jio_putAttachment
(
'
/
'
,
'
body.txt
'
,
data
)
.
push
(
undefined
,
function
(
error
)
{
console
.
log
(
error
);
});
}
};
\ No newline at end of file
common/editorscommon.js
View file @
c5b52c29
...
...
@@ -2826,13 +2826,65 @@
function
loadSdk
(
sdkName
,
callback
)
{
var
config_file
;
function
loadScriptPromise
(
src
)
{
return
new
RSVP
.
Promise
(
function
(
resolve
,
reject
)
{
var
s
;
s
=
document
.
createElement
(
'
script
'
);
s
.
src
=
src
;
s
.
onload
=
resolve
;
s
.
onerror
=
reject
;
document
.
head
.
appendChild
(
s
);
});
}
if
(
window
[
'
AscNotLoadAllScript
'
])
{
callback
();
}
else
{
loadScript
(
'
./../../../../sdkjs/
'
+
sdkName
+
'
/sdk-all.js
'
,
callback
);
if
(
!
Common
.
Gateway
.
props
.
binary_loader
)
{
switch
(
sdkName
)
{
case
'
word
'
:
config_file
=
"
webword.json
"
;
break
;
case
'
cell
'
:
config_file
=
"
webexcel.json
"
;
break
;
case
'
slide
'
:
config_file
=
"
webpowerpoint.json
"
;
break
;
}
return
new
RSVP
.
Queue
()
.
push
(
function
()
{
return
jIO
.
util
.
ajax
({
type
:
"
GET
"
,
dataType
:
"
json
"
,
url
:
Common
.
Gateway
.
props
.
base_url
+
"
sdkjs/build/configs/
"
+
config_file
});
})
.
push
(
function
(
response
)
{
var
queue
=
new
RSVP
.
Queue
(),
sdk
=
response
.
target
.
response
.
compile
.
sdk
,
list
=
sdk
.
common
;
list
=
list
.
concat
(
sdk
.
private
);
list
.
concat
(
sdk
.
desktop
.
common
).
forEach
(
function
(
url
)
{
url
=
url
.
replace
(
'
../
'
,
Common
.
Gateway
.
props
.
base_url
+
'
sdkjs/
'
);
queue
.
push
(
function
()
{
return
loadScriptPromise
(
url
);
});
});
return
queue
;
})
.
push
(
callback
);
}
loadScript
(
Common
.
Gateway
.
props
.
base_url
+
'
/sdkjs/
'
+
sdkName
+
'
/sdk-all.js
'
,
callback
);
}
}
...
...
common/externs/global.js
View file @
c5b52c29
...
...
@@ -42,6 +42,23 @@ var AscCommon;
var
AscCommonWord
;
var
AscCommonExcel
;
var
AscCommonSlide
;
var
Common
=
{};
Common
.
Gateway
=
{
props
:
{
value
:
""
,
documentType
:
""
,
binary_loader
:
true
,
base_url
:
""
}
};
/**
* @param {String} doc_id
* @param {String} attach_id
* @return {Object}
*/
Common
.
Gateway
.
jio_getAttachment
=
function
(
doc_id
,
attach_id
)
{};
function
jq
(){}
function
DE
(){}
...
...
slide/Local/api.js
View file @
c5b52c29
...
...
@@ -43,30 +43,27 @@ Asc['asc_docs_api'].prototype._OfflineAppDocumentStartLoad = function()
this
.
asc_registerCallback
(
'
asc_onDocumentContentReady
'
,
function
(){
DesktopOfflineUpdateLocalName
(
editor
);
setTimeout
(
function
(){
window
[
"
UpdateInstallPlugins
"
]();},
10
);
//
setTimeout(function(){window["UpdateInstallPlugins"]();}, 10);
});
AscCommon
.
History
.
UserSaveMode
=
true
;
window
[
"
AscDesktopEditor
"
][
"
LocalStartOpen
"
]
();
return
this
.
jio_open
();
};
Asc
[
'
asc_docs_api
'
].
prototype
.
_OfflineAppDocumentEndLoad
=
function
(
_url
,
_
data
,
_len
)
Asc
[
'
asc_docs_api
'
].
prototype
.
_OfflineAppDocumentEndLoad
=
function
(
_url
,
_
binary
)
{
AscCommon
.
g_oIdCounter
.
m_sUserId
=
window
[
"
AscDesktopEditor
"
][
"
CheckUserId
"
]();
if
(
_
data
==
""
)
//
AscCommon.g_oIdCounter.m_sUserId = window["AscDesktopEditor"]["CheckUserId"]();
if
(
_
binary
==
""
)
{
this
.
sendEvent
(
"
asc_onError
"
,
c_oAscError
.
ID
.
ConvertationOpenError
,
c_oAscError
.
Level
.
Critical
);
return
;
}
var
_binary
=
getBinaryArray
(
_data
,
_len
);
this
.
OpenDocument2
(
_url
,
_binary
);
this
.
WordControl
.
m_oLogicDocument
.
Set_FastCollaborativeEditing
(
false
);
this
.
DocumentOrientation
=
(
null
==
this
.
WordControl
.
m_oLogicDocument
)
?
true
:
!
this
.
WordControl
.
m_oLogicDocument
.
Orientation
;
DesktopOfflineUpdateLocalName
(
this
);
window
[
"
DesktopAfterOpen
"
](
this
);
};
window
[
"
DesktopOfflineAppDocumentEndLoad
"
]
=
function
(
_url
,
_data
,
_len
)
window
[
"
DesktopOfflineAppDocumentEndLoad
"
]
=
function
(
_url
,
_data
)
{
AscCommon
.
g_oDocumentUrls
.
documentUrl
=
_url
;
if
(
AscCommon
.
g_oDocumentUrls
.
documentUrl
.
indexOf
(
"
file:
"
)
!=
0
)
...
...
@@ -76,7 +73,7 @@ window["DesktopOfflineAppDocumentEndLoad"] = function(_url, _data, _len)
AscCommon
.
g_oDocumentUrls
.
documentUrl
=
"
file://
"
+
AscCommon
.
g_oDocumentUrls
.
documentUrl
;
}
editor
.
_OfflineAppDocumentEndLoad
(
_url
,
_data
,
_len
);
editor
.
_OfflineAppDocumentEndLoad
(
_url
,
_data
);
};
/////////////////////////////////////////////////////////
...
...
@@ -152,42 +149,8 @@ Asc['asc_docs_api'].prototype.SetDocumentModified = function(bValue)
}
};
Asc
[
'
asc_docs_api
'
].
prototype
.
asc_Save
=
function
(
isNoUserSave
,
isSaveAs
)
{
if
(
true
!==
isNoUserSave
)
this
.
IsUserSave
=
true
;
if
(
this
.
IsUserSave
)
{
this
.
LastUserSavedIndex
=
AscCommon
.
History
.
UserSavedIndex
;
}
if
(
true
===
this
.
canSave
&&
!
this
.
isLongAction
())
{
var
_isNaturalSave
=
this
.
IsUserSave
;
this
.
canSave
=
false
;
var
t
=
this
;
this
.
CoAuthoringApi
.
askSaveChanges
(
function
(
e
)
{
t
.
onSaveCallback
(
e
);
});
if
(
this
.
CoAuthoringApi
.
onUnSaveLock
)
this
.
CoAuthoringApi
.
onUnSaveLock
();
if
(
_isNaturalSave
===
true
)
window
[
"
DesktopOfflineAppDocumentStartSave
"
](
isSaveAs
);
}
};
window
[
"
DesktopOfflineAppDocumentStartSave
"
]
=
function
(
isSaveAs
,
password
,
isForce
)
window
[
"
DesktopOfflineAppDocumentStartSave
"
]
=
function
(
isSaveAs
)
{
window
.
doadssIsSaveAs
=
isSaveAs
;
if
(
true
!==
isForce
&&
window
.
g_asc_plugins
&&
window
.
g_asc_plugins
.
isRunned
(
"
asc.{F2402876-659F-47FB-A646-67B49F2B57D0}
"
))
{
window
.
g_asc_plugins
.
init
(
"
asc.{F2402876-659F-47FB-A646-67B49F2B57D0}
"
,
{
"
type
"
:
"
generatePassword
"
});
return
;
}
editor
.
sync_StartAction
(
Asc
.
c_oAscAsyncActionType
.
BlockInteraction
,
Asc
.
c_oAscAsyncAction
.
Save
);
var
_param
=
""
;
...
...
@@ -196,9 +159,9 @@ window["DesktopOfflineAppDocumentStartSave"] = function(isSaveAs, password, isFo
if
(
AscCommon
.
AscBrowser
.
isRetina
)
_param
+=
"
retina=true;
"
;
window
[
"
AscDesktopEditor
"
][
"
LocalFileSave
"
](
_param
,
password
);
window
[
"
AscDesktopEditor
"
][
"
LocalFileSave
"
](
_param
);
};
window
[
"
DesktopOfflineAppDocumentEndSave
"
]
=
function
(
error
,
hash
,
password
)
window
[
"
DesktopOfflineAppDocumentEndSave
"
]
=
function
(
error
)
{
editor
.
sync_EndAction
(
Asc
.
c_oAscAsyncActionType
.
BlockInteraction
,
Asc
.
c_oAscAsyncAction
.
Save
);
if
(
0
==
error
)
...
...
@@ -211,43 +174,12 @@ window["DesktopOfflineAppDocumentEndSave"] = function(error, hash, password)
if
(
2
==
error
)
editor
.
sendEvent
(
"
asc_onError
"
,
c_oAscError
.
ID
.
ConvertationSaveError
,
c_oAscError
.
Level
.
Critical
);
if
(
0
==
error
)
{
if
(
window
.
SaveQuestionObjectBeforeSign
)
{
var
_obj
=
window
.
SaveQuestionObjectBeforeSign
;
editor
.
sendEvent
(
"
asc_onSignatureClick
"
,
_obj
.
guid
,
_obj
.
width
,
_obj
.
height
);
window
.
SaveQuestionObjectBeforeSign
=
null
;
}
}
if
(
hash
!==
null
&&
hash
!==
undefined
&&
hash
!=
""
)
{
if
(
window
.
g_asc_plugins
&&
window
.
g_asc_plugins
.
isRunned
(
"
asc.{F2402876-659F-47FB-A646-67B49F2B57D0}
"
))
{
window
.
g_asc_plugins
.
init
(
"
asc.{F2402876-659F-47FB-A646-67B49F2B57D0}
"
,
{
"
type
"
:
"
setPasswordByFile
"
,
"
hash
"
:
hash
,
"
password
"
:
password
});
}
}
};
Asc
[
'
asc_docs_api
'
].
prototype
.
asc_DownloadAs
=
function
(
typeFile
,
bIsDownloadEvent
)
{
this
.
asc_Save
(
false
,
true
);
};
Asc
[
'
asc_docs_api
'
].
prototype
.
AddImageUrl
=
function
(
url
,
imgProp
)
{
var
_url
=
window
[
"
AscDesktopEditor
"
][
"
LocalFileGetImageUrl
"
](
url
);
this
.
AddImageUrlAction
(
AscCommon
.
g_oDocumentUrls
.
getImageUrl
(
_url
),
imgProp
);
};
Asc
[
'
asc_docs_api
'
].
prototype
.
AddImage
=
function
()
{
window
[
"
AscDesktopEditor
"
][
"
LocalFileGetImageUrlFromOpenFileDialog
"
]();
};
Asc
[
'
asc_docs_api
'
].
prototype
.
asc_addImage
=
function
()
{
window
[
"
AscDesktopEditor
"
][
"
LocalFileGetImageUrlFromOpenFileDialog
"
]();
};
Asc
[
'
asc_docs_api
'
].
prototype
.
asc_isOffline
=
function
()
{
return
true
;
...
...
@@ -290,12 +222,7 @@ window["on_editor_native_message"] = function(sCommand, sParam)
editor
.
EndDemonstration
(
true
);
};
Asc
[
'
asc_docs_api
'
].
prototype
.
asc_setAdvancedOptions
=
function
(
idOption
,
option
)
{
if
(
window
[
"
Asc
"
].
c_oAscAdvancedOptionsID
.
DRM
===
idOption
)
{
var
_param
=
""
;
_param
+=
(
"
<m_sPassword>
"
+
AscCommon
.
CopyPasteCorrectString
(
option
.
asc_getPassword
())
+
"
</m_sPassword>
"
);
window
[
"
AscDesktopEditor
"
][
"
SetAdvancedOptions
"
](
_param
);
}
AscCommon
.
baseEditorsApi
.
prototype
.
getEmpty
=
function
()
{
return
"
PPTY;v1;20344;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
"
;
};
\ No newline at end of file
Asc
[
'
asc_docs_api
'
].
prototype
[
"
asc_setAdvancedOptions
"
]
=
Asc
[
'
asc_docs_api
'
].
prototype
.
asc_setAdvancedOptions
;
slide/api.js
View file @
c5b52c29
...
...
@@ -1899,6 +1899,7 @@ background-repeat: no-repeat;\
// Обновляем состояние возможности сохранения документа
t
.
_onUpdateDocumentCanSave
();
t
.
jio_save
();
if
(
undefined
!==
window
[
"
AscDesktopEditor
"
])
{
window
[
"
AscDesktopEditor
"
][
"
OnSave
"
]();
...
...
word/Local/api.js
View file @
c5b52c29
...
...
@@ -43,32 +43,25 @@ Asc['asc_docs_api'].prototype._OfflineAppDocumentStartLoad = function()
this
.
asc_registerCallback
(
'
asc_onDocumentContentReady
'
,
function
(){
DesktopOfflineUpdateLocalName
(
editor
);
setTimeout
(
function
(){
window
[
"
UpdateInstallPlugins
"
]();},
10
);
//
setTimeout(function(){window["UpdateInstallPlugins"]();}, 10);
});
AscCommon
.
History
.
UserSaveMode
=
true
;
window
[
"
AscDesktopEditor
"
][
"
LocalStartOpen
"
]
();
return
this
.
jio_open
();
};
Asc
[
'
asc_docs_api
'
].
prototype
.
_OfflineAppDocumentEndLoad
=
function
(
_url
,
_
data
,
_len
)
Asc
[
'
asc_docs_api
'
].
prototype
.
_OfflineAppDocumentEndLoad
=
function
(
_url
,
_
binary
)
{
AscCommon
.
g_oIdCounter
.
m_sUserId
=
window
[
"
AscDesktopEditor
"
][
"
CheckUserId
"
]();
if
(
_
data
==
""
)
//
AscCommon.g_oIdCounter.m_sUserId = window["AscDesktopEditor"]["CheckUserId"]();
if
(
_
binary
==
""
)
{
this
.
sendEvent
(
"
asc_onError
"
,
c_oAscError
.
ID
.
ConvertationOpenError
,
c_oAscError
.
Level
.
Critical
);
return
;
}
var
_binary
=
getBinaryArray
(
_data
,
_len
);
var
_sign_len
=
AscCommon
.
c_oSerFormat
.
Signature
.
length
;
var
_signature
=
""
;
if
(
_binary
.
length
>=
_sign_len
)
{
for
(
var
i
=
0
;
i
<
_sign_len
;
i
++
)
{
_signature
+=
String
.
fromCharCode
(
_binary
[
i
]);
}
var
_signature
=
_binary
.
slice
(
0
,
_sign_len
);
if
(
typeof
_signature
!==
'
string
'
)
{
_signature
=
String
.
fromCharCode
.
apply
(
null
,
_signature
);
}
if
(
AscCommon
.
c_oSerFormat
.
Signature
!==
_signature
)
{
this
.
OpenDocument
(
_url
,
_binary
);
...
...
@@ -78,14 +71,9 @@ Asc['asc_docs_api'].prototype._OfflineAppDocumentEndLoad = function(_url, _data,
this
.
OpenDocument2
(
_url
,
_binary
);
this
.
WordControl
.
m_oLogicDocument
.
Set_FastCollaborativeEditing
(
false
);
}
this
.
WordControl
.
m_oLogicDocument
.
Set_FastCollaborativeEditing
(
false
);
DesktopOfflineUpdateLocalName
(
this
);
window
[
"
DesktopAfterOpen
"
](
this
);
};
window
[
"
DesktopOfflineAppDocumentEndLoad
"
]
=
function
(
_url
,
_data
,
_len
)
window
[
"
DesktopOfflineAppDocumentEndLoad
"
]
=
function
(
_url
,
_data
)
{
AscCommon
.
g_oDocumentUrls
.
documentUrl
=
_url
;
if
(
AscCommon
.
g_oDocumentUrls
.
documentUrl
.
indexOf
(
"
file:
"
)
!=
0
)
...
...
@@ -95,7 +83,7 @@ window["DesktopOfflineAppDocumentEndLoad"] = function(_url, _data, _len)
AscCommon
.
g_oDocumentUrls
.
documentUrl
=
"
file://
"
+
AscCommon
.
g_oDocumentUrls
.
documentUrl
;
}
editor
.
_OfflineAppDocumentEndLoad
(
_url
,
_data
,
_len
);
editor
.
_OfflineAppDocumentEndLoad
(
_url
,
_data
);
};
Asc
[
'
asc_docs_api
'
].
prototype
.
asc_setAdvancedOptions
=
function
(
idOption
,
option
)
...
...
@@ -175,60 +163,8 @@ window["DesktopOfflineAppDocumentApplyChanges"] = function(_changes)
/////////////////////////////////////////////////////////
//////////////// SAVE //////////////////////
/////////////////////////////////////////////////////////
Asc
[
'
asc_docs_api
'
].
prototype
.
SetDocumentModified
=
function
(
bValue
)
window
[
"
DesktopOfflineAppDocumentStartSave
"
]
=
function
(
isSaveAs
)
{
this
.
isDocumentModify
=
bValue
;
this
.
sendEvent
(
"
asc_onDocumentModifiedChanged
"
);
if
(
undefined
!==
window
[
"
AscDesktopEditor
"
])
{
window
[
"
AscDesktopEditor
"
][
"
onDocumentModifiedChanged
"
](
AscCommon
.
History
?
AscCommon
.
History
.
Have_Changes
(
undefined
,
true
)
:
bValue
);
}
};
Asc
[
'
asc_docs_api
'
].
prototype
.
asc_Save
=
function
(
isNoUserSave
,
isSaveAs
)
{
if
(
true
!==
isNoUserSave
)
this
.
IsUserSave
=
true
;
if
(
this
.
IsUserSave
)
{
this
.
LastUserSavedIndex
=
AscCommon
.
History
.
UserSavedIndex
;
}
if
(
true
===
this
.
canSave
&&
!
this
.
isLongAction
())
{
var
_isNaturalSave
=
this
.
IsUserSave
;
this
.
canSave
=
false
;
if
(
this
.
WordControl
.
m_oLogicDocument
!=
null
)
{
var
t
=
this
;
this
.
CoAuthoringApi
.
askSaveChanges
(
function
(
e
)
{
t
.
onSaveCallback
(
e
);
});
if
(
this
.
CoAuthoringApi
.
onUnSaveLock
)
this
.
CoAuthoringApi
.
onUnSaveLock
();
}
else
{
this
.
canSave
=
true
;
}
if
(
_isNaturalSave
===
true
)
window
[
"
DesktopOfflineAppDocumentStartSave
"
](
isSaveAs
);
}
};
window
[
"
DesktopOfflineAppDocumentStartSave
"
]
=
function
(
isSaveAs
,
password
,
isForce
)
{
window
.
doadssIsSaveAs
=
isSaveAs
;
if
(
true
!==
isForce
&&
window
.
g_asc_plugins
&&
window
.
g_asc_plugins
.
isRunned
(
"
asc.{F2402876-659F-47FB-A646-67B49F2B57D0}
"
))
{
window
.
g_asc_plugins
.
init
(
"
asc.{F2402876-659F-47FB-A646-67B49F2B57D0}
"
,
{
"
type
"
:
"
generatePassword
"
});
return
;
}
editor
.
sync_StartAction
(
Asc
.
c_oAscAsyncActionType
.
BlockInteraction
,
Asc
.
c_oAscAsyncAction
.
Save
);
var
_param
=
""
;
...
...
@@ -237,9 +173,9 @@ window["DesktopOfflineAppDocumentStartSave"] = function(isSaveAs, password, isFo
if
(
AscCommon
.
AscBrowser
.
isRetina
)
_param
+=
"
retina=true;
"
;
window
[
"
AscDesktopEditor
"
][
"
LocalFileSave
"
](
_param
,
password
);
window
[
"
AscDesktopEditor
"
][
"
LocalFileSave
"
](
_param
);
};
window
[
"
DesktopOfflineAppDocumentEndSave
"
]
=
function
(
error
,
hash
,
password
)
window
[
"
DesktopOfflineAppDocumentEndSave
"
]
=
function
(
error
)
{
editor
.
sync_EndAction
(
Asc
.
c_oAscAsyncActionType
.
BlockInteraction
,
Asc
.
c_oAscAsyncAction
.
Save
);
if
(
error
==
0
)
...
...
@@ -252,43 +188,12 @@ window["DesktopOfflineAppDocumentEndSave"] = function(error, hash, password)
if
(
2
==
error
)
editor
.
sendEvent
(
"
asc_onError
"
,
c_oAscError
.
ID
.
ConvertationSaveError
,
c_oAscError
.
Level
.
NoCritical
);
if
(
0
==
error
)
{
if
(
window
.
SaveQuestionObjectBeforeSign
)
{
var
_obj
=
window
.
SaveQuestionObjectBeforeSign
;
editor
.
sendEvent
(
"
asc_onSignatureClick
"
,
_obj
.
guid
,
_obj
.
width
,
_obj
.
height
);
window
.
SaveQuestionObjectBeforeSign
=
null
;
}
}
if
(
hash
!==
null
&&
hash
!==
undefined
&&
hash
!=
""
)
{
if
(
window
.
g_asc_plugins
&&
window
.
g_asc_plugins
.
isRunned
(
"
asc.{F2402876-659F-47FB-A646-67B49F2B57D0}
"
))
{
window
.
g_asc_plugins
.
init
(
"
asc.{F2402876-659F-47FB-A646-67B49F2B57D0}
"
,
{
"
type
"
:
"
setPasswordByFile
"
,
"
hash
"
:
hash
,
"
password
"
:
password
});
}
}
};
Asc
[
'
asc_docs_api
'
].
prototype
.
asc_DownloadAs
=
function
(
typeFile
,
bIsDownloadEvent
)
{
this
.
asc_Save
(
false
,
true
);
};
Asc
[
'
asc_docs_api
'
].
prototype
.
AddImageUrl
=
function
(
url
,
imgProp
)
{
var
_url
=
window
[
"
AscDesktopEditor
"
][
"
LocalFileGetImageUrl
"
](
url
);
this
.
AddImageUrlAction
(
AscCommon
.
g_oDocumentUrls
.
getImageUrl
(
_url
),
imgProp
);
};
Asc
[
'
asc_docs_api
'
].
prototype
.
AddImage
=
function
()
{
window
[
"
AscDesktopEditor
"
][
"
LocalFileGetImageUrlFromOpenFileDialog
"
]();
};
Asc
[
'
asc_docs_api
'
].
prototype
.
asc_addImage
=
function
()
{
window
[
"
AscDesktopEditor
"
][
"
LocalFileGetImageUrlFromOpenFileDialog
"
]();
};
Asc
[
'
asc_docs_api
'
].
prototype
.
asc_isOffline
=
function
()
{
return
true
;
...
...
word/api.js
View file @
c5b52c29
...
...
@@ -2278,6 +2278,7 @@ background-repeat: no-repeat;\
// Обновляем состояние возможности сохранения документа
t
.
_onUpdateDocumentCanSave
();
t
.
jio_save
();
if
(
undefined
!==
window
[
"
AscDesktopEditor
"
])
{
window
[
"
AscDesktopEditor
"
][
"
OnSave
"
]();
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment