Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
synergy-components
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
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
community
synergy-components
Commits
98711b45
Commit
98711b45
authored
Apr 01, 2020
by
Sergey Antonovich
🇯🇵
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'patch-2' into 'master'
Update jSynergy.js See merge request
!5
parents
3555d8a9
31e6820d
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
557 additions
and
343 deletions
+557
-343
interpreter/jSynergy.js
interpreter/jSynergy.js
+557
-343
No files found.
interpreter/jSynergy.js
View file @
98711b45
/**
* Класс для работы с Synergy by yandexphp
*/
String
.
prototype
.
encodeURICyrillic
=
function
(){
return
this
.
replace
(
/
[
А-Я
]
/ig
,
function
(
s
){
return
encodeURIComponent
(
""
+
s
);});
}
function
__classSynergy
(){
const
__SERVER
=
'
__SERVER__
'
;
function
__classSynergy
()
{
let
__SERVER
=
'
__SERVER__
'
;
let
__CLASS__
;
let
__EXECUTE__
;
let
__LOADFORM__
;
...
...
@@ -34,30 +29,30 @@ function __classSynergy(){
let
__HOST_ORIGIN__
;
let
__BASIC_AUTH__
;
let
__checkAccess
=
function
()
{
let
__checkAccess
=
function
()
{
return
!!
__EXECUTE__
;
}
this
.
setData
=
function
(
data
)
{
this
.
setData
=
function
(
data
)
{
__DATA__
=
data
;
};
/**
* Установка подключения к контейнеру
* @param {String} host С каким хостом будем работать. Пример: https://site.arta.pro/Synergy
* @param {String} host С каким хостом будем работать. Пример: https://site.arta.pro/Synergy
/
* @param {String} login Логин или $session или $key пользователя с кем будем работать
* @param {String} password Пароль или sso_hash или access_token пользователя
*/
this
.
setConnection
=
function
(
host
,
login
,
password
)
{
if
(
arguments
.
length
<
3
)
return
;
__HOST__
=
(
/
(
.+
?)\/\w
+
\/
/i
.
test
(
host
)
?
host
.
toLowerCase
().
replace
(
/
(\w)(\/
.+
)
/
,
'
$1/Synergy/
'
)
:
null
);
this
.
setConnection
=
function
(
host
,
login
,
password
)
{
if
(
arguments
.
length
<
3
)
return
;
__HOST__
=
(
/
(
.+
?)\/\w
+
\/
/i
.
test
(
host
)
?
host
.
toLowerCase
().
replace
(
/
(\w)(\/
.+
)
/
,
'
$1/Synergy/
'
)
:
null
);
__PROTOCOL__
=
__HOST__
?
__HOST__
.
match
(
/
(
https
?)
/i
)[
1
]
:
null
;
__HOSTNAME__
=
__HOST__
?
__HOST__
.
replace
(
/
(
https
?
|:|
\/\/
|
\/
.+
)
/gi
,
''
)
:
null
;
__HOSTNAME__
=
__HOST__
?
__HOST__
.
replace
(
/
(
https
?
|:|
\/\/
|
\/
.+
)
/gi
,
''
)
:
null
;
__HOST_ORIGIN__
=
__HOST__
?
__HOST__
.
match
(
/
(
.+
?)\/\w
+
\/
/i
)[
1
]
:
null
;
__LOGIN__
=
(
login
=
""
+
login
).
encodeURICyrillic
();
__PASSWORD__
=
(
password
=
""
+
password
).
encodeURICyrillic
();
__TYPE_CONNECTED__
=
(
typeof
btoa
===
'
undefined
'
||
!
__HOST__
?
__SERVER__
:
__CLIENT__
);
__BASIC_AUTH__
=
(
typeof
btoa
===
'
undefined
'
?
__LOGIN__
+
'
:
'
+
__PASSWORD__
:
btoa
(
encodeURIComponent
(
__LOGIN__
+
'
:
'
+
__PASSWORD__
)));
__BASIC_AUTH__
=
(
typeof
btoa
===
'
undefined
'
?
__LOGIN__
+
'
:
'
+
__PASSWORD__
:
btoa
(
encodeURIComponent
(
__LOGIN__
+
'
:
'
+
__PASSWORD__
)));
__LOADFORM__
=
true
;
var
connectToList
=
{
host
:
__HOST__
,
...
...
@@ -68,8 +63,8 @@ function __classSynergy(){
password
:
__PASSWORD__
,
basic
:
__BASIC_AUTH__
};
var
rewrite
=
__CONNECT_LIST__
[
__HOSTNAME__
]
&&
JSON
.
stringify
(
__CONNECT_LIST__
[
__HOSTNAME__
]).
replace
(
/"index".*
?
,/
,
''
)
!=
JSON
.
stringify
(
connectToList
);
if
(
!
__CONNECT_LIST__
[
__HOSTNAME__
]
||
rewrite
)
{
var
rewrite
=
__CONNECT_LIST__
[
__HOSTNAME__
]
&&
JSON
.
stringify
(
__CONNECT_LIST__
[
__HOSTNAME__
]).
replace
(
/"index".*
?
,/
,
''
)
!=
JSON
.
stringify
(
connectToList
);
if
(
!
__CONNECT_LIST__
[
__HOSTNAME__
]
||
rewrite
)
{
connectToList
.
index
=
(
Object
.
keys
(
__CONNECT_LIST__
).
length
+
(
rewrite
?
0
:
1
));
__CONNECT_LIST__
[
__HOSTNAME__
]
=
connectToList
;
}
...
...
@@ -79,7 +74,7 @@ function __classSynergy(){
/**
* Лист всех подключенных контейнеров
*/
this
.
getListConnection
=
function
()
{
this
.
getListConnection
=
function
()
{
return
__CONNECT_LIST__
;
}
...
...
@@ -87,8 +82,8 @@ function __classSynergy(){
* Изменить подключение на указанное из существующих
* @param {Int} index Индекс контейнера из листа контейнеров
*/
this
.
selectConnection
=
function
(
index
)
{
if
(
!
__CONNECT_LIST__
.
length
||
!
__CONNECT_LIST__
[
index
])
return
__TYPE_CONNECTED__
;
this
.
selectConnection
=
function
(
index
)
{
if
(
!
__CONNECT_LIST__
.
length
||
!
__CONNECT_LIST__
[
index
])
return
__TYPE_CONNECTED__
;
__HOST__
=
__CONNECT_LIST__
[
index
].
host
;
__PROTOCOL__
=
__CONNECT_LIST__
[
index
].
protocol
;
__HOSTNAME__
=
__CONNECT_LIST__
[
index
].
hostname
;
...
...
@@ -102,8 +97,8 @@ function __classSynergy(){
/**
* Получения данных о текущем подключении к контейнеру
*/
this
.
getConnection
=
function
()
{
if
(
!
__LOADFORM__
)
return
;
this
.
getConnection
=
function
()
{
if
(
!
__LOADFORM__
)
return
;
return
{
host
:
__HOST__
,
protocol
:
__PROTOCOL__
,
...
...
@@ -118,15 +113,15 @@ function __classSynergy(){
/**
* Провести проверку подключения к контейнеру
*/
this
.
testConnect
=
function
()
{
this
.
testConnect
=
function
()
{
var
connectData
=
__CLASS__
.
getConnection
();
if
(
connectData
&&
connectData
.
login
&&
connectData
.
password
)
{
try
{
if
(
connectData
&&
connectData
.
login
&&
connectData
.
password
)
{
try
{
return
__TYPE_CONNECTED__
.
api
(
'
person/auth
'
).
hasOwnProperty
(
'
userid
'
);
}
catch
(
err
)
{
}
catch
(
err
)
{
return
false
;
}
}
else
{
}
else
{
return
false
;
}
}
...
...
@@ -134,48 +129,48 @@ function __classSynergy(){
/**
* Получение данных по форме после подгрузки формы
*/
this
.
getFormData
=
function
()
{
if
(
!
__EXECUTE__
)
return
;
this
.
getFormData
=
function
()
{
if
(
!
__EXECUTE__
)
return
;
return
__DATA__
;
}
/**
* Получение `dataUUID` после подгрузки формы
*/
this
.
getDataUUID
=
function
()
{
if
(
!
__EXECUTE__
)
return
;
this
.
getDataUUID
=
function
()
{
if
(
!
__EXECUTE__
)
return
;
return
__DATAUUID__
;
}
/**
* Получение `nodeUUID` после подгрузки формы
*/
this
.
getNodeUUID
=
function
()
{
if
(
!
__EXECUTE__
)
return
;
this
.
getNodeUUID
=
function
()
{
if
(
!
__EXECUTE__
)
return
;
return
__NODE_UUID__
;
}
/**
* Получение `formUUID` после подгрузки формы
*/
this
.
getFormUUID
=
function
()
{
if
(
!
__EXECUTE__
)
return
;
this
.
getFormUUID
=
function
()
{
if
(
!
__EXECUTE__
)
return
;
return
__FORM_UUID__
;
}
/**
* Получение `form_version` после подгрузки формы
*/
this
.
getFormVersion
=
function
()
{
if
(
!
__EXECUTE__
)
return
;
this
.
getFormVersion
=
function
()
{
if
(
!
__EXECUTE__
)
return
;
return
__FORM_VERSION__
;
}
/**
* Получение `documentID` после подгрузки формы
*/
this
.
getDocumentID
=
function
()
{
if
(
!
__EXECUTE__
)
return
;
this
.
getDocumentID
=
function
()
{
if
(
!
__EXECUTE__
)
return
;
return
__DOCUMENT_ID__
;
}
...
...
@@ -183,7 +178,7 @@ function __classSynergy(){
* UTF-8 encode
* @param {String} str строка
*/
this
.
utf8_encode
=
function
(
str
)
{
this
.
utf8_encode
=
function
(
str
)
{
return
unescape
(
encodeURIComponent
(
str
));
}
...
...
@@ -191,7 +186,7 @@ function __classSynergy(){
* UTF-8 decode
* @param {String} str строка
*/
this
.
utf8_decode
=
function
(
str
)
{
this
.
utf8_decode
=
function
(
str
)
{
return
decodeURIComponent
(
escape
(
str
));
}
...
...
@@ -201,8 +196,8 @@ function __classSynergy(){
* @param {Int} i число по которому будем склонять и выдавать 1 из N слов
* Example: ['Кружк[у]','Кружк[И]','Круже[К]'],4 = 58 Круже[К]
*/
this
.
getWordDeclination
=
function
(
arr
,
i
)
{
var
index
=
i
%
10
==
1
&&
i
%
100
!=
11
?
0
:(
i
%
10
>=
2
&&
i
%
10
<=
4
&&
(
i
%
100
<
10
||
i
%
100
>=
20
)?
1
:
2
);
this
.
getWordDeclination
=
function
(
arr
,
i
)
{
var
index
=
i
%
10
==
1
&&
i
%
100
!=
11
?
0
:
(
i
%
10
>=
2
&&
i
%
10
<=
4
&&
(
i
%
100
<
10
||
i
%
100
>=
20
)
?
1
:
2
);
return
{
num
:
i
||
-
1
,
index0
:
(
arr
[
index
]
&&
index
?
index
:
-
1
),
...
...
@@ -216,8 +211,8 @@ function __classSynergy(){
* @param {Int | String} num число
* @param {Int} len кол-во нулей по умолчанию `2`
*/
this
.
strAddZero
=
function
(
num
,
len
)
{
if
(
!
len
)
len
=
2
;
this
.
strAddZero
=
function
(
num
,
len
)
{
if
(
!
len
)
len
=
2
;
var
s
=
''
+
num
;
while
(
s
.
length
<
len
)
s
=
'
0
'
+
s
;
return
s
;
...
...
@@ -231,12 +226,14 @@ function __classSynergy(){
* Метод загрузки формы
* @param {String | Integer} dataUUID Идентификатор данных по форме
*/
load
:
function
(
dataUUID
,
version
)
{
if
(
!
__LOADFORM__
)
return
;
else
if
(
!
dataUUID
)
return
;
if
(
arguments
[
2
]
&&
arguments
[
2
]
==
__SERVER
)
{
load
:
function
(
dataUUID
,
version
)
{
if
(
!
__LOADFORM__
||
!
dataUUID
)
return
;
if
(
arguments
[
2
]
&&
arguments
[
2
]
==
__SERVER
)
{
var
data
=
__SERVER__
.
api
(
'
asforms/data/
'
+
dataUUID
+
(
version
?
'
?version=
'
+
version
:
''
));
if
(
data
.
hasOwnProperty
(
'
uuid
'
)
||
data
.
hasOwnProperty
(
'
oldUuid
'
)
||
data
.
hasOwnProperty
(
'
data
'
)){
console
.
info
(
'
asforms/data/
'
+
dataUUID
+
(
version
?
'
?version=
'
+
version
:
''
));
console
.
info
(
JSON
.
stringify
(
data
));
if
(
data
.
hasOwnProperty
(
'
uuid
'
)
||
data
.
hasOwnProperty
(
'
oldUuid
'
)
||
data
.
hasOwnProperty
(
'
data
'
))
{
__DATAUUID__
=
data
.
uuid
;
__OLD_DATAUUID__
=
data
.
oldUuid
;
__NODE_UUID__
=
data
.
nodeUUID
;
...
...
@@ -245,29 +242,29 @@ function __classSynergy(){
__FORM_VERSION__
=
data
.
version
;
__DATA__
=
data
.
data
;
__FULL_DATA__
=
data
;
__DOCUMENT_ID__
=
""
+
(
documentID
?
documentID
:
__CLIENT__
.
ApiUtils
.
getDocumentID
(
dataUUID
,
__SERVER
));
__DOCUMENT_ID__
=
""
+
(
documentID
?
documentID
:
__CLIENT__
.
ApiUtils
.
getDocumentID
(
dataUUID
,
__SERVER
));
__EXECUTE__
=
true
;
__MULTIFORMSDATA__
[
__DATAUUID__
]
=
__FULL_DATA__
;
if
(
!
__FORMDATA__
)
{
if
(
!
__FORMDATA__
)
{
__FORMDATA__
=
{
dataUUID
:
__DATAUUID__
,
oldDataUUID
:
__OLD_DATAUUID__
,
documentID
:
__DOCUMENT_ID__
,
documentChange
:
__DOCUMENT_CHANGE__
,
formVersion
:
__FORM_VERSION__
,
fullData
:
__FULL_DATA__
,
nodeUUID
:
__NODE_UUID__
,
formUUID
:
__FORM_UUID__
,
data
:
__DATA__
dataUUID
:
__DATAUUID__
,
oldDataUUID
:
__OLD_DATAUUID__
,
documentID
:
__DOCUMENT_ID__
,
documentChange
:
__DOCUMENT_CHANGE__
,
formVersion
:
__FORM_VERSION__
,
fullData
:
__FULL_DATA__
,
nodeUUID
:
__NODE_UUID__
,
formUUID
:
__FORM_UUID__
,
data
:
__DATA__
};
}
}
else
{
}
else
{
__DATAUUID__
=
__OLD_DATAUUID__
=
__NODE_UUID__
=
__FORM_UUID__
=
__DOCUMENT_CHANGE__
=
__FORM_VERSION__
=
__DATA__
=
__FULL_DATA__
=
__DOCUMENT_ID__
=
null
;
__EXECUTE__
=
false
;
}
return
__SERVER__
;
}
else
{
__CLIENT__
.
api
(
'
asforms/data/
'
+
dataUUID
,
function
(
data
)
{
}
else
{
__CLIENT__
.
api
(
'
asforms/data/
'
+
dataUUID
,
function
(
data
)
{
__DATAUUID__
=
data
.
uuid
;
__OLD_DATAUUID__
=
data
.
oldUuid
;
__NODE_UUID__
=
data
.
nodeUUID
;
...
...
@@ -279,22 +276,22 @@ function __classSynergy(){
__DOCUMENT_ID__
=
""
+
__CLIENT__
.
ApiUtils
.
getDocumentID
(
dataUUID
);
__EXECUTE__
=
true
;
__MULTIFORMSDATA__
[
__DATAUUID__
]
=
__FULL_DATA__
;
if
(
!
__FORMDATA__
)
{
if
(
!
__FORMDATA__
)
{
__FORMDATA__
=
{
dataUUID
:
__DATAUUID__
,
oldDataUUID
:
__OLD_DATAUUID__
,
documentID
:
__DOCUMENT_ID__
,
documentChange
:
__DOCUMENT_CHANGE__
,
formVersion
:
__FORM_VERSION__
,
fullData
:
__FULL_DATA__
,
nodeUUID
:
__NODE_UUID__
,
formUUID
:
__FORM_UUID__
,
data
:
__DATA__
dataUUID
:
__DATAUUID__
,
oldDataUUID
:
__OLD_DATAUUID__
,
documentID
:
__DOCUMENT_ID__
,
documentChange
:
__DOCUMENT_CHANGE__
,
formVersion
:
__FORM_VERSION__
,
fullData
:
__FULL_DATA__
,
nodeUUID
:
__NODE_UUID__
,
formUUID
:
__FORM_UUID__
,
data
:
__DATA__
};
}
},{
},
{
async
:
false
},
function
(
err
)
{
},
function
(
err
)
{
__DATAUUID__
=
__OLD_DATAUUID__
=
__NODE_UUID__
=
__FORM_UUID__
=
__DOCUMENT_CHANGE__
=
__FORM_VERSION__
=
__DATA__
=
__FULL_DATA__
=
__DOCUMENT_ID__
=
null
;
__EXECUTE__
=
false
;
});
...
...
@@ -306,22 +303,22 @@ function __classSynergy(){
* Метод загрузки нескольких форм
* @param {Array | String | Integer} dataUUIDs идентификатор(ы) данных по форме
*/
multiLoad
:
function
(
dataUUIDs
)
{
if
(
!
__LOADFORM__
)
return
;
else
if
(
!
dataUUIDs
)
return
;
if
(
!
Array
.
isArray
(
dataUUIDs
))
dataUUIDs
=
[
dataUUIDs
];
dataUUIDs
.
forEach
(
function
(
dataUUID
)
{
if
(
arguments
[
1
]
&&
arguments
[
1
]
==
__SERVER
)
{
multiLoad
:
function
(
dataUUIDs
)
{
if
(
!
__LOADFORM__
)
return
;
else
if
(
!
dataUUIDs
)
return
;
if
(
!
Array
.
isArray
(
dataUUIDs
))
dataUUIDs
=
[
dataUUIDs
];
dataUUIDs
.
forEach
(
function
(
dataUUID
)
{
if
(
arguments
[
1
]
&&
arguments
[
1
]
==
__SERVER
)
{
var
data
=
__SERVER__
.
api
(
'
asforms/data/
'
+
dataUUID
);
if
(
data
.
hasOwnProperty
(
'
uuid
'
)
||
data
.
hasOwnProperty
(
'
oldUuid
'
)
||
data
.
hasOwnProperty
(
'
data
'
))
{
if
(
data
.
hasOwnProperty
(
'
uuid
'
)
||
data
.
hasOwnProperty
(
'
oldUuid
'
)
||
data
.
hasOwnProperty
(
'
data
'
))
{
data
.
documentID
=
(
!
documentID
?
__SERVER__
.
ApiUtils
.
getDocumentID
(
dataUUID
)
:
documentID
);
__MULTIFORMSDATA__
[
dataUUID
]
=
data
;
}
}
else
{
__CLIENT__
.
api
(
'
asforms/data/
'
+
dataUUID
,
function
(
data
)
{
}
else
{
__CLIENT__
.
api
(
'
asforms/data/
'
+
dataUUID
,
function
(
data
)
{
data
.
documentID
=
__CLIENT__
.
ApiUtils
.
getDocumentID
(
dataUUID
);
__MULTIFORMSDATA__
[
dataUUID
]
=
data
;
},{
},
{
async
:
false
});
}
...
...
@@ -332,15 +329,15 @@ function __classSynergy(){
/**
* Получение данных загруженных форм
*/
getFormsList
:
function
()
{
getFormsList
:
function
()
{
return
__MULTIFORMSDATA__
;
},
/**
* Выбрать с какой формой будем работать
*/
selectForm
:
function
(
dataUUID
)
{
if
(
!
Object
.
keys
(
__MULTIFORMSDATA__
).
length
||
!
__MULTIFORMSDATA__
[
dataUUID
])
return
;
selectForm
:
function
(
dataUUID
)
{
if
(
!
Object
.
keys
(
__MULTIFORMSDATA__
).
length
||
!
__MULTIFORMSDATA__
[
dataUUID
])
return
;
__DATAUUID__
=
__MULTIFORMSDATA__
[
dataUUID
].
uuid
;
__OLD_DATAUUID__
=
__MULTIFORMSDATA__
[
dataUUID
].
oldUuid
;
__NODE_UUID__
=
__MULTIFORMSDATA__
[
dataUUID
].
nodeUUID
;
...
...
@@ -349,7 +346,7 @@ function __classSynergy(){
__FORM_VERSION__
=
__MULTIFORMSDATA__
[
dataUUID
].
version
;
__DATA__
=
__MULTIFORMSDATA__
[
dataUUID
].
data
;
__FULL_DATA__
=
__MULTIFORMSDATA__
[
dataUUID
].
data
;
__DOCUMENT_ID__
=
""
+
__TYPE_CONNECTED__
.
ApiUtils
.
getDocumentID
(
__DATAUUID__
);
__DOCUMENT_ID__
=
""
+
__TYPE_CONNECTED__
.
ApiUtils
.
getDocumentID
(
__DATAUUID__
);
__EXECUTE__
=
true
;
return
__TYPE_CONNECTED__
;
},
...
...
@@ -357,8 +354,8 @@ function __classSynergy(){
/**
* Вернуть форму загруженную не с мультизагрузки если такая была
*/
regainForm
:
function
()
{
if
(
!
__FORMDATA__
)
return
;
regainForm
:
function
()
{
if
(
!
__FORMDATA__
)
return
;
__DATAUUID__
=
__FORMDATA__
.
dataUUID
;
__OLD_DATAUUID__
=
__FORMDATA__
.
oldDataUUID
;
__DOCUMENT_ID__
=
__FORMDATA__
.
documentID
;
...
...
@@ -378,17 +375,18 @@ function __classSynergy(){
* @param {String} arg3 Если компонент вне дин таблицы *не обязательно* иначе номер строки (ряда)
* @param {String} arg4 Если компонент в дин таблицы то ключ иначе *не обязательно*
*/
getValue
:
function
(){
if
(
!
__checkAccess
())
return
;
else
if
(
arguments
.
length
<
1
)
return
;
getValue
:
function
()
{
if
(
!
__checkAccess
())
return
;
else
if
(
arguments
.
length
<
1
)
return
;
console
.
info
(
'
arguments {}
'
,
JSON
.
stringify
(
arguments
));
var
data
;
var
args
=
{
c
:
arguments
[
0
],
ot
:
arguments
[
1
],
b
:
arguments
[
2
],
o
:
arguments
[
3
]};
if
(
typeof
(
args
.
c
)
===
'
string
'
&&
typeof
(
args
.
b
)
===
'
number
'
)
{
var
args
=
{
c
:
arguments
[
0
],
ot
:
arguments
[
1
],
b
:
arguments
[
2
],
o
:
arguments
[
3
]};
if
(
typeof
(
args
.
c
)
===
'
string
'
&&
typeof
(
args
.
b
)
===
'
number
'
)
{
args
.
b
=
+
((
+
args
.
b
)
===
0
?
1
:
args
.
b
);
__DATA__
.
forEach
(
function
(
item
)
{
__DATA__
.
forEach
(
function
(
item
)
{
if
(
item
.
id
==
args
.
ot
)
{
if
(
!
item
.
hasOwnProperty
(
'
data
'
))
item
.
data
=
[];
item
.
data
.
forEach
(
function
(
bItem
)
{
if
(
!
item
.
hasOwnProperty
(
'
data
'
))
item
.
data
=
[];
item
.
data
.
forEach
(
function
(
bItem
)
{
if
(
bItem
.
id
===
args
.
c
+
'
-b
'
+
args
.
b
)
{
data
=
(
args
.
o
&&
args
.
o
!=
__SERVER
)
?
(
bItem
[
args
.
o
]
?
bItem
[
args
.
o
]
:
undefined
)
:
bItem
;
return
;
...
...
@@ -398,20 +396,27 @@ function __classSynergy(){
}
});
}
else
{
__DATA__
.
forEach
(
function
(
item
)
{
__DATA__
.
forEach
(
function
(
item
)
{
if
(
item
.
id
==
args
.
c
)
{
data
=
(
args
.
ot
&&
args
.
ot
!=
__SERVER
)
?
(
item
[
args
.
ot
]
?
item
[
args
.
ot
]
:
undefined
)
:
item
;
return
;
}
});
}
if
(
data
===
undefined
){
switch
(
args
.
ot
){
case
'
data
'
:
data
=
[];
break
;
case
'
value
'
:
case
'
key
'
:
data
=
''
;
break
;
default
:
data
=
false
;
if
(
data
===
undefined
)
{
switch
(
args
.
ot
)
{
case
'
data
'
:
data
=
[];
break
;
case
'
value
'
:
case
'
key
'
:
data
=
''
;
break
;
default
:
data
=
false
;
}
}
console
.
info
(
'
data {}
'
,
JSON
.
stringify
(
data
));
return
data
;
},
...
...
@@ -438,26 +443,56 @@ function __classSynergy(){
* value: 'xxxx'
* },'value'); - "Object" запишется в ключ "value" а если не передавать ключ то пойдет перезаписать данных компонента
*/
setValue
:
function
()
{
if
(
!
__checkAccess
()
)
return
;
else
if
(
arguments
.
length
<
1
)
return
;
setValue
:
function
()
{
if
(
!
__checkAccess
()
||
arguments
.
length
<
1
)
return
;
var
defKey
=
'
value
'
;
var
args
=
{
c
:
arguments
[
0
],
vt
:
arguments
[
1
],
ob
:
arguments
[
2
],
v
:
arguments
[
3
],
o
:
arguments
[
4
]};
if
(
typeof
(
args
.
c
)
===
'
string
'
&&
typeof
(
args
.
ob
)
===
'
number
'
)
{
if
(
args
.
ob
==
0
)
args
.
ob
=
1
;
__DATA__
.
forEach
(
function
(
item
)
{
var
args
=
{
c
:
arguments
[
0
],
vt
:
arguments
[
1
],
ob
:
arguments
[
2
],
v
:
arguments
[
3
],
o
:
arguments
[
4
]};
if
(
typeof
(
args
.
c
)
===
'
string
'
&&
typeof
(
args
.
ob
)
===
'
number
'
)
{
if
(
args
.
ob
.
toString
()
===
'
0
'
){
args
.
ob
=
1
;
}
__DATA__
.
forEach
(
function
(
item
)
{
if
(
item
.
id
==
args
.
vt
)
{
if
(
!
item
.
hasOwnProperty
(
'
data
'
))
item
.
data
=
[];
item
.
data
.
forEach
(
function
(
bItem
)
{
if
(
!
item
.
hasOwnProperty
(
'
data
'
))
{
item
.
data
=
[];
}
item
.
data
.
forEach
(
function
(
bItem
)
{
if
(
bItem
.
id
===
args
.
c
+
'
-b
'
+
args
.
ob
)
{
if
(
bItem
.
type
==
'
numericinput
'
){
switch
(
bItem
.
type
)
{
case
'
reglink
'
:
if
(
args
.
v
&&
/^
[
0-9a-fA-F
]{8}
-
[
0-9a-fA-F
]{4}
-
[
0-9a-fA-F
]{4}
-
[
0-9a-fA-F
]{4}
-
[
0-9a-fA-F
]{12}
$/
.
test
(
args
.
v
))
{
if
(
args
.
o
&&
args
.
o
==
__SERVER
)
{
args
.
v
=
{
key
:
args
.
v
,
value
:
__SERVER__
.
api
(
'
formPlayer/getDocMeaningContents?documentId=
'
+
args
.
v
)[
0
].
meaning
}
}
else
{
args
.
v
=
{
key
:
args
.
v
,
value
:
__CLIENT__
.
api
(
'
formPlayer/getDocMeaningContents?documentId=
'
+
args
.
v
)[
0
].
meaning
}
}
}
break
;
case
'
numericinput
'
:
defKey
=
'
key
'
;
args
.
v
=
args
.
v
.
toString
().
replace
(
/
\s
*/g
,
''
);
if
(
args
.
v
&&
(
typeof
args
.
v
===
'
string
'
||
typeof
args
.
v
===
'
number
'
))
{
args
.
v
=
args
.
v
.
toString
().
replace
(
/
\s
*/g
,
''
);
}
break
;
}
if
(
typeof
(
args
.
v
)
===
'
object
'
)
{
bItem
=
Object
.
assign
(
bItem
,
args
.
v
);
}
else
{
bItem
[(
args
.
o
&&
args
.
o
!=
__SERVER
)
?
args
.
o
:
defKey
]
=
args
.
v
;
}
if
(
typeof
(
args
.
v
)
===
'
object
'
)
for
(
var
aItem
in
args
.
v
)
(
args
.
o
&&
args
.
o
==
__SERVER
)
?
bItem
[
aItem
]
=
args
.
v
[
aItem
]
:
bItem
[
aItem
][
args
.
o
]
=
args
.
v
[
aItem
];
else
bItem
[(
args
.
o
&&
args
.
o
!=
__SERVER
)
?
args
.
o
:
defKey
]
=
args
.
v
;
return
;
}
});
...
...
@@ -465,16 +500,40 @@ function __classSynergy(){
}
});
}
else
{
__DATA__
.
forEach
(
function
(
item
)
{
if
(
item
.
id
==
args
.
c
)
{
if
(
item
.
type
==
'
numericinput
'
){
__DATA__
.
forEach
(
function
(
item
)
{
if
(
item
.
id
==
args
.
c
){
switch
(
item
.
type
)
{
case
'
reglink
'
:
if
(
args
.
vt
&&
/^
[
0-9a-fA-F
]{8}
-
[
0-9a-fA-F
]{4}
-
[
0-9a-fA-F
]{4}
-
[
0-9a-fA-F
]{4}
-
[
0-9a-fA-F
]{12}
$/
.
test
(
args
.
vt
))
{
if
(
args
.
o
&&
args
.
o
==
__SERVER
)
{
args
.
vt
=
{
key
:
args
.
vt
,
value
:
__SERVER__
.
api
(
'
formPlayer/getDocMeaningContents?documentId=
'
+
args
.
vt
)[
0
].
meaning
}
}
else
{
args
.
vt
=
{
key
:
args
.
vt
,
value
:
__CLIENT__
.
api
(
'
formPlayer/getDocMeaningContents?documentId=
'
+
args
.
vt
)[
0
].
meaning
}
}
}
break
;
case
'
numericinput
'
:
defKey
=
'
key
'
;
args
.
v
=
args
.
v
.
replace
(
/
\s
*/g
,
''
);
if
(
args
.
vt
&&
(
typeof
args
.
vt
===
'
string
'
||
typeof
args
.
vt
===
'
number
'
))
{
args
.
vt
=
args
.
vt
.
toString
().
replace
(
/
\s
*/g
,
''
);
}
break
;
}
if
(
typeof
(
args
.
vt
)
===
'
object
'
)
{
item
=
Object
.
assign
(
item
,
args
.
vt
);
}
else
{
item
[(
args
.
ob
&&
args
.
ob
!=
__SERVER
)
?
args
.
ob
:
defKey
]
=
args
.
vt
;
}
if
(
typeof
(
args
.
vt
)
===
'
object
'
)
for
(
var
aItem
in
args
.
vt
)
(
args
.
ob
&&
args
.
ob
==
__SERVER
)
?
item
[
aItem
]
=
args
.
vt
[
aItem
]
:
item
[
aItem
][
args
.
ob
]
=
args
.
vt
[
aItem
];
else
item
[(
args
.
ob
&&
args
.
ob
!=
__SERVER
)
?
args
.
ob
:
defKey
]
=
args
.
vt
;
return
;
}
});
...
...
@@ -486,35 +545,54 @@ function __classSynergy(){
* [GET] Метод получения конвертированной таблицы
* @param {String} tableID Идентификатор (id) таблицы
*/
converTable
:
function
(
tableID
){
if
(
!
__checkAccess
())
return
;
else
if
(
!
tableID
)
return
;
var
arr
=
[];
var
b
;
var
data
=
(
arguments
[
1
]
&&
arguments
[
1
]
==
__SERVER
?
__CLIENT__
.
getValue
(
tableID
,
'
data
'
,
__SERVER
)
:
__CLIENT__
.
getValue
(
tableID
,
'
data
'
));
data
.
forEach
(
function
(
item
)
{
if
(
item
.
id
.
indexOf
(
'
-b
'
)
!==
-
1
&&
(
b
=
item
.
id
.
match
(
/
(
.+
)\-
b
(\d
+
)
/
)))
{
if
((
b
[
2
]
in
arr
)
===
false
)
arr
[
b
[
2
]]
=
{};
arr
[
b
[
2
]][
b
[
1
]]
=
item
;
converTable
:
function
(
tableID
)
{
if
(
!
__checkAccess
()
||
!
tableID
){
return
;
}
let
arr
=
[];
let
data
=
(
arguments
[
1
]
&&
arguments
[
1
]
==
__SERVER
?
__CLIENT__
.
getValue
(
tableID
,
'
data
'
,
__SERVER
)
:
__CLIENT__
.
getValue
(
tableID
,
'
data
'
));
data
.
forEach
(
function
(
item
)
{
let
idx
=
item
.
id
.
lastIndexOf
(
'
-b
'
);
let
bIndex
=
item
.
id
.
substr
(
idx
+
2
);
let
componentId
=
item
.
id
.
substr
(
0
,
idx
);
if
(
~
item
.
id
.
lastIndexOf
(
'
-b
'
)
&&
bIndex
&&
!
isNaN
(
bIndex
))
{
if
((
bIndex
in
arr
)
===
false
){
arr
[
bIndex
]
=
{};
}
arr
[
bIndex
][
componentId
]
=
item
;
return
;
}
});
for
(
var
i
=
0
;
i
<
arr
.
length
;
i
++
)
if
(
arr
[
i
]
==
null
)
arr
.
splice
(
i
--
,
1
);
for
(
let
i
=
0
;
i
<
arr
.
length
;
i
++
){
if
(
arr
[
i
]
==
null
){
arr
.
splice
(
i
--
,
1
);
}
}
return
arr
;
},
/**
* [GET] Метод получения всех компонентов в стиле листа
*/
getAsfData
:
function
(){
if
(
!
__checkAccess
())
return
;
getAsfData
:
function
()
{
if
(
!
__checkAccess
()){
return
;
}
var
arr
=
[];
__DATA__
.
forEach
(
function
(
item
)
{
if
(
item
.
type
==
'
appendable_table
'
)
{
__DATA__
.
forEach
(
function
(
item
)
{
if
(
item
.
type
==
'
appendable_table
'
)
{
var
tmp_data
=
JSON
.
parse
(
JSON
.
stringify
((
!
item
.
data
?
[]
:
item
.
data
)));
tmp_data
.
forEach
(
function
(
item_tbl
)
{
tmp_data
.
forEach
(
function
(
item_tbl
)
{
var
id
=
item_tbl
.
id
.
match
(
/
(
.+
)\-
b
(\d
+
)
/
);
if
(
id
)
{
if
(
id
)
{
item_tbl
.
____parentID____
=
item
.
id
;
item_tbl
.
____parentType____
=
item
.
type
;
item_tbl
.
id
=
id
[
1
];
...
...
@@ -524,6 +602,7 @@ function __classSynergy(){
});
return
;
}
arr
.
push
(
item
);
});
return
arr
;
...
...
@@ -533,19 +612,26 @@ function __classSynergy(){
* [SET] Метод добавляет данные в `dataList`
* @param {Object} object Объект или массив объектов
*/
addAsfData
:
function
(
object
){
if
(
!
__checkAccess
())
return
;
else
if
(
arguments
.
length
<
1
)
return
;
if
(
!
Array
.
isArray
(
object
))
object
=
[
object
];
addAsfData
:
function
(
object
)
{
if
(
!
__checkAccess
()
||
arguments
.
length
<
1
){
return
;
}
if
(
!
Array
.
isArray
(
object
)){
object
=
[
object
];
}
var
oldList
=
(
arguments
[
1
]
&&
arguments
[
1
]
==
__SERVER
?
__CLIENT__
.
getAsfData
(
__SERVER
)
:
__CLIENT__
.
getAsfData
());
object
.
forEach
(
function
(
item
){
object
.
forEach
(
function
(
item
)
{
oldList
.
push
(
item
);
});
if
(
arguments
[
1
]
&&
arguments
[
1
]
!=
__SERVER
){
if
(
arguments
[
1
]
&&
arguments
[
1
]
!=
__SERVER
)
{
__CLIENT__
.
setAsfData
(
oldList
);
return
__CLIENT__
;
}
else
{
__CLIENT__
.
setAsfData
(
oldList
,
__SERVER
);
}
else
{
__CLIENT__
.
setAsfData
(
oldList
,
__SERVER
);
return
__SERVER__
;
}
},
...
...
@@ -554,20 +640,26 @@ function __classSynergy(){
* [SET] Метод изменения всех компонентов из листа
* @param {Array} newList Массив - лист объектов
*/
setAsfData
:
function
(
newList
){
if
(
!
__checkAccess
())
return
;
else
if
(
arguments
.
length
<
1
)
return
;
setAsfData
:
function
(
newList
)
{
if
(
!
__checkAccess
()
||
arguments
.
length
<
1
){
return
;
}
var
arr
=
[];
var
tmp
=
[];
newList
.
forEach
(
function
(
item
)
{
if
(
item
.
____parentType____
&&
item
.
____parentID____
&&
item
.
____index____
){
newList
.
forEach
(
function
(
item
)
{
if
(
item
.
____parentType____
&&
item
.
____parentID____
&&
item
.
____index____
)
{
var
tblIdx
=
tmp
.
indexOf
(
item
.
____parentID____
);
var
tmpItem
=
JSON
.
parse
(
JSON
.
stringify
(
item
));
tmpItem
.
id
+=
'
-b
'
+
item
.
____index____
;
delete
tmpItem
.
____parentType____
;
delete
tmpItem
.
____parentID____
;
delete
tmpItem
.
____index____
;
if
(
tblIdx
===
-
1
){
if
(
tblIdx
===
-
1
)
{
tmp
.
push
(
item
.
____parentID____
);
arr
.
push
({
id
:
item
.
____parentID____
,
...
...
@@ -575,12 +667,18 @@ function __classSynergy(){
data
:
[
tmpItem
]
});
}
if
(
arr
[
tblIdx
])
arr
[
tblIdx
].
data
.
push
(
tmpItem
);
if
(
arr
[
tblIdx
]){
arr
[
tblIdx
].
data
.
push
(
tmpItem
);
}
return
;
}
arr
.
push
(
item
);
tmp
.
push
(
null
);
});
__DATA__
=
arr
;
return
(
arguments
[
1
]
&&
arguments
[
1
]
==
__SERVER
?
__SERVER__
:
__CLIENT__
);
},
...
...
@@ -591,39 +689,59 @@ function __classSynergy(){
* @param {Int} count кол-во строк по умолчанию `1`
* @param {Boolean} visual Если данный параметр true то ряд(ы) не добавятся в таблицу по умолчанию `false`
*/
addRowTable
:
function
(
tableID
,
count
,
visual
){
if
(
!
__checkAccess
())
return
;
addRowTable
:
function
(
tableID
,
count
,
visual
)
{
if
(
!
__checkAccess
())
{
return
;
}
var
defTableRow
=
false
;
if
(
!
(
+
count
)
||
!
count
)
count
=
1
;
var
tableRowCount
=
(
arguments
[
3
]
&&
arguments
[
3
]
==
__SERVER
?
__CLIENT__
.
getRowsCount
(
tableID
,
__SERVER
)
:
__CLIENT__
.
getRowsCount
(
tableID
));
if
(
!
(
+
count
)
||
!
count
)
{
count
=
1
;
}
var
tableRowCount
=
(
arguments
[
3
]
&&
arguments
[
3
]
==
__SERVER
?
__CLIENT__
.
getRowsCount
(
tableID
,
__SERVER
)
:
__CLIENT__
.
getRowsCount
(
tableID
));
var
defProps
=
(
arguments
[
3
]
&&
arguments
[
3
]
==
__SERVER
?
__SERVER__
.
api
(
'
asforms/form/
'
+
__CLASS__
.
getFormUUID
())
:
__CLIENT__
.
api
(
'
asforms/form/
'
+
__CLASS__
.
getFormUUID
()));
var
skips
=
[
'
config
'
,
'
style
'
,
'
properties
'
,
'
required
'
,
'
data
'
,
'
dataSource
'
];
if
(
defProps
.
properties
){
defProps
.
properties
.
forEach
(
function
(
item
)
{
if
(
item
.
id
==
tableID
&&
item
.
config
.
appendRows
&&
item
.
config
.
appendRows
===
true
){
if
(
!
defTableRow
)
defTableRow
=
[];
for
(
var
i
=
0
;
i
<
count
;
i
++
){
var
skips
=
[
'
config
'
,
'
style
'
,
'
properties
'
,
'
required
'
,
'
data
'
,
'
dataSource
'
];
if
(
defProps
.
properties
)
{
defProps
.
properties
.
forEach
(
function
(
item
)
{
if
(
item
.
id
==
tableID
&&
item
.
config
.
appendRows
&&
item
.
config
.
appendRows
===
true
)
{
if
(
!
defTableRow
)
{
defTableRow
=
[];
}
for
(
var
i
=
0
;
i
<
count
;
i
++
)
{
tableRowCount
++
;
item
.
properties
.
forEach
(
function
(
item_tbl
)
{
item
.
properties
.
forEach
(
function
(
item_tbl
)
{
var
nObj
=
{};
var
tmp
=
JSON
.
parse
(
JSON
.
stringify
(
item_tbl
));
tmp
.
____parentType____
=
'
appendable_table
'
;
tmp
.
____parentID____
=
item
.
id
;
tmp
.
____index____
=
''
+
tableRowCount
;
for
(
var
i
in
tmp
){
if
(
skips
.
indexOf
(
i
)
!==
-
1
)
continue
;
for
(
var
i
in
tmp
)
{
if
(
skips
.
indexOf
(
i
)
!==
-
1
)
{
continue
;
}
nObj
[
i
]
=
tmp
[
i
];
}
defTableRow
.
push
(
nObj
);
});
}
if
(
!
visual
&&
defTableRow
&&
defTableRow
.
length
>
0
){
(
arguments
[
3
]
&&
arguments
[
3
]
==
__SERVER
?
__CLIENT__
.
addAsfData
(
defTableRow
,
__SERVER
)
:
__CLIENT__
.
addAsfData
(
defTableRow
));
if
(
!
visual
&&
defTableRow
&&
defTableRow
.
length
>
0
)
{
(
arguments
[
3
]
&&
arguments
[
3
]
==
__SERVER
?
__CLIENT__
.
addAsfData
(
defTableRow
,
__SERVER
)
:
__CLIENT__
.
addAsfData
(
defTableRow
));
}
return
;
}
});
}
return
defTableRow
;
},
...
...
@@ -632,37 +750,61 @@ function __classSynergy(){
* @param {String} tableID Идентификатор (id) таблицы
* @param {Int | Array} index номер строки
*/
removeRowTable
:
function
(
tableID
,
index
){
if
(
!
__checkAccess
())
return
;
else
if
(
arguments
.
length
<
1
)
return
;
removeRowTable
:
function
(
tableID
,
index
)
{
if
(
!
__checkAccess
()
||
arguments
.
length
<
1
)
{
return
;
}
var
dataList
=
(
arguments
[
2
]
&&
arguments
[
2
]
==
__SERVER
?
__CLIENT__
.
getAsfData
(
__SERVER
)
:
__CLIENT__
.
getAsfData
());
var
newList
=
[];
var
visualRows
=
[];
var
tmp
=
{
t1
:[],
t2
:[]};
if
(
!
Array
.
isArray
(
index
))
index
=
[
index
];
dataList
.
forEach
(
function
(
item
,
key
)
{
if
(
item
.
____parentID____
==
tableID
&&
item
.
____index____
&&
(
index
.
indexOf
(
''
+
item
.
____index____
)
!==
-
1
||
index
.
indexOf
(
+
item
.
____index____
)
!==
-
1
))
return
;
var
tmp
=
{
t1
:
[],
t2
:
[]};
if
(
!
Array
.
isArray
(
index
))
{
index
=
[
index
];
}
dataList
.
forEach
(
function
(
item
)
{
if
(
item
.
____parentID____
==
tableID
&&
item
.
____index____
&&
(
index
.
indexOf
(
''
+
item
.
____index____
)
!==
-
1
||
index
.
indexOf
(
+
item
.
____index____
)
!==
-
1
)){
return
;
}
newList
.
push
(
item
);
if
(
item
.
____parentID____
==
tableID
&&
item
.
____index____
)
visualRows
.
push
({
textIdx
:
+
item
.
____index____
,
idx
:
newList
.
length
-
1
});
if
(
item
.
____parentID____
==
tableID
&&
item
.
____index____
){
visualRows
.
push
({
textIdx
:
+
item
.
____index____
,
idx
:
newList
.
length
-
1
});
visualRows
.
sort
(
function
(
i
,
j
)
{
}
});
visualRows
.
sort
(
function
(
i
,
j
)
{
return
i
.
textIdx
>
j
.
textIdx
;
}).
forEach
(
function
(
i
)
{
if
(
!
tmp
.
t1
[
i
.
textIdx
])
tmp
.
t1
[
i
.
textIdx
]
=
[];
})
.
forEach
(
function
(
i
)
{
if
(
!
tmp
.
t1
[
i
.
textIdx
]){
tmp
.
t1
[
i
.
textIdx
]
=
[];
}
tmp
.
t1
[
i
.
textIdx
].
push
(
i
.
idx
);
});
tmp
.
t1
.
forEach
(
function
(
item
){
tmp
.
t1
.
forEach
(
function
(
item
)
{
tmp
.
t2
.
push
(
item
);
});
tmp
.
t2
.
forEach
(
function
(
iArr
,
k
){
iArr
.
forEach
(
function
(
i
){
tmp
.
t2
.
forEach
(
function
(
iArr
,
k
)
{
iArr
.
forEach
(
function
(
i
)
{
newList
[
i
].
____index____
=
''
+
(
k
+
1
);
});
});
if
(
!
arguments
[
2
]
&&
arguments
[
2
]
==
__SERVER
){
__CLIENT__
.
setAsfData
(
newList
,
__SERVER
);
if
(
!
arguments
[
2
]
&&
arguments
[
2
]
==
__SERVER
)
{
__CLIENT__
.
setAsfData
(
newList
,
__SERVER
);
return
__SERVER__
;
}
else
{
}
else
{
__CLIENT__
.
setAsfData
(
newList
);
return
__CLIENT__
;
}
...
...
@@ -672,13 +814,15 @@ function __classSynergy(){
* [GET] Метод получения строк (рядов) в дин.таблице
* @param {String} tableID Идентификатор (id) таблицы
*/
getRowsCount
:
function
(
tableID
){
if
(
!
__checkAccess
())
return
;
else
if
(
!
tableID
)
return
;
if
(
!
arguments
[
1
]
||
arguments
[
1
]
!=
__SERVER
){
getRowsCount
:
function
(
tableID
)
{
if
(
!
__checkAccess
()
||
!
tableID
)
{
return
;
}
if
(
!
arguments
[
1
]
||
arguments
[
1
]
!=
__SERVER
)
{
return
__CLIENT__
.
converTable
(
tableID
).
length
;
}
else
{
return
__CLIENT__
.
converTable
(
tableID
,
__SERVER
).
length
;
}
else
{
return
__CLIENT__
.
converTable
(
tableID
,
__SERVER
).
length
;
}
},
...
...
@@ -686,13 +830,14 @@ function __classSynergy(){
* Метод очищает содержимое дин.таблицы
* @param {String} tableID Идентификатор (id) таблицы
*/
clearTable
:
function
(
tableID
)
{
__DATA__
.
forEach
(
function
(
item
)
{
if
(
item
.
id
==
tableID
)
{
clearTable
:
function
(
tableID
)
{
__DATA__
.
forEach
(
function
(
item
)
{
if
(
item
.
id
==
tableID
)
{
item
.
data
=
[];
return
;
}
});
return
__TYPE_CONNECTED__
;
},
...
...
@@ -711,25 +856,27 @@ function __classSynergy(){
*
* @param {Function} errorHandle Функция возвращающая ошибку
*/
api
:
function
(
method
,
callback
,
options
,
errorHandle
){
if
(
!
__LOADFORM__
)
return
;
else
if
(
arguments
.
length
<
1
)
return
;
try
{
api
:
function
(
method
,
callback
,
options
,
errorHandle
)
{
if
(
!
__LOADFORM__
||
arguments
.
length
<
1
)
{
return
;
}
try
{
return
$
.
ajax
({
url
:
__HOST_ORIGIN__
+
'
/Synergy/rest/api/
'
+
method
.
replace
(
/
(
.*rest
\/
api
\/)
/
,
''
),
type
:
(
!
options
||
!
options
.
hasOwnProperty
(
'
type
'
)?
'
GET
'
:
options
.
type
),
async
:
(
!
options
||
!
options
.
hasOwnProperty
(
'
async
'
)?
false
:
options
.
async
),
beforeSend
:
function
(
xhr
)
{
url
:
__HOST_ORIGIN__
+
'
/Synergy/rest/api/
'
+
method
.
replace
(
/
(
.*rest
\/
api
\/)
/
,
''
),
type
:
(
!
options
||
!
options
.
hasOwnProperty
(
'
type
'
)
?
'
GET
'
:
options
.
type
),
async
:
(
!
options
||
!
options
.
hasOwnProperty
(
'
async
'
)
?
false
:
options
.
async
),
beforeSend
:
function
(
xhr
)
{
xhr
.
setRequestHeader
(
'
Authorization
'
,
'
Basic
'
+
btoa
(
(
!
options
||
!
options
.
login
||
!
options
.
password
?
__LOGIN__
+
'
:
'
+
__PASSWORD__
:
options
.
login
+
'
:
'
+
options
.
password
)
));
},
data
:(
!
options
||
!
options
.
hasOwnProperty
(
'
data
'
)
?
{}
:
options
.
data
),
success
:
callback
,
error
:
errorHandle
,
dataType
:
(
!
options
||
!
options
.
hasOwnProperty
(
'
dataType
'
)?
'
json
'
:
options
.
dataType
)
data
:
(
!
options
||
!
options
.
hasOwnProperty
(
'
data
'
)
?
{}
:
options
.
data
),
success
:
callback
,
error
:
errorHandle
,
dataType
:
(
!
options
||
!
options
.
hasOwnProperty
(
'
dataType
'
)
?
'
json
'
:
options
.
dataType
)
})[(
options
&&
options
.
hasOwnProperty
(
'
dataType
'
)
&&
options
.
dataType
==
'
text
'
?
'
responseText
'
:
'
responseJSON
'
)];
}
catch
(
err
)
{
}
catch
(
err
)
{
return
err
.
message
;
}
},
...
...
@@ -738,27 +885,32 @@ function __classSynergy(){
* Метод сохранения формы
* @param {Func} callback Возврщает результат в асинхронносте по умолчанию `false`
*/
save
:
function
(
callback
){
if
(
!
__LOADFORM__
)
return
;
if
(
!
arguments
[
0
]
||
arguments
[
0
]
!=
__SERVER
){
var
save
=
__CLIENT__
.
api
(
'
asforms/data/save
'
,
callback
,{
async
:(
!
callback
?
false
:
true
),
type
:
'
POST
'
,
data
:{
save
:
function
(
callback
)
{
if
(
!
__LOADFORM__
)
{
return
;
}
if
(
!
arguments
[
0
]
||
arguments
[
0
]
!=
__SERVER
)
{
var
save
=
__CLIENT__
.
api
(
'
asforms/data/save
'
,
callback
,
{
async
:
(
!
callback
?
false
:
true
),
type
:
'
POST
'
,
data
:
{
uuid
:
__CLASS__
.
getDataUUID
(),
data
:
'
"data":
'
+
JSON
.
stringify
(
__DATA__
)
}
});
return
save
;
}
else
{
var
save
=
__SERVER__
.
api
(
'
asforms/data/save
'
,{
type
:
'
POST
'
,
}
else
{
var
save
=
__SERVER__
.
api
(
'
asforms/data/save
'
,
{
type
:
'
POST
'
,
data
:
{
uuid
:
__CLASS__
.
getDataUUID
(),
data
:
'
"data":
'
+
JSON
.
stringify
(
__DATA__
)
}
});
return
{
save
:
save
,
data
:
'
"data":
'
+
JSON
.
stringify
(
__DATA__
)};
return
{
save
:
save
,
data
:
'
"data":
'
+
JSON
.
stringify
(
__DATA__
)};
}
},
...
...
@@ -768,16 +920,19 @@ function __classSynergy(){
* @param {String | Int} dataUUID Идентификатор данных по форме
* @param {Func} callback Возврщает результат в асинхронносте по умолчанию `false`
*/
getDocumentID
:
function
(
dataUUID
,
callback
){
if
(
!
dataUUID
)
return
;
if
(
!
arguments
[
1
]
||
arguments
[
1
]
!=
__SERVER
){
return
__CLIENT__
.
api
(
'
formPlayer/documentIdentifier?dataUUID=
'
+
dataUUID
,
callback
,{
async
:(
!
callback
?
false
:
true
),
dataType
:
'
text
'
getDocumentID
:
function
(
dataUUID
,
callback
)
{
if
(
!
dataUUID
)
{
return
;
}
if
(
!
arguments
[
1
]
||
arguments
[
1
]
!=
__SERVER
)
{
return
__CLIENT__
.
api
(
'
formPlayer/documentIdentifier?dataUUID=
'
+
dataUUID
,
callback
,
{
async
:
(
!
callback
?
false
:
true
),
dataType
:
'
text
'
});
}
else
{
}
else
{
return
__SERVER__
.
api
(
'
formPlayer/documentIdentifier?dataUUID=
'
+
dataUUID
,
{
dataType
:
'
text
'
dataType
:
'
text
'
});
}
},
...
...
@@ -787,13 +942,16 @@ function __classSynergy(){
* @param {String} documentID Идентификатор документа
* @param {Func} callback Возврщает результат в асинхронносте по умолчанию `false`
*/
getDataUUID
:
function
(
documentID
,
callback
){
if
(
!
documentID
)
return
;
if
(
!
arguments
[
1
]
||
arguments
[
1
]
!=
__SERVER
){
return
__CLIENT__
.
api
(
'
formPlayer/getAsfDataUUID?documentID=
'
+
documentID
,
callback
,{
async
:(
!
callback
?
false
:
true
)
getDataUUID
:
function
(
documentID
,
callback
)
{
if
(
!
documentID
)
{
return
;
}
if
(
!
arguments
[
1
]
||
arguments
[
1
]
!=
__SERVER
)
{
return
__CLIENT__
.
api
(
'
formPlayer/getAsfDataUUID?documentID=
'
+
documentID
,
callback
,
{
async
:
(
!
callback
?
false
:
true
)
});
}
else
{
}
else
{
return
__SERVER__
.
api
(
'
formPlayer/getAsfDataUUID?documentID=
'
+
documentID
);
}
},
...
...
@@ -803,13 +961,16 @@ function __classSynergy(){
* @param {String | Int} dataUUID Идентификатор данных по форме
* @param {Func} callback Возврщает результат в асинхронносте по умолчанию `false`
*/
getProcessExecution
:
function
(
dataUUID
,
callback
){
if
(
!
dataUUID
)
return
;
if
(
!
arguments
[
1
]
||
arguments
[
1
]
!=
__SERVER
){
return
__CLIENT__
.
api
(
'
formPlayer/getProcessExecution?dataUUID=
'
+
dataUUID
,
callback
,{
async
:(
!
callback
?
false
:
true
)
getProcessExecution
:
function
(
dataUUID
,
callback
)
{
if
(
!
dataUUID
)
{
return
;
}
if
(
!
arguments
[
1
]
||
arguments
[
1
]
!=
__SERVER
)
{
return
__CLIENT__
.
api
(
'
formPlayer/getProcessExecution?dataUUID=
'
+
dataUUID
,
callback
,
{
async
:
(
!
callback
?
false
:
true
)
});
}
else
{
}
else
{
return
__SERVER__
.
api
(
'
formPlayer/getProcessExecution?dataUUID=
'
+
dataUUID
);
}
},
...
...
@@ -818,13 +979,16 @@ function __classSynergy(){
* Возвращает список реестров (доступных пользователю)
* @param {Func} callback Возврщает результат в асинхронносте по умолчанию `false`
*/
getRegistryList
:
function
(
callback
){
if
(
!
__checkAccess
())
return
;
if
(
!
arguments
[
0
]
||
arguments
[
0
]
!=
__SERVER
){
return
__CLIENT__
.
api
(
'
registry/list
'
,
callback
,{
async
:(
!
callback
?
false
:
true
)
getRegistryList
:
function
(
callback
)
{
if
(
!
__checkAccess
())
{
return
;
}
if
(
!
arguments
[
0
]
||
arguments
[
0
]
!=
__SERVER
)
{
return
__CLIENT__
.
api
(
'
registry/list
'
,
callback
,
{
async
:
(
!
callback
?
false
:
true
)
});
}
else
{
}
else
{
return
__SERVER__
.
api
(
'
registry/list
'
);
}
}
...
...
@@ -836,36 +1000,36 @@ function __classSynergy(){
* Метод загрузки формы
* @param {String | Integer} dataUUID Идентификатор данных по форме
*/
load
:
function
(
dataUUID
,
version
)
{
return
__CLIENT__
.
load
(
dataUUID
,
version
,
__SERVER
);
load
:
function
(
dataUUID
,
version
)
{
return
__CLIENT__
.
load
(
dataUUID
,
version
,
__SERVER
);
},
/**
* Метод загрузки нескольких форм
* @param {Array | String | Integer} dataUUIDs идентификатор(ы) данных по форме
*/
multiLoad
:
function
(
dataUUIDs
)
{
return
__CLIENT__
.
multiLoad
(
dataUUIDs
,
__SERVER
);
multiLoad
:
function
(
dataUUIDs
)
{
return
__CLIENT__
.
multiLoad
(
dataUUIDs
,
__SERVER
);
},
/**
* Получение данных загруженных форм
*/
getFormsList
:
function
()
{
getFormsList
:
function
()
{
return
__MULTIFORMSDATA__
;
},
/**
* Выбрать с какой формой будем работать
*/
selectForm
:
function
(
dataUUID
)
{
return
__CLIENT__
.
selectForm
(
dataUUID
,
__SERVER
);
selectForm
:
function
(
dataUUID
)
{
return
__CLIENT__
.
selectForm
(
dataUUID
,
__SERVER
);
},
/**
* Вернуть форму загруженную не с мультизагрузки если такая была
*/
regainForm
:
function
()
{
regainForm
:
function
()
{
return
__CLIENT__
.
regainForm
();
},
...
...
@@ -876,9 +1040,10 @@ function __classSynergy(){
* @param {String} arg3 Если компонент вне дин таблицы *не обязательно* иначе номер строки (ряда)
* @param {String} arg4 Если компонент в дин таблицы то ключ иначе *не обязательно*
*/
getValue
:
function
()
{
var
args
=
Array
.
prototype
.
s
p
lice
.
call
(
arguments
,
0
);
getValue
:
function
()
{
var
args
=
Array
.
prototype
.
slice
.
call
(
arguments
,
0
);
args
.
push
(
__SERVER
);
return
__CLIENT__
.
getValue
.
apply
(
null
,
args
);
},
...
...
@@ -905,9 +1070,10 @@ function __classSynergy(){
* value: 'xxxx'
* },'value'); - "Object" запишется в ключ "value" а если не передавать ключ то пойдет перезаписать данных компонента
*/
setValue
:
function
()
{
var
args
=
Array
.
prototype
.
s
p
lice
.
call
(
arguments
,
0
);
setValue
:
function
()
{
var
args
=
Array
.
prototype
.
slice
.
call
(
arguments
,
0
);
args
.
push
(
__SERVER
);
return
__CLIENT__
.
setValue
.
apply
(
null
,
args
);
},
...
...
@@ -915,14 +1081,14 @@ function __classSynergy(){
* [GET] Метод получения конвертированной таблицы
* @param {String} tableID Идентификатор (id) таблицы
*/
converTable
:
function
(
tableID
)
{
return
__CLIENT__
.
converTable
(
tableID
,
__SERVER
);
converTable
:
function
(
tableID
)
{
return
__CLIENT__
.
converTable
(
tableID
,
__SERVER
);
},
/**
* [GET] Метод получения всех компонентов в стиле листа
*/
getAsfData
:
function
()
{
getAsfData
:
function
()
{
return
__CLIENT__
.
getAsfData
(
__SERVER
);
},
...
...
@@ -930,16 +1096,16 @@ function __classSynergy(){
* [SET] Метод добавляет данные в `dataList`
* @param {Object} object Объект или массив объектов
*/
addAsfData
:
function
(
object
)
{
return
__CLIENT__
.
addAsfData
(
object
,
__SERVER
);
addAsfData
:
function
(
object
)
{
return
__CLIENT__
.
addAsfData
(
object
,
__SERVER
);
},
/**
* [SET] Метод изменения всех компонентов из листа
* @param {Array} newList Массив - лист объектов
*/
setAsfData
:
function
(
newList
)
{
return
__CLIENT__
.
setAsfData
(
newList
,
__SERVER
);
setAsfData
:
function
(
newList
)
{
return
__CLIENT__
.
setAsfData
(
newList
,
__SERVER
);
},
/**
...
...
@@ -948,8 +1114,8 @@ function __classSynergy(){
* @param {Int} count кол-во строк по умолчанию `1`
* @param {Boolean} visual Если данный параметр true то ряд(ы) не добавятся в таблицу по умолчанию `false`
*/
addRowTable
:
function
(
tableID
,
count
,
visual
)
{
return
__CLIENT__
.
addRowTable
(
tableID
,
count
,
visual
,
__SERVER
);
addRowTable
:
function
(
tableID
,
count
,
visual
)
{
return
__CLIENT__
.
addRowTable
(
tableID
,
count
,
visual
,
__SERVER
);
},
/**
...
...
@@ -957,30 +1123,30 @@ function __classSynergy(){
* @param {String} tableID Идентификатор (id) таблицы
* @param {Int | Array} index номер строки
*/
removeRowTable
:
function
(
tableID
,
index
)
{
return
__CLIENT__
.
removeRowTable
(
tableID
,
index
,
__SERVER
);
removeRowTable
:
function
(
tableID
,
index
)
{
return
__CLIENT__
.
removeRowTable
(
tableID
,
index
,
__SERVER
);
},
/**
* [GET] Метод получения строк (рядов) в дин.таблице
* @param {String} tableID Идентификатор (id) таблицы
*/
getRowsCount
:
function
(
tableID
)
{
return
__CLIENT__
.
getRowsCount
(
tableID
,
__SERVER
);
getRowsCount
:
function
(
tableID
)
{
return
__CLIENT__
.
getRowsCount
(
tableID
,
__SERVER
);
},
/**
* Метод очищает содержимое дин.таблицы
* @param {String} tableID Идентификатор (id) таблицы
*/
clearTable
:
function
(
tableID
)
{
return
__CLIENT__
.
clearTable
(
tableID
,
__SERVER
);
clearTable
:
function
(
tableID
)
{
return
__CLIENT__
.
clearTable
(
tableID
,
__SERVER
);
},
/**
* Метод сохранения формы
*/
save
:
function
()
{
save
:
function
()
{
return
__CLIENT__
.
save
(
__SERVER
);
},
...
...
@@ -993,34 +1159,56 @@ function __classSynergy(){
* @param {String} login Логин пользователя (для выполнения метода от другого пользователя) *Не обязательно*
* @param {String} password Пароль пользователя *Не обязательно*
*/
api
:
function
(
method
,
options
){
if
(
!
__LOADFORM__
)
return
;
else
if
(
arguments
.
length
<
1
)
return
;
method
=
method
.
replace
(
/
(
.*rest
\/
api
\/)
/
,
''
);
type
=
(
!
options
||
!
options
.
type
?
'
GET
'
:
options
.
type
);
api
:
function
(
method
,
options
)
{
if
(
!
__LOADFORM__
||
arguments
.
length
<
1
)
{
return
;
}
method
=
method
.
replace
(
/
(
.*rest
\/
api
\/)
/
,
''
);
var
type
=
(
!
options
||
!
options
.
type
?
'
GET
'
:
options
.
type
);
var
api
;
var
result
;
var
host
=
'
http://127.0.0.1:8080/Synergy/rest/api/
'
;
var
client
=
new
org
.
apache
.
commons
.
httpclient
.
HttpClient
();
var
creds
=
new
org
.
apache
.
commons
.
httpclient
.
UsernamePasswordCredentials
((
options
&&
options
.
login
?
options
.
login
:
__LOGIN__
),(
options
&&
options
.
password
?
options
.
password
:
__PASSWORD__
));
var
creds
=
new
org
.
apache
.
commons
.
httpclient
.
UsernamePasswordCredentials
((
options
&&
options
.
login
?
options
.
login
:
__LOGIN__
),
(
options
&&
options
.
password
?
options
.
password
:
__PASSWORD__
));
client
.
getParams
().
setAuthenticationPreemptive
(
true
);
client
.
getState
().
setCredentials
(
org
.
apache
.
commons
.
httpclient
.
auth
.
AuthScope
.
ANY
,
creds
);
switch
(
type
){
switch
(
type
)
{
case
'
GET
'
:
var
_p
=
[];
if
(
options
&&
options
.
data
)
for
(
var
p
in
options
.
data
)
_p
.
push
(
p
+
'
=
'
+
options
.
data
[
p
]);
var
api
=
new
org
.
apache
.
commons
.
httpclient
.
methods
.
GetMethod
(
host
+
method
+
_p
.
join
(
'
&
'
));
api
.
setRequestHeader
(
'
Content-type
'
,
'
application/json
'
);
if
(
options
&&
options
.
data
)
{
for
(
var
p
in
options
.
data
)
{
_p
.
push
(
p
+
'
=
'
+
options
.
data
[
p
]);
}
}
api
=
new
org
.
apache
.
commons
.
httpclient
.
methods
.
GetMethod
(
host
+
method
+
_p
.
join
(
'
&
'
));
api
.
setRequestHeader
(
'
Content-type
'
,
'
application/json
'
);
client
.
executeMethod
(
api
);
var
result
=
api
.
getResponseBodyAsString
();
result
=
api
.
getResponseBodyAsString
();
break
;
case
'
POST
'
:
var
api
=
new
org
.
apache
.
commons
.
httpclient
.
methods
.
PostMethod
(
host
+
method
);
if
(
options
&&
options
.
data
)
for
(
var
p
in
options
.
data
)
api
.
addParameter
(
p
,
options
.
data
[
p
]);
api
=
new
org
.
apache
.
commons
.
httpclient
.
methods
.
PostMethod
(
host
+
method
);
if
(
options
&&
options
.
data
)
{
for
(
var
p
in
options
.
data
)
{
api
.
addParameter
(
p
,
options
.
data
[
p
]);
}
}
api
.
setRequestHeader
(
'
Content-type
'
,
'
application/x-www-form-urlencoded; charset=utf-8
'
);
var
result
=
client
.
executeMethod
(
api
);
result
=
client
.
executeMethod
(
api
);
break
;
default
:
}
api
.
releaseConnection
();
return
(
options
&&
options
.
dataType
==
'
text
'
?
result
:
JSON
.
parse
(
result
));
},
...
...
@@ -1029,30 +1217,30 @@ function __classSynergy(){
* Возвращает `documentID` по dataUUID
* @param {String | Int} dataUUID Идентификатор данных по форме
*/
getDocumentID
:
function
(
dataUUID
)
{
return
__CLIENT__
.
ApiUtils
.
getDocumentID
(
dataUUID
,
__SERVER
);
getDocumentID
:
function
(
dataUUID
)
{
return
__CLIENT__
.
ApiUtils
.
getDocumentID
(
dataUUID
,
__SERVER
);
},
/**
* Возвращает `dataUUID` по documentID
* @param {String} documentID Идентификатор документа
*/
getDataUUID
:
function
(
documentID
)
{
return
__CLIENT__
.
ApiUtils
.
getDataUUID
(
documentID
,
__SERVER
);
getDataUUID
:
function
(
documentID
)
{
return
__CLIENT__
.
ApiUtils
.
getDataUUID
(
documentID
,
__SERVER
);
},
/**
* Возвращает ход выполнения документа
* @param {String | Int} dataUUID Идентификатор данных по форме
*/
getProcessExecution
:
function
(
dataUUID
)
{
return
__CLIENT__
.
ApiUtils
.
getProcessExecution
(
dataUUID
,
__SERVER
);
getProcessExecution
:
function
(
dataUUID
)
{
return
__CLIENT__
.
ApiUtils
.
getProcessExecution
(
dataUUID
,
__SERVER
);
},
/**
* Возвращает список реестров (доступных пользователю)
*/
getRegistryList
:
function
()
{
getRegistryList
:
function
()
{
return
__CLIENT__
.
ApiUtils
.
getRegistryList
(
__SERVER
);
}
}
...
...
@@ -1062,25 +1250,27 @@ function __classSynergy(){
* Информация о данном классе
*/
this
.
about
=
{
author
:
function
()
{
author
:
function
()
{
return
'
Telegram:
\t
@yandexphp
\n
'
;
},
platform_versions
:
{
'
3.12
'
:
'
[Not support] - not verified
'
,
'
3.14
'
:
'
[Not support] - not verified
'
,
'
3.15
'
:
'
[Not support] - not verified
'
,
'
4.0
'
:
true
,
'
4.1
'
:
'
not verified
'
'
3.12
'
:
'
[Not support] - not verified
'
,
'
3.14
'
:
'
[Not support] - not verified
'
,
'
3.15
'
:
'
[Not support] - not verified
'
,
'
4.0
'
:
true
,
'
4.1
'
:
true
},
version
:
'
Version: 0.5.
0
Realese
'
,
version
:
'
Version: 0.5.
2
Realese
'
,
created
:
'
17.10.2018
'
}
/**
* Очистить работу
*/
this
.
destroy
=
function
(){
__PROTOCOL__
=
__HOSTNAME__
=
__HOST_ORIGIN__
=
__BASIC_AUTH__
=
__DOCUMENT_ID__
=
__DATAUUID__
=
__NODE_UUID__
=
__FORM_UUID__
=
__DATA__
=
__FULL_DATA__
=
__DOCUMENT_CHANGE__
=
__FORM_VERSION__
=
__OLD_DATAUUID__
=
__HOST__
=
__LOGIN__
=
__PASSWORD__
=
null
;
this
.
destroy
=
function
()
{
__PROTOCOL__
=
__HOSTNAME__
=
__HOST_ORIGIN__
=
__BASIC_AUTH__
=
__DOCUMENT_ID__
=
__DATAUUID__
=
__NODE_UUID__
=
__FORM_UUID__
=
__DATA__
=
__FULL_DATA__
=
__DOCUMENT_CHANGE__
=
__FORM_VERSION__
=
__OLD_DATAUUID__
=
__HOST__
=
__LOGIN__
=
__PASSWORD__
=
null
;
__EXECUTE__
=
__LOADFORM__
=
__FORMDATA__
=
false
;
__CLIENT__
=
__CLASS__
.
client
;
__SERVER__
=
__CLASS__
.
server
;
...
...
@@ -1090,7 +1280,30 @@ function __classSynergy(){
__CLASS__
=
this
;
(
function
__constructor
(){
(
function
__constructor
()
{
if
(
!
Object
.
hasOwnProperty
(
'
assign
'
))
{
Object
.
prototype
.
assign
=
function
()
{
let
res
=
arguments
[
0
];
for
(
let
i
=
1
;
i
<
arguments
.
length
;
i
++
)
{
let
obj
=
arguments
[
i
];
let
keys
=
Object
.
keys
(
obj
);
for
(
let
j
=
0
;
j
<
keys
.
length
;
j
++
)
{
res
[
keys
[
j
]]
=
obj
[
keys
[
j
]];
}
}
return
res
;
}
}
String
.
prototype
.
encodeURICyrillic
=
function
()
{
return
this
.
replace
(
/
[
А-Я
]
/ig
,
function
(
s
)
{
return
encodeURIComponent
(
""
+
s
);
});
}
__CLASS__
.
destroy
();
})();
...
...
@@ -1101,3 +1314,4 @@ function __classSynergy(){
* Создаем класс jSynergy
*/
let
jSynergy
=
new
__classSynergy
();
jSynergy
.
setConnection
(
false
,
login
,
password
);
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