Commit 1ca1b9e2 authored by Olessya Khussainova's avatar Olessya Khussainova

user ,odules

parent 1e817915
......@@ -42,6 +42,7 @@ crm/methodologist-manual/resources/img/canban.png -text
crm/methodologist-manual/resources/img/canban_2.png -text
crm/methodologist-manual/resources/img/connections.png -text
crm/methodologist-manual/resources/img/crm.png -text
crm/methodologist-manual/resources/img/custom_dyn_table.png -text
crm/methodologist-manual/resources/img/dfd.png -text
crm/methodologist-manual/resources/img/eventChooser.png -text
crm/methodologist-manual/resources/img/funnel_1.png -text
......@@ -71,6 +72,7 @@ crm/methodologist-manual/src/crm_consist/user_components.md -text
crm/methodologist-manual/src/crm_consist/user_components_button.md -text
crm/methodologist-manual/src/crm_consist/user_components_connection.md -text
crm/methodologist-manual/src/crm_consist/user_components_dyn_table.md -text
crm/methodologist-manual/src/crm_consist/user_components_dyn_table_themes.md -text
crm/methodologist-manual/src/crm_consist/user_components_registryChooser.md -text svneol=unset#text/plain
crm/methodologist-manual/src/crm_consist/user_modules.md -text
crm/methodologist-manual/src/crm_install.md -text
......
......@@ -11,7 +11,10 @@
- [Пользовательский компонент связи из интерфейса](#user_components.connection)
- [Динамическая таблица плана продаж](#user_components.dyn_table_themes)
<#include "crm_consist/user_components_registryChooser.md">
<#include "crm_consist/user_components_button.md">
<#include "crm_consist/user_components_dyn_table.md">
<#include "crm_consist/user_components_connection.md">
<#include "crm_consist/user_components_dyn_table_themes.md">
#### Динамическая таблица плана продаж {#user_components.dyn_table_themes}
Модифицированный компонент представляет собой динамическую таблицу формы
[Сделка](#formDeal).
Имеется возможность удалить столбец, содержащий поля "Тема сотрудничества"
(crm_form_deal_main2_theme_cN) и "План продаж" (crm_form_deal_main2_theme_pvalue_cN)
по нажатию на кнопку "X" над соответствующим столбцом. При сохранении документа
с удаленным столбцом соответствующий документ индекса
[r-crm_registry_deals_plans_custom](#dashboards_productivity) будет удален.
Имеется возможность добавить столбец, содержащий поля "Тема сотрудничества"
(crm_form_deal_main2_theme_cN) и "План продаж" (crm_form_deal_main2_theme_pvalue_cN)
по нажатию на лейбл "+ Добавить столбец". Идентификаторы компонентов нового
столбца:
* "Тема сотрудничества" - crm_form_deal_main2_theme_c%N+1%
* "План продаж" - crm_form_deal_main2_theme_pvalue_c%N+1%
где %N+1% - наибольший порядковый номер компонентов текущего документа + 1.
При сохранении документа с новым столбцом создается новый документ индекса
[r-crm_registry_deals_plans_custom](#dashboards_productivity).
В режиме чтения кнопки удаления ("Х") и добавления ("+ Добавить столбец")
столбцов не отображаются.
При создании новой записи реестра "План продаж" таблица имеет 14 столбцов,
содержащих поля "Тема сотрудничества" (crm_form_deal_main2_theme_cN) и
"План продаж" (crm_form_deal_main2_theme_pvalue_cN).
Максимально допустимое количество столбцов, содержащих поля "Тема сотрудничества"
(crm_form_deal_main2_theme_cN) и "План продаж" (crm_form_deal_main2_theme_pvalue_cN)
в документе по форме - 50. Если таблица имеет 50 столбцов, содержащих поля
"Тема сотрудничества" (crm_form_deal_main2_theme_cN) и "План продаж"
(crm_form_deal_main2_theme_pvalue_cN), по нажатию на лейбл "+ Добавить столбец"
отобразится сообщение об ошибке:
`Превышено максимальное количество столбцов`
![Модифицированная динамическая таблица](resources/img/custom_dyn_table.png)
......@@ -320,7 +320,7 @@ function setMode(radioButton) {
}
view.initDnd = redipsInit;
view.initDnd = redipsInit
```
......@@ -569,6 +569,7 @@ HTML код:
``` xml
<style>
.btn_boot-group-lg > .btn_boot, .btn_boot-lg {
......@@ -857,14 +858,15 @@ a.btn_boot.disabled, fieldset[disabled] a.btn_boot {
}
</style>
<div class="btn_boot-group" style="
width: 190px;
width:275px;
margin: 0 auto;
height: 26px;
align-self: center;
text-align: center;
" innerId="group">
<button type="button" class="btn_boot btn_boot-default" innerId="funnel">Воронка</button>
<button type="button" class="btn_boot btn_boot-default active" innerId="canban">Канбан</button>
<button type="button" class="btn_boot btn_boot-default active" innerId="canban">Поток</button>
<button type="button" class="btn_boot btn_boot-default " innerId="dashboard">Аналитика</button>
</div>
```
......@@ -880,18 +882,24 @@ $(".btn_boot-group > .btn_boot").click(function(){
var funnel = jQuery(view.container[0]).children("[innerId='group']").children("[innerId='funnel']");
funnel.text(i18n.tr('Воронка'));
var canban = jQuery(view.container[0]).children("[innerId='group']").children("[innerId='canban']");
canban.text(i18n.tr('Канбан'));
canban.text(i18n.tr('Поток'));
var dashboard = jQuery(view.container[0]).children("[innerId='group']").children("[innerId='dashboard']");
dashboard.text(i18n.tr('Аналитика'));
var funnel_cmp = view.playerView.getViewWithId('crm_form_funnel_funnel');
var canban_cmp = view.playerView.getViewWithId('crm_form_funnel_canban');
var bottom_cmp = view.playerView.getViewWithId('crm_form_funnel_bottom_sum');
var dashboard_cmp = view.playerView.getViewWithId('crm_form_funnel_dashboard');
var filterTable = view.playerView.getViewWithId('crm_form_funnel_filter_panel');
model.playerModel.funnelDrawn = false;
model.playerModel.canbanDrawn = false;
funnel.click(function(){
$('body').css('overflow', 'auto');
funnel_cmp.setVisible(true);
canban_cmp.setVisible(false);
bottom_cmp.setVisible(true);
canban_cmp.setVisible(false);
dashboard_cmp.setVisible(false);
model.playerModel.isFunnel = true;
filterTable.setVisible(true);
if (!model.playerModel.funnelDrawn) {
model.playerModel.redraw();
}
......@@ -901,11 +909,22 @@ canban.click(function(){
funnel_cmp.setVisible(false);
canban_cmp.setVisible(true);
bottom_cmp.setVisible(false);
dashboard_cmp.setVisible(false);
model.playerModel.isFunnel = false;
filterTable.setVisible(true);
if (!model.playerModel.canbanDrawn) {
model.playerModel.redraw();
}
});
dashboard.click(function(){
$('body').css('overflow', 'auto');
funnel_cmp.setVisible(false);
bottom_cmp.setVisible(false);
canban_cmp.setVisible(false);
dashboard_cmp.setVisible(true);
dashboard_cmp.calcDim();
filterTable.setVisible(false);
});
```
......@@ -924,6 +943,7 @@ HTML код:
``` xml
<style>
.btn_boot-group-lg > .btn_boot, .btn_boot-lg {
......@@ -1469,6 +1489,9 @@ var onItemClick = function () {
});
button.click(function () {
var data = getData();
if(!data){
return;
}
saveTask(data, function (result) {
notShowed.push({
taskID: JSON.parse(result).taskID,
......@@ -1491,9 +1514,29 @@ function getData() {
task = '';
}
var start = portal.player.model.getModelWithId('start').getValue();
var lead = portal.player.model.getModelWithId('lead');
var leadId = lead.getValue();
var leadName = lead.getTextValue();
var leadId = '';
var leadName = '';
if (lead) {
leadId = lead.getValue();
leadName = lead.getTextValue();
}
var deal = portal.player.model.getModelWithId('deal');
var dealId = '';
var dealName = '';
if (deal) {
dealId = deal.getValue();
dealName = deal.getTextValue();
}
if(!dealId && !leadId){
portal.player.view.getViewWithId('lead').markInvalid();
portal.player.view.getViewWithId('deal').markInvalid();
AS.SERVICES.showErrorMessage(i18n.tr("Выберите лида или сделку"));
return;
}
var breakChar = String.fromCharCode(13);
......@@ -1501,6 +1544,8 @@ function getData() {
dict + breakChar +
leadName + breakChar +
'#submodule=common&action=open_document&document_identifier=' + leadId + breakChar +
dealName + breakChar +
'#submodule=common&action=open_document&document_identifier=' + dealId + breakChar +
breakChar +
task;
......@@ -1535,16 +1580,13 @@ var portal = {
portal.clearPlayer();
portal.player = AS.FORMS.createPlayer();
portal.player.model.on(AS.FORMS.EVENT_TYPE.valueChange, function (event, model, view) {
var task = portal.player.model.getModelWithId('comment');
var start = portal.player.model.getModelWithId('start');
var lead = portal.player.model.getModelWithId('lead');
if (!task || !start || !lead) {
if (!start) {
return;
}
var startValue = start.getValue();
var leadValue = lead.getValue();
if (startValue && leadValue) {
if (startValue) {
jQuery("#save_button_task").removeAttr('disabled', 'disabled');
} else {
jQuery("#save_button_task").attr('disabled', 'disabled');
......@@ -1572,10 +1614,6 @@ var portal = {
portal.player.view.appendTo($('#form_player_div'));
//jQuery('.asf-datePopup').datepicker("option", "minDate", new Date(2016, 12, 21));
}
};
......@@ -1665,16 +1703,22 @@ function createNotification(taskObject, taskID) {
var textInfo = jQuery('<div></div>', {class: 'text_info'});
var dictValue = jQuery('<div title="' + _.escape(taskObject[1]) + '" class="dict_block">' + taskObject[1] + '</div>');
textInfo.append(dictValue);
var comment = jQuery('<div title="' + _.escape(taskObject[5]) + '" class="comment_block">' + taskObject[5] + '</div>');
var comment = jQuery('<div title="' + _.escape(taskObject[7]) + '" class="comment_block">' + taskObject[7] + '</div>');
textInfo.append(comment);
infoBlock.append(textInfo);
var linkBlock = jQuery('<div class="link_block"><a title="' + _.escape(taskObject[2]) + '" href="' + taskObject[3] + '">' + taskObject[2] + '</a></div>');
var linkDealBlock = jQuery('<div class="link_block"><a title="' + _.escape(taskObject[4]) + '" href="' + taskObject[5] + '">' + taskObject[4] + '</a></div>');
var element = jQuery("<div class='notification'></div>");
element.append(infoBlock);
if (taskObject[2]) {
element.append(linkBlock);
}
if (taskObject[4]) {
element.append(linkDealBlock);
}
element.append(buttonBlock);
return element;
}
......@@ -1747,7 +1791,7 @@ function clearAllNotifications() {
* Создана ли заметка через нужную форму
*/
function isValidTask(taskObject) {
return taskObject[0] == 'Напоминание!' && taskObject.length == 6;
return taskObject[0] == 'Напоминание!' && taskObject.length == 8;
}
/**
......@@ -1771,8 +1815,11 @@ jQuery(document).ready(function () {
var notificationPanel = jQuery("<div class='notification-container'></div>");
var showed = [];
var notShowed = [];
var loaded = false;
function addPanel() {
jQuery("body").append(notificationPanel)
if (!loaded) {
loaded = true;
jQuery("body").append(notificationPanel);
notificationPanel.show(function () {
loadTasks(function (data) {
clearAllNotifications();
......@@ -1797,6 +1844,7 @@ function addPanel() {
showNotify();
});
});
}
}
//Иконка колокольчика
......
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