124 lines
4.6 KiB
JavaScript
124 lines
4.6 KiB
JavaScript
import { Controller } from 'stimulus';
|
|
const loader = require("./../components/loader.js");
|
|
const helper = require("./../components/helper.js");
|
|
|
|
/*
|
|
* This is an example Stimulus controller!
|
|
*
|
|
* Any element with a data-controller="default" attribute will cause
|
|
* this controller to be executed. The name "default" comes from the filename:
|
|
* default_controller.js -> "default"
|
|
*
|
|
* Delete this file or adapt it for your use!
|
|
*/
|
|
export default class extends Controller {
|
|
connect() {
|
|
loader.loadSDK('system').then(function(webSDK) {
|
|
webSDK.on('init', function() {
|
|
if (this.data.user.authenticated) {
|
|
runWebSDK(webSDK);
|
|
}
|
|
});
|
|
})
|
|
|
|
let runWebSDK = function (webSDK) {
|
|
this.showNamePatient(webSDK.data.user.fullName);
|
|
this.element.addEventListener('click', function () {
|
|
this.changeResponsible(webSDK);
|
|
}.bind(this))
|
|
}.bind(this)
|
|
|
|
$(popup).on('hidden.bs.modal', function () {
|
|
this.querySelector('.modal-title').innerHTML = '';
|
|
this.querySelector('.modal-dialog').classList.add('modal-lg');
|
|
this.querySelector('.modal-body').innerHTML = '';
|
|
|
|
if (this.querySelector('.modal-footer')) {
|
|
this.querySelector('.modal-footer').remove();
|
|
}
|
|
});
|
|
}
|
|
|
|
showNamePatient(fullName) {
|
|
document.getElementById('fullName').innerHTML = fullName;
|
|
}
|
|
|
|
changeResponsible(webSDK) {
|
|
var popup = document.getElementById('popup');
|
|
popup.querySelector('.modal-title').innerHTML = 'Выбор пациента';
|
|
popup.querySelector('.modal-dialog').classList.remove('modal-lg');
|
|
|
|
var popupBody = document.getElementById('popup-body');
|
|
popupBody.innerHTML = '';
|
|
|
|
webSDK.data.user.represents.forEach(function (represent) {
|
|
var div = document.createElement('div');
|
|
div.classList = 'form-check';
|
|
|
|
var input = document.createElement('input');
|
|
input.id = represent.pcode;
|
|
input.classList = 'form-check-input';
|
|
input.value = represent.pcode;
|
|
input.type = "radio";
|
|
input.name = "changePatient";
|
|
|
|
if (webSDK.data.user.representId == represent.pcode) {
|
|
input.checked = 'true';
|
|
}
|
|
|
|
div.append(input);
|
|
|
|
var label = document.createElement('label');
|
|
label.setAttribute('for', represent.pcode);
|
|
label.classList = 'form-check-label';
|
|
label.innerHTML = represent.fullName;
|
|
div.append(label);
|
|
|
|
popupBody.append(div);
|
|
|
|
});
|
|
|
|
var div = document.createElement('div');
|
|
div.classList = 'modal-footer';
|
|
|
|
var button = document.createElement('button');
|
|
button.classList = 'btn btn-outline-secondary';
|
|
button.innerHTML = 'Выбрать';
|
|
button.addEventListener('click', function() {
|
|
loader.btnLoader(this, true);
|
|
window.webSDK.selectClient({
|
|
id: document.querySelector('input[name="changePatient"]:checked').value
|
|
}).then(function (user) {
|
|
$.ajax({
|
|
method: "POST",
|
|
crossDomain: false,
|
|
url: "/api/authenticated",
|
|
contentType: "application/x-www-form-urlencoded",
|
|
dataType: "json",
|
|
data: {
|
|
user: user,
|
|
uid: user.id
|
|
},
|
|
success(response) {
|
|
if (response.data.success == true) {
|
|
var parser = document.createElement('a');
|
|
parser.href = response.data.redirect;
|
|
|
|
window.location.replace(document.location.origin + parser.pathname + parser.search);
|
|
}
|
|
}
|
|
});
|
|
}).catch(function (e) {
|
|
helper.sendRequest({
|
|
data: {'error': e, method: 'selectClient'}
|
|
}, helper.getHostname() + '/api/log', "POST", "json", true, "application/json");
|
|
})
|
|
});
|
|
|
|
div.append(button);
|
|
popup.querySelector('.modal-content').append(div);
|
|
|
|
$(popup).modal('show');
|
|
}
|
|
}
|