refactor js, move scripts in eternal files

remotes/origin/mitri4
Dmitriy Shesterkin 9 years ago
parent d56fc92cdb
commit 9fdcbe2053
  1. 129
      project/static/js/client/search-external-api.js
  2. 16
      project/static/js/dialogs.js
  3. 36
      project/static/js/profile/search-bank-external-api.js
  4. 158
      project/static/js/profile/search-main-external-api.js
  5. 166
      project/templates/customer/clients/list.html
  6. 246
      project/templates/customer/profile/edit.html
  7. 28
      project/templates/hbs/bank-tpl.html

@ -0,0 +1,129 @@
$(document).ready(function() {
var clientForm = $("#client-edit-form"),
clientSearch = $("#searchClientInput", clientForm),
clientName = $("#id_name", clientForm),
clientInn = $("#id_inn", clientForm),
clientKpp = $("#id_kpp", clientForm),
clientOqrn = $("#id_ogrn", clientForm),
clientAddress = $("#id_address", clientForm),
bankSearch = $("#searchClientBankInput", clientForm),
bankBic = $("#id_bank_bik", clientForm),
bankFullName = $("#id_bank_name", clientForm),
bankCorrespondentAccount = $("#id_bank_korr_account", clientForm),
clientInputs = [clientName, clientInn, clientOqrn, clientAddress];
function confirmChangeDataPromise(inputArray) {
var dlg_msg = $('#dialog-message');
var emptyInput = true;
var defer = $.Deferred();
for (var i = inputArray.length - 1; i >= 0; --i) {
if (inputArray[i].val()) {
emptyInput = false;
break;
}
}
if (!emptyInput) {
dlg_msg.dialog({
title: 'Изменить данные',
buttons:
{'Да':
function(){
defer.resolve(true);
$(this).dialog('close');
}, 'Нет':
function(){
defer.resolve(false);
$(this).dialog('close');
}
}
}).html('Имеются уже заполненные данные, они будут изменены, продолжить?');
dlg_msg.dialog('open');
} else {
defer.resolve(true);
}
return defer.promise();
}
function cleanSearchInput() {
clientSearch.val('');
}
function changeDataInInputs(data) {
if (data.type === "LEGAL"|| data.type === "INDIVIDUAL" ) {
if (data.name)
clientName.val(join([data.opf && data.opf.short || "", data.name.short || data.name.full], " "));
if (data.name && data.name.full)
clientName.val(join([data.opf && data.opf.full || "", data.name.full], " "));
clientInn.val(data.inn);
clientKpp.val(data.kpp);
clientOqrn.val(data.ogrn);
if (data.address)
clientAddress.val(data.address.value);
} else {
if (data.name && data.name.full || "") {
bankFullName.val(data.name && data.name.full || "");
}
if (data.name && data.name.payment || "") {
bankFullName.val(data.name && data.name.payment || "");
}
bankBic.val(data.bic);
bankCorrespondentAccount.val(data.correspondent_account);
var advancedObj = expandObject(data, 118, "right");
fillResultSearchBankTemplate(advancedObj);
}
}
function showSuggestion(suggestion) {
var data = suggestion.data;
if (!data) return;
if (data.type === "LEGAL"|| data.type === "INDIVIDUAL" ) {
confirmChangeDataPromise(clientInputs).then(function (answer) {
if (answer) {
changeDataInInputs(data)
}
cleanSearchInput();
}) ;
} else {
changeDataInInputs(data)
}
}
function fillInput(input, type, count) {
input.suggestions({
token: daDataExternalApiKey,
type: type,
count: count,
onSelect: showSuggestion
});
}
bankSearch.on('keyup',(function () {
if (bankSearch.val().length === 0) {
clearResultSearchDiv($("#searchBankResult"));
clearSearchInputs([bankFullName, bankBic, bankCorrespondentAccount]);
}
}));
clientSearch.on('keyup',(function () {
if (clientSearch.val().length === 0) {
clearSearchInputs([clientName, clientInn, clientKpp, clientOqrn, clientAddress]);
} else {
}
}));
fillInput(clientSearch, "PARTY", 5);
fillInput(bankSearch, "BANK", 1);
});

@ -156,6 +156,18 @@ function update_form_fields(form, obj_values) {
//------------------------------------------------------- //-------------------------------------------------------
function getType() {
return isOrg ? "LEGAL" : "INDIVIDUAL";
}
function getPartOfPersonName(fullName, part) {
if (!fullName) return;
return fullName.split(' ')[part];
}
function expandObject(obj, width, align) { function expandObject(obj, width, align) {
obj["templateColWidth"] = width; obj["templateColWidth"] = width;
obj["templateColAlign"] = align; obj["templateColAlign"] = align;
@ -163,6 +175,7 @@ function expandObject(obj, width, align) {
return obj return obj
} }
function clearResultSearchDiv(div) { function clearResultSearchDiv(div) {
if ($(div).html().trim() !== '') { if ($(div).html().trim() !== '') {
@ -170,6 +183,7 @@ function clearResultSearchDiv(div) {
} }
} }
function clearSearchInputs(input) { function clearSearchInputs(input) {
if (input instanceof Array) { if (input instanceof Array) {
@ -184,11 +198,13 @@ function clearSearchInputs(input) {
} }
function join(arr) { function join(arr) {
var separator = arguments.length > 1 ? arguments[1] : ", "; var separator = arguments.length > 1 ? arguments[1] : ", ";
return arr.filter(function(n){return n}).join(separator); return arr.filter(function(n){return n}).join(separator);
} }
function fillResultSearchBankTemplate(obj) { function fillResultSearchBankTemplate(obj) {
var bankResultDiv = $("#searchBankResult"); var bankResultDiv = $("#searchBankResult");

@ -0,0 +1,36 @@
$(document).ready(function() {
var bankForm = $("#bank-account-edit-form"),
bankSearch = $("#searchBankAPI"),
bankBic = $("#id_bik", bankForm),
bankShortName = $("#id_short_name", bankForm),
bankFullName = $("#id_name", bankForm),
bankCorrespondentAccount = $("#id_korr_account", bankForm);
function showSuggestion(suggestion) {
var data = suggestion.data;
if (!data) return;
bankShortName.val(data.name && data.name.payment || "");
bankFullName.val(data.name && data.name.full && data.name.payment || "");
bankBic.val(data.bic);
bankCorrespondentAccount.val(data.correspondent_account);
var advancedObj = expandObject(data, 110, "left");
fillResultSearchBankTemplate(advancedObj);
}
bankSearch.suggestions({
token: daDataExternalApiKey,
type: "BANK",
count: 2,
onSelect: showSuggestion
});
bankSearch.on('keyup',(function () {
if (bankSearch.val().length === 0) {
clearResultSearchDiv($("#searchBankResult"));
clearSearchInputs([bankFullName, bankShortName, bankBic, bankCorrespondentAccount]);
}
}));
});

@ -0,0 +1,158 @@
$(document).ready(function() {
var paramsType,
profileForm = $("#profile-form"),
profileSearch = $("#searchAPI"),
profileBossName = $("#id_boss_name", profileForm),
profileBossSurname =$("#id_boss_surname", profileForm),
profileBossMiddleName =$("#id_boss_midname", profileForm),
profileInn = $("#id_inn", profileForm),
profileKpp = $("#id_kpp", profileForm),
profileOqrn = $("#id_ogrn", profileForm),
profileAddress = $("#id_address", profileForm),
profileLegalAddress = $("#id_jur_address", profileForm),
profilePostalAddress = $("#id_real_address", profileForm),
profileInputs = [];
function confirmChangeDataPromise(inputArray) {
var dlg_msg = $('#dialog-message');
var emptyInput = true;
var defer = $.Deferred();
for (var i = inputArray.length - 1; i >= 0; --i) {
if (inputArray[i].val()) {
emptyInput = false;
break;
}
}
if (!emptyInput) {
dlg_msg.dialog({
title: 'Изменить данные',
buttons:
{'Да':
function(){
defer.resolve(true);
$(this).dialog('close');
}, 'Нет':
function(){
defer.resolve(false);
$(this).dialog('close');
}
}
}).html('Имеются уже заполненные данные, они будут изменены, продолжить?');
dlg_msg.dialog('open');
} else {
defer.resolve(true);
}
return defer.promise();
}
function cleanSearchInput() {
profileSearch.val('');
}
function changeDataInInputs(data) {
if (paramsType ==="LEGAL") {
if (data.name)
profileOrgName.val(join([data.opf && data.opf.short || "", data.name.short || data.name.full], " "));
if (data.name && data.name.full)
profileOrgFullName.val(join([data.opf && data.opf.full || "", data.name.full], " "));
if (data.address) {
profileAddress.val(data.address.value);
profileLegalAddress.val(data.address.value);
}
if (data.management) {
var management = data.management;
if (management.post) {profileBossTitle.val(data.management.post)}
if (management.name) {
var fullName = management.name;
profileBossSurname.val(getPartOfPersonName(fullName, 0));
profileBossName.val(getPartOfPersonName(fullName, 1));
profileBossMiddleName.val(getPartOfPersonName(fullName, 2));
}
}
} else {
if (data.name && data.name.full) {
var profileFullName = data.name.full;
profileBossSurname.val(getPartOfPersonName(profileFullName, 0));
profileBossName.val(getPartOfPersonName(profileFullName, 1));
profileBossMiddleName.val(getPartOfPersonName(profileFullName, 2));
}
if (data.address) {
var address = data.address.value;
profileAddress.val(address);
profileLegalAddress.val(address);
profilePostalAddress.val(address);
}
if (data.state && data.state.registration_date) {
profileRegDate.val((new Date(data.state.registration_date)).toLocaleDateString())
}
}
profileInn.val(data.inn);
profileKpp.val(data.kpp);
profileOqrn.val(data.ogrn);
}
function showSuggestion(suggestion) {
var data = suggestion.data;
if (!data) return;
confirmChangeDataPromise(profileInputs).then(function (answer) {
if (answer) {
changeDataInInputs(data)
}
cleanSearchInput();
}) ;
}
paramsType = getType();
if (paramsType === "LEGAL") {
var profileOrgName = $('#id_name', profileForm),
profileOrgFullName = $('#id_full_name', profileForm),
profileBossTitle = $('#id_boss_title', profileForm);
profileInputs = [
profileOrgName, profileOrgFullName, profileInn, profileKpp,
profileOqrn, profileBossName, profileBossSurname, profileBossMiddleName,
profileAddress, profileLegalAddress
];
} else {
var profileRegDate = $('#id_ip_reg_date', profileForm);
profileInputs = [
profileBossName, profileBossSurname, profileBossMiddleName,
profileInn, profileKpp, profileOqrn, profileRegDate,
profileAddress, profileLegalAddress, profilePostalAddress
];
}
profileSearch.suggestions({
token: daDataExternalApiKey,
type: "PARTY",
params: {
type: paramsType
},
count: 5,
onSelect: showSuggestion
});
});

@ -47,173 +47,11 @@
{% block js %} {% block js %}
<script src="{{ STATIC_URL }}js/client.commons.js"></script> <script src="{{ STATIC_URL }}js/client.commons.js"></script>
<script src="{{ STATIC_URL }}js/client.list.js"></script> <script src="{{ STATIC_URL }}js/client.list.js"></script>
<script src="{{ STATIC_URL }}js/paginator.js"></script> <script src="{{ STATIC_URL }}js/paginator.js"></script>
<script src="{{ STATIC_URL }}js/lib/jquery.suggestions.min.js"></script> <script src="{{ STATIC_URL }}js/lib/jquery.suggestions.min.js"></script>
<script src="{{ STATIC_URL }}js/client/search-external-api.js"></script>
<script> {% include 'hbs/bank-tpl.html' %}
$(document).ready(function() {
var clientForm = $("#client-edit-form"),
clientSearch = $("#searchClientInput", clientForm),
clientName = $("#id_name", clientForm),
clientInn = $("#id_inn", clientForm),
clientKpp = $("#id_kpp", clientForm),
clientOqrn = $("#id_ogrn", clientForm),
clientAddress = $("#id_address", clientForm),
bankSearch = $("#searchClientBankInput", clientForm),
bankBic = $("#id_bank_bik", clientForm),
bankFullName = $("#id_bank_name", clientForm),
bankCorrespondentAccount = $("#id_bank_korr_account", clientForm),
clientInputs = [clientName, clientInn, clientOqrn, clientAddress];
function confirmChangeDataPromise(inputArray) {
var dlg_msg = $('#dialog-message');
var emptyInput = true;
var defer = $.Deferred();
for (var i = inputArray.length - 1; i >= 0; --i) {
if (inputArray[i].val()) {
emptyInput = false;
break;
}
}
if (!emptyInput) {
dlg_msg.dialog({
title: 'Изменить данные',
buttons:
{'Да':
function(){
defer.resolve(true);
$(this).dialog('close');
}, 'Нет':
function(){
defer.resolve(false);
$(this).dialog('close');
}
}
}).html('Имеются уже заполненные данные, они будут изменены, продолжить?');
dlg_msg.dialog('open');
} else {
defer.resolve(true);
}
return defer.promise();
}
function cleanSearchInput() {
clientSearch.val('');
}
function changeDataInInputs(data) {
if (data.type === "LEGAL"|| data.type === "INDIVIDUAL" ) {
if (data.name)
clientName.val(join([data.opf && data.opf.short || "", data.name.short || data.name.full], " "));
if (data.name && data.name.full)
clientName.val(join([data.opf && data.opf.full || "", data.name.full], " "));
clientInn.val(data.inn);
clientKpp.val(data.kpp);
clientOqrn.val(data.ogrn);
if (data.address)
clientAddress.val(data.address.value);
} else {
if (data.name && data.name.full || "") {
bankFullName.val(data.name && data.name.full || "");
}
if (data.name && data.name.payment || "") {
bankFullName.val(data.name && data.name.payment || "");
}
bankBic.val(data.bic);
bankCorrespondentAccount.val(data.correspondent_account);
var advancedObj = expandObject(data, 118, "right");
fillResultSearchBankTemplate(advancedObj);
}
}
function showSuggestion(suggestion) {
var data = suggestion.data;
if (!data) return;
if (data.type === "LEGAL"|| data.type === "INDIVIDUAL" ) {
confirmChangeDataPromise(clientInputs).then(function (answer) {
if (answer) {
changeDataInInputs(data)
}
cleanSearchInput();
}) ;
} else {
changeDataInInputs(data)
}
}
function fillInput(input, type, count) {
input.suggestions({
token: daDataExternalApiKey,
type: type,
count: count,
onSelect: showSuggestion
});
}
bankSearch.on('keyup',(function () {
if (bankSearch.val().length === 0) {
clearResultSearchDiv($("#searchBankResult"));
clearSearchInputs([bankFullName, bankBic, bankCorrespondentAccount]);
}
}));
clientSearch.on('keyup',(function () {
if (clientSearch.val().length === 0) {
clearSearchInputs([clientName, clientInn, clientKpp, clientOqrn, clientAddress]);
} else {
}
}));
fillInput(clientSearch, "PARTY", 5);
fillInput(bankSearch, "BANK", 1);
});
</script>
{# TODO: to carry out #}
{% verbatim %}
<script id="resultSearchBankTemplate" type="text/x-handlebars-template">
<table>
<tbody>
<tr>
<td width="{{ templateColWidth }}" align="{{ templateColAlign }}">Наименование:</td>
{{#if name.full}}
<td>{{ name.full }}</td>
{{else}}
<td>{{ name.payment }}</td>
{{/if}}
</tr>
<tr>
<td></td>
<td><span class="bank-short-name">{{ name.payment }}</span></td>
</tr>
<tr>
<td width="{{ templateColWidth }}" align="{{ templateColAlign }}">БИК:</td>
<td>
<span class="bank-bic">{{ bic }}</span>
<span class="bank-account-label">К/сч:</span>
<span class="bank-account">{{ correspondent_account }}</span>
</td>
</tr>
</tbody>
</table>
</script>
{% endverbatim %}
{% endblock %} {% endblock %}

@ -548,7 +548,6 @@
</script> </script>
<script src="{{ STATIC_URL }}js/customer/profile.edit.js"></script> <script src="{{ STATIC_URL }}js/customer/profile.edit.js"></script>
<script src="{{ STATIC_URL }}js/lib/jquery.suggestions.min.js"></script> <script src="{{ STATIC_URL }}js/lib/jquery.suggestions.min.js"></script>
<script> <script>
@ -558,248 +557,9 @@
window.isOrg = {{ profile.is_org }}; window.isOrg = {{ profile.is_org }};
}); });
</script> </script>
<script src="{{ STATIC_URL }}js/profile/search-main-external-api.js"></script>
<script src="{{ STATIC_URL }}js/profile/search-bank-external-api.js"></script>
<script> {% include 'hbs/bank-tpl.html' %}
function getType() {
return isOrg ? "LEGAL" : "INDIVIDUAL";
}
function getPartOfPersonName(fullName, part) {
if (!fullName) return;
return fullName.split(' ')[part];
}
$(document).ready(function() {
var paramsType,
profileForm = $("#profile-form"),
profileSearch = $("#searchAPI"),
profileBossName = $("#id_boss_name", profileForm),
profileBossSurname =$("#id_boss_surname", profileForm),
profileBossMiddleName =$("#id_boss_midname", profileForm),
profileInn = $("#id_inn", profileForm),
profileKpp = $("#id_kpp", profileForm),
profileOqrn = $("#id_ogrn", profileForm),
profileAddress = $("#id_address", profileForm),
profileLegalAddress = $("#id_jur_address", profileForm),
profilePostalAddress = $("#id_real_address", profileForm),
profileInputs = [];
function confirmChangeDataPromise(inputArray) {
var dlg_msg = $('#dialog-message');
var emptyInput = true;
var defer = $.Deferred();
for (var i = inputArray.length - 1; i >= 0; --i) {
if (inputArray[i].val()) {
emptyInput = false;
break;
}
}
if (!emptyInput) {
dlg_msg.dialog({
title: 'Изменить данные',
buttons:
{'Да':
function(){
defer.resolve(true);
$(this).dialog('close');
}, 'Нет':
function(){
defer.resolve(false);
$(this).dialog('close');
}
}
}).html('Имеются уже заполненные данные, они будут изменены, продолжить?');
dlg_msg.dialog('open');
} else {
defer.resolve(true);
}
return defer.promise();
}
function cleanSearchInput() {
profileSearch.val('');
}
function changeDataInInputs(data) {
if (paramsType ==="LEGAL") {
if (data.name)
profileOrgName.val(join([data.opf && data.opf.short || "", data.name.short || data.name.full], " "));
if (data.name && data.name.full)
profileOrgFullName.val(join([data.opf && data.opf.full || "", data.name.full], " "));
if (data.address) {
profileAddress.val(data.address.value);
profileLegalAddress.val(data.address.value);
}
if (data.management) {
var management = data.management;
if (management.post) {profileBossTitle.val(data.management.post)}
if (management.name) {
var fullName = management.name;
profileBossSurname.val(getPartOfPersonName(fullName, 0));
profileBossName.val(getPartOfPersonName(fullName, 1));
profileBossMiddleName.val(getPartOfPersonName(fullName, 2));
}
}
} else {
if (data.name && data.name.full) {
var profileFullName = data.name.full;
profileBossSurname.val(getPartOfPersonName(profileFullName, 0));
profileBossName.val(getPartOfPersonName(profileFullName, 1));
profileBossMiddleName.val(getPartOfPersonName(profileFullName, 2));
}
if (data.address) {
var address = data.address.value;
profileAddress.val(address);
profileLegalAddress.val(address);
profilePostalAddress.val(address);
}
if (data.state && data.state.registration_date) {
profileRegDate.val((new Date(data.state.registration_date)).toLocaleDateString())
}
}
profileInn.val(data.inn);
profileKpp.val(data.kpp);
profileOqrn.val(data.ogrn);
}
function showSuggestion(suggestion) {
var data = suggestion.data;
if (!data) return;
confirmChangeDataPromise(profileInputs).then(function (answer) {
if (answer) {
changeDataInInputs(data)
}
cleanSearchInput();
}) ;
}
paramsType = getType();
if (paramsType === "LEGAL") {
var profileOrgName = $('#id_name', profileForm),
profileOrgFullName = $('#id_full_name', profileForm),
profileBossTitle = $('#id_boss_title', profileForm);
profileInputs = [
profileOrgName, profileOrgFullName, profileInn, profileKpp,
profileOqrn, profileBossName, profileBossSurname, profileBossMiddleName,
profileAddress, profileLegalAddress
];
} else {
var profileRegDate = $('#id_ip_reg_date', profileForm);
profileInputs = [
profileBossName, profileBossSurname, profileBossMiddleName,
profileInn, profileKpp, profileOqrn, profileRegDate,
profileAddress, profileLegalAddress, profilePostalAddress
];
}
profileSearch.suggestions({
token: daDataExternalApiKey,
type: "PARTY",
params: {
type: paramsType
},
count: 5,
onSelect: showSuggestion
});
});
</script>
<script>
$(document).ready(function() {
var bankForm = $("#bank-account-edit-form"),
bankSearch = $("#searchBankAPI"),
bankBic = $("#id_bik", bankForm),
bankShortName = $("#id_short_name", bankForm),
bankFullName = $("#id_name", bankForm),
bankCorrespondentAccount = $("#id_korr_account", bankForm);
function showSuggestion(suggestion) {
var data = suggestion.data;
if (!data) return;
bankShortName.val(data.name && data.name.payment || "");
bankFullName.val(data.name && data.name.full && data.name.payment || "");
bankBic.val(data.bic);
bankCorrespondentAccount.val(data.correspondent_account);
var advancedObj = expandObject(data, 110, "left");
fillResultSearchBankTemplate(advancedObj);
}
bankSearch.suggestions({
token: daDataExternalApiKey,
type: "BANK",
count: 2,
onSelect: showSuggestion
});
bankSearch.on('keyup',(function () {
if (bankSearch.val().length === 0) {
clearResultSearchDiv($("#searchBankResult"));
clearSearchInputs([bankFullName, bankShortName, bankBic, bankCorrespondentAccount]);
}
}));
});
</script>
{# TODO: to carry out #}
{% verbatim %}
<script id="resultSearchBankTemplate" type="text/x-handlebars-template">
<table>
<tbody>
<tr>
<td width="{{ templateColWidth }}" align="{{ templateColAlign }}">Наименование:</td>
{{#if name.full}}
<td>{{ name.full }}</td>
{{else}}
<td>{{ name.payment }}</td>
{{/if}}
</tr>
<tr>
<td></td>
<td><span class="bank-short-name">{{ name.payment }}</span></td>
</tr>
<tr>
<td width="{{ templateColWidth }}" align="{{ templateColAlign }}">БИК:</td>
<td>
<span class="bank-bic">{{ bic }}</span>
<span class="bank-account-label">К/сч:</span>
<span class="bank-account">{{ correspondent_account }}</span>
</td>
</tr>
</tbody>
</table>
</script>
{% endverbatim %}
{% endblock js %} {% endblock js %}

@ -0,0 +1,28 @@
{% verbatim %}
<script id="resultSearchBankTemplate" type="text/x-handlebars-template">
<table>
<tbody>
<tr>
<td width="{{ templateColWidth }}" align="{{ templateColAlign }}">Наименование:</td>
{{#if name.full}}
<td>{{ name.full }}</td>
{{else}}
<td>{{ name.payment }}</td>
{{/if}}
</tr>
<tr>
<td></td>
<td><span class="bank-short-name">{{ name.payment }}</span></td>
</tr>
<tr>
<td width="{{ templateColWidth }}" align="{{ templateColAlign }}">БИК:</td>
<td>
<span class="bank-bic">{{ bic }}</span>
<span class="bank-account-label">К/сч:</span>
<span class="bank-account">{{ correspondent_account }}</span>
</td>
</tr>
</tbody>
</table>
</script>
{% endverbatim %}
Loading…
Cancel
Save