Commit ea33c879 authored by Valentin Skripnikov's avatar Valentin Skripnikov

-

parent 3134fdcc
body, div, span, input, button {
font-family: "Droid Sans", arial, serif;
font-size: 14px;
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
}
.hidden {
display: none;
}
.portal_button {
background-color: #df6c6d;
border-color: #df6c6d;
color: #ffffff;
padding-left: 20px;
padding-right: 20px;
height: 30px;
border: none;
margin-left: 10px;
margin-right: 10px;
}
.portal-center {
text-align: center;
vertical-align: top
}
.portal-toolbar {
padding: 10px;
color: #6e8ebd
}
#form_player_container {
/* border: 3px solid #6e8ebd; */
outline: 1px #ffffff solid;
margin-left: auto;
margin-right: auto;
width: 1000px;
min-height: 400px;
background-color: #ffffff;
padding-top: 20px;
padding-bottom: 60px;
margin-bottom: 20px;
}
#form_player_div {
width: 1000px;
min-height: 200px;
}
#search_input {
background-color: #6e8ebd;
border: 1px #6e8ebd solid;
height: 30px;
width: 200px;
padding-left: 10px
}
#send_button {
margin-left: auto;
margin-right: auto;
width: 200px;
margin-bottom: 20px;
}
#message {
background-color: #ffffff;
border: 3px solid #df6c6d;
outline: 1px #932121 solid;
z-index: 2;
position: absolute;
top: 100px;
left: 30%;
color: #303030;
padding: 10px;
max-width: 40%;
min-width: 40%;
}
#message_text {
color: #303030;
}
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<script>
FORM_PLAYER_URL_PREFIX = "http://demoextfp.synergy.tm/Synergy/";
</script>
<!-- LOCALIZATION LIBRARY -->
<script src="http://demoextfp.synergy.tm/Synergy/js/i18next.min.js" type="application/javascript"></script>
<!-- JS FORMS -->
<link rel="stylesheet" href="http://demoextfp.synergy.tm/Synergy/js/form.player.css"/>
<script src="http://demoextfp.synergy.tm/Synergy/js/vendor.js" type="text/javascript"></script>
<script src="http://demoextfp.synergy.tm/Synergy/js/form.player.js" type="text/javascript"></script>
<!-- PORTAL SCRIPTS AND STYLESHEET -->
<script src="index.js" type="text/javascript"></script>
<link href="index.css" rel="stylesheet"/>
<link href="sample.portal.css" rel="stylesheet"/>
</head>
<body>
<div style="z-index: 0" class="portal-center">
<div class="portal-toolbar" id="portal_toolbar">
<span> Введите номер заявки </span><input type="text" id="search_input"/>
<button id="search_button" class="portal_button search_button" value="SEARCH" onclick="portal.searchData()">SEARCH</button>
<button id="create_button" class="portal_button create_button" value="CREATE" onclick="portal.createPlayer()">CREATE</button>
</div>
<div id="form_player_container">
<div id="form_player_div">
</div>
</div>
<button id="send_button" class="portal_button hidden" value="SEND" onclick="portal.saveData()"> SEND</button>
</div>
<div id="message" class="hidden">
<span id="message_text"></span>
</div>
</body>
</html>
'use strict';
var synergyURL = "http://demoextfp.synergy.tm/Synergy/";
var tokenServiceURL = "http://demoextfp.synergy.tm/TokenService/rest/tokenService/getToken";
AS.OPTIONS.locale = "ru";
AS.OPTIONS.coreUrl = "http://demoextfp.synergy.tm/Synergy/";
var portal = {
player: null,
/**
* показать сообщение об ошибке
* @param{string} message
*/
showMessage: function (message) {
jQuery("#message_text").html(message);
jQuery("#message").show();
},
/**
* скрыть панель сообщений
*/
hideMessage: function () {
jQuery("#message").hide();
},
/**
* очистить текущий проигрыватель форм
*/
clearPlayer: function () {
if (portal.player) {
portal.player.destroy();
}
jQuery("#send_button").hide();
portal.player = null;
},
/**
* добавить новый проигрыватель форм
*/
createPlayer: function (dataId) {
portal.clearPlayer();
portal.player = AS.FORMS.createPlayer();
AS.FORMS.bus.on(AS.FORMS.EVENT_TYPE.formShow, function (event, model, view) {
model.on(AS.FORMS.EVENT_TYPE.dataLoad, function () {
});
if (view.editable) {
jQuery("#send_button").show();
jQuery("#send_button").removeAttr('disabled', 'disabled');
}
});
portal.player.view.setEditable(_.isUndefined(dataId));
portal.player.showFormData("7dd2a298-0cb7-4ec7-ba67-ecc59c86e1aa", 0, dataId);
portal.player.view.appendTo($('#form_player_div'));
portal.player.model.on("valueChange", function () {
portal.hideMessage();
});
},
/**
* искать форму по указанному номеру
*/
searchData: function () {
var counterValue = jQuery("#search_input").val();
AS.FORMS.ApiUtils.simpleAsyncGet("rest/api/asforms/search?formUUID=7dd2a298-0cb7-4ec7-ba67-ecc59c86e1aa&search=" + encodeURIComponent(counterValue) + "&field=counter&type=exact", function (data) {
if (data === null || !(data instanceof Array) || data.length === 0) {
portal.showMessage("Заявка с указанным номером не найдена");
return;
}
var dataId = data[0];
portal.createPlayer(dataId);
});
},
/**
* сохранить данные, получить их, отобразить номер счетчика для дальнейшего поиска
*/
saveData: function () {
var errors = portal.player.model.getErrors();
if (errors.length > 0) {
portal.showMessage("Введите все обязательные поля");
return;
}
jQuery("#send_button").attr('disabled', 'disabled');
var counterValue = portal.player.model.getModelWithId('counter').getValue();
AS.FORMS.ApiUtils.simpleAsyncGet("rest/api/registry/create_doc?registryID=59ad0163-2eac-460a-af1f-c0f7c7757dec", function (result) {
if (result.errorCode != 0) {
portal.showMessage("Во время сохранения данных по форме произошли ошибки. Обратитесь к администратору");
return;
}
portal.player.model.asfDataId = result.dataUUID;
portal.player.saveFormData(function (result) {
if (_.isUndefined(result)) {
portal.showMessage("Во время сохранения данных по форме произошли ошибки. Обратитесь к администратору");
return;
}
AS.FORMS.ApiUtils.simpleAsyncGet('rest/api/asforms/data/' + result, function (data) {
data.data.forEach(function (value) {
if (value.id === 'counter') {
counterValue = value.value;
portal.showMessage("Ваша заявка была принята в обработку. Номер заявки - " + counterValue);
}
});
});
portal.clearPlayer();
});
});
}
};
$(document).ready(function () {
jQuery.ajax({
method: "GET",
url: tokenServiceURL + "?url=" + synergyURL,
success: function (data) {
AS.OPTIONS.login = "$key";
AS.OPTIONS.password = data;
portal.createPlayer();
}
});
jQuery(document).mouseup(function (e) {
var container = jQuery("#message");
if (!container.is(e.target) && container.has(e.target).length === 0) {
container.hide();
}
});
});
.asf-textBox, .asf-dateBox, .asf-timeBox {
background-color: #FFFFFF;
background-image: none;
border: 1px solid #e5e6e7;
border-radius: 1px;
padding: 6px 6px;
font-family: "Droid Sans", arial, serif !important;
font-size: 14px !important;
height: 34px;
display: inline-block;
transition: border 0.5s ease;
}
.asf-textBox:focus, .asf-dateBox:focus, .asf-timeBox:focus {
border: 1px solid #1ab394;
}
.ns-tagItem {
background-color: #c3ded9;
border: 1px solid #1ab394;
box-sizing: border-box;
line-height: 20px;
}
.ns-tagContainer {
padding: 6px 0px 0 6px;
min-height: 34px;
border-radius: 0;
width: calc(100% - 34px) !important;
}
.asf-browseButton, .asf-calendar-button, .asf-file-choose-button, .asf-user-chooser {
height: 34px;
width: 34px;
border-radius: 0;
background-color: #1ab394;
border: 1px solid #1ab394;
}
.asf-file-choose-button {
width: 120px;
color: #ffffff;
}
.asf-label {
font-weight: bold;
color: #676a6c;
font-family: "Droid Sans", arial, serif !important;
}
.signsList {
color: #676a6c;
font-family: "Droid Sans", arial, serif !important;
}
body, div, span, input, button {
font-family: "Droid Sans", arial, serif;
font-size: 14px;
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
}
.hidden {
display: none;
}
.portal_button {
background-color: #df6c6d;
border-color: #df6c6d;
color: #ffffff;
padding-left: 20px;
padding-right: 20px;
height: 30px;
border: none;
margin-left: 10px;
margin-right: 10px;
}
.portal-center {
text-align: center;
vertical-align: top
}
.portal-toolbar {
padding: 10px;
color: #6e8ebd
}
#form_player_container {
/*border: 3px solid #6e8ebd;*/
outline: 1px #ffffff solid;
margin-left: auto;
margin-right: auto;
width: 1000px;
min-height: 400px;
background-color: #ffffff;
padding-top: 20px;
padding-bottom: 60px;
margin-bottom: 20px;
}
#form_player_div {
width: 1000px;
min-height: 200px;
}
#search_input {
background-color: #6e8ebd;
border: 1px #6e8ebd solid;
height: 30px;
width: 200px;
padding-left: 10px
}
#send_button {
margin-left: auto;
margin-right: auto;
width: 200px;
margin-bottom: 20px;
}
#message {
background-color: #ffffff;
border: 3px solid #df6c6d;
outline: 1px #932121 solid;
z-index: 2;
position: absolute;
top: 100px;
left: 30%;
color: #303030;
padding: 10px;
max-width: 40%;
min-width: 40%;
}
#message_text {
color: #303030;
}
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<script>
FORM_PLAYER_URL_PREFIX = "http://demoextfp.synergy.tm/Synergy/";
</script>
<!-- LOCALIZATION LIBRARY -->
<script src="http://demoextfp.synergy.tm/Synergy/js/i18next.min.js" type="application/javascript"></script>
<!-- JS FORMS -->
<link rel="stylesheet" href="http://demoextfp.synergy.tm/Synergy/js/form.player.css"/>
<script src="http://demoextfp.synergy.tm/Synergy/js/vendor.js" type="text/javascript"></script>
<script src="http://demoextfp.synergy.tm/Synergy/js/form.player.js" type="text/javascript"></script>
<!-- PORTAL SCRIPTS AND STYLESHEET -->
<script src="index.js" type="text/javascript"></script>
<link href="index.css" rel="stylesheet"/>
<script src="uc3.js" type="text/javascript"></script>
</head>
<body>
<div style="z-index: 0" class="portal-center">
<div class="portal-toolbar" id="portal_toolbar">
<span> Введите номер заявки </span><input type="text" id="search_input"/>
<button id="search_button" class="portal_button search_button" value="SEARCH" onclick="portal.searchData()">SEARCH</button>
<button id="create_button" class="portal_button create_button" value="CREATE" onclick="portal.createPlayer()">CREATE</button>
</div>
<div id="form_player_container">
<div id="form_player_div">
</div>
</div>
<button id="send_button" class="portal_button hidden" value="SEND" onclick="portal.saveData()"> SEND</button>
</div>
<div id="message" class="hidden">
<span id="message_text"></span>
</div>
</body>
</html>
'use strict';
var synergyURL = "http://demoextfp.synergy.tm/Synergy/";
var tokenServiceURL = "http://demoextfp.synergy.tm/TokenService/rest/tokenService/getToken";
AS.OPTIONS.locale = "ru";
AS.OPTIONS.coreUrl = "http://demoextfp.synergy.tm/Synergy/";
var portal = {
player: null,
/**
* показать сообщение об ошибке
* @param{string} message
*/
showMessage: function (message) {
jQuery("#message_text").html(message);
jQuery("#message").show();
},
/**
* скрыть панель сообщений
*/
hideMessage: function () {
jQuery("#message").hide();
},
/**
* очистить текущий проигрыватель форм
*/
clearPlayer: function () {
if (portal.player) {
portal.player.destroy();
}
jQuery("#send_button").hide();
portal.player = null;
},
/**
* добавить новый проигрыватель форм
*/
createPlayer: function (dataId) {
portal.clearPlayer();
portal.player = AS.FORMS.createPlayer();
AS.FORMS.bus.on(AS.FORMS.EVENT_TYPE.formShow, function (event, model, view) {
model.on(AS.FORMS.EVENT_TYPE.dataLoad, function () {
});
if (view.editable) {
jQuery("#send_button").show();
jQuery("#send_button").removeAttr('disabled', 'disabled');
}
});
portal.player.view.setEditable(_.isUndefined(dataId));
portal.player.showFormData("7dd2a298-0cb7-4ec7-ba67-ecc59c86e1aa", 0, dataId);
portal.player.view.appendTo($('#form_player_div'));
portal.player.model.on("valueChange", function () {
portal.hideMessage();
});
},
/**
* искать форму по указанному номеру
*/
searchData: function () {
var counterValue = jQuery("#search_input").val();
AS.FORMS.ApiUtils.simpleAsyncGet("rest/api/asforms/search?formUUID=7dd2a298-0cb7-4ec7-ba67-ecc59c86e1aa&search=" + encodeURIComponent(counterValue) + "&field=counter&type=exact", function (data) {
if (data === null || !(data instanceof Array) || data.length === 0) {
portal.showMessage("Заявка с указанным номером не найдена");
return;
}
var dataId = data[0];
portal.createPlayer(dataId);
});
},
/**
* сохранить данные, получить их, отобразить номер счетчика для дальнейшего поиска
*/
saveData: function () {
var errors = portal.player.model.getErrors();
if (errors.length > 0) {
portal.showMessage("Введите все обязательные поля");
return;
}
jQuery("#send_button").attr('disabled', 'disabled');
var counterValue = portal.player.model.getModelWithId('counter').getValue();
AS.FORMS.ApiUtils.simpleAsyncGet("rest/api/registry/create_doc?registryID=59ad0163-2eac-460a-af1f-c0f7c7757dec", function (result) {
if (result.errorCode != 0) {
portal.showMessage("Во время сохранения данных по форме произошли ошибки. Обратитесь к администратору");
return;
}
portal.player.model.asfDataId = result.dataUUID;
portal.player.saveFormData(function (result) {
if (_.isUndefined(result)) {
portal.showMessage("Во время сохранения данных по форме произошли ошибки. Обратитесь к администратору");
return;
}
AS.FORMS.ApiUtils.simpleAsyncGet('rest/api/asforms/data/' + result, function (data) {
data.data.forEach(function (value) {
if (value.id === 'counter') {
counterValue = value.value;
portal.showMessage("Ваша заявка была принята в обработку. Номер заявки - " + counterValue);
}
});
});
portal.clearPlayer();
});
});
}
};
$(document).ready(function () {
jQuery.ajax({
method: "GET",
url: tokenServiceURL + "?url=" + synergyURL,
success: function (data) {
AS.OPTIONS.login = "$key";
AS.OPTIONS.password = data;
portal.createPlayer();
}
});
jQuery(document).mouseup(function (e) {
var container = jQuery("#message");
if (!container.is(e.target) && container.has(e.target).length === 0) {
container.hide();
}
});
});
/**
* Created by user on 11.08.16.
*/
// вешаем лисенер на событие открытия формы
var fillInIIN = jQuery("<button>", {class: "portal_button"});
fillInIIN.html("Заполнить ИИН");
fillInIIN.click(function () {
if (portal.player == null) {
return;
}
var user = portal.player.model.getModelWithId("author").getValue();
if (user === null) {
return;
}
var personID = user.personID;
var IIN = ""; // some logic for getting IIN from server
var utf8 = unescape(encodeURIComponent(personID));
for (var i = 0; i < utf8.length; i++) {
IIN += utf8.charCodeAt(i) + "";
}
portal.player.model.getModelWithId("iin").setValue(IIN);
});
AS.FORMS.bus.on(AS.FORMS.EVENT_TYPE.formShow, function (event, model, view) {
// если проигрыватель открылся в режиме чтения то ничего не делаем
if (!view.editable) {
return;
}
jQuery("#portal_toolbar").append(fillInIIN);
});
AS.FORMS.bus.on(AS.FORMS.EVENT_TYPE.formDestroy, function (event, model, view) {
jQuery("#portal_toolbar").remove(fillInIIN);
});
......@@ -941,6 +941,8 @@ ARTA Synergy при загрузке внешнего web-модуля буде
:numbered:
integration/extfp-usecases/uc1
integration/extfp-usecases/uc2
integration/extfp-usecases/uc3
Ссылки на модули системы и их внутренние элементы
-------------------------------------------------
......
Вариант 2. Изменение вида отображения формы согласно стилю портала (CSS)
------------------------------------------------------------------------
Расширение варианта 1. Внешний вид отображения формы меняется согласно стилю портала:
* шрифт меняется с «Times New Roman» на «DroidSans»;
* все лейблы выделяются полужирным начертанием;
* поля ввода становятся прямоугольными без закруглений по краям;
* меняется минимальная высота полей ввода;
* все кнопки окрашиваются в зеленый цвет (#1ab394).
.. raw:: html
<iframe src="../../_static/html/integration/extfp-usecases/uc2/index.html" scrolling='no' height="930px" width="100%" style="border:1px solid grey;"></iframe>
Вариант 3. Автозаполнение данных формы из внешнего портала
----------------------------------------------------------
Расширение варианта 1. По нажатию на кнопку внешнего портала «Заполнить ИИН»
поле формы «ИИН» автоматически заполняется.
.. raw:: html
<iframe src="../../_static/html/integration/extfp-usecases/uc3/index.html" scrolling='no' height="930px" width="100%" style="border:1px solid grey;"></iframe>
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment