Commit 66dc4740 authored by Olessya Khussainova's avatar Olessya Khussainova

user modules

parent 1ca1b9e2
......@@ -91,8 +91,10 @@ crm/spec/resources/img/canban.png -text
crm/spec/resources/img/canban_2.png -text
crm/spec/resources/img/connections.png -text
crm/spec/resources/img/crm.png -text
crm/spec/resources/img/custom_dyn_table.png -text
crm/spec/resources/img/dfd.png -text
crm/spec/resources/img/eventChooser.png -text
crm/spec/resources/img/expired_deals.png -text
crm/spec/resources/img/funnel_1.png -text
crm/spec/resources/img/funnel_2.png -text
crm/spec/resources/img/funnel_3.png -text
......@@ -131,6 +133,7 @@ crm/spec/src/crm_consist/user_components.md -text
crm/spec/src/crm_consist/user_components_button.md -text
crm/spec/src/crm_consist/user_components_connection.md -text
crm/spec/src/crm_consist/user_components_dyn_table.md -text
crm/spec/src/crm_consist/user_components_dyn_table_themes.md -text
crm/spec/src/crm_consist/user_components_registryChooser.md -text
crm/spec/src/index.md -text
crm/spec/src/sys_reqs.md -text
......
......@@ -2899,6 +2899,7 @@
* [Запись контакта](#contactRecord)
* [Запись лида](#leadRecord)
* [Запись мероприятия](#eventRecord)
* [Запись сделки](#dealRecord)
* [Шаблоны документов](#docTemplates)
* [Акт приема-передачи](#certificate)
* [Договор поставки (единовременная оплата)](#contract100)
......@@ -2918,7 +2919,7 @@
+--------------------------------------------------------+----------------------------------------------------------+
| Добавить в "Избранное" пользователя по умолчанию | включен |
+--------------------------------------------------------+----------------------------------------------------------+
| Группа | Все маркетологи |
| Группа | Все маркетологи, Все специалисты по продажам |
+--------------------------------------------------------+----------------------------------------------------------+
#### Запись контакта {#contactRecord}
......@@ -2934,7 +2935,7 @@
+--------------------------------------------------------+----------------------------------------------------------+
| Добавить в "Избранное" пользователя по умолчанию | включен |
+--------------------------------------------------------+----------------------------------------------------------+
| Группа | Все маркетологи |
| Группа | Все маркетологи, Все специалисты по продажам |
+--------------------------------------------------------+----------------------------------------------------------+
#### Запись лида {#leadRecord}
......@@ -2966,7 +2967,23 @@
+--------------------------------------------------------+----------------------------------------------------------+
| Добавить в "Избранное" пользователя по умолчанию | включен |
+--------------------------------------------------------+----------------------------------------------------------+
| Группа | Все маркетологи |
| Группа | Все маркетологи, Все специалисты по продажам |
+--------------------------------------------------------+----------------------------------------------------------+
#### Запись сделки {#dealRecord}
+--------------------------------------------------------+----------------------------------------------------------+
| Свойство | Значение |
+========================================================+==========================================================+
| Тип | пункт |
+--------------------------------------------------------+----------------------------------------------------------+
| Код | crm_menu_addDeal |
+--------------------------------------------------------+----------------------------------------------------------+
| Реестр | crm_registry_deals |
+--------------------------------------------------------+----------------------------------------------------------+
| Добавить в "Избранное" пользователя по умолчанию | включен |
+--------------------------------------------------------+----------------------------------------------------------+
| Группа | Все специалисты по продажам |
+--------------------------------------------------------+----------------------------------------------------------+
#### Шаблоны документов {#docTemplates}
......@@ -2992,7 +3009,7 @@
+--------------------------------------------------------+----------------------------------------------------------+
| Добавить в "Избранное" пользователя по умолчанию | включен |
+--------------------------------------------------------+----------------------------------------------------------+
| Группа | Все маркетологи |
| Группа | Все маркетологи, Все специалисты по продажам |
+--------------------------------------------------------+----------------------------------------------------------+
#### Договор поставки (единовременная оплата) {#contract100}
......@@ -3008,7 +3025,7 @@
+--------------------------------------------------------+----------------------------------------------------------+
| Добавить в "Избранное" пользователя по умолчанию | включен |
+--------------------------------------------------------+----------------------------------------------------------+
| Группа | Все маркетологи |
| Группа | Все маркетологи, Все специалисты по продажам |
+--------------------------------------------------------+----------------------------------------------------------+
#### Договор поставки (оплата частями) {#contractPart}
......@@ -3024,7 +3041,7 @@
+--------------------------------------------------------+----------------------------------------------------------+
| Добавить в "Избранное" пользователя по умолчанию | включен |
+--------------------------------------------------------+----------------------------------------------------------+
| Группа | Все маркетологи |
| Группа | Все маркетологи, Все специалисты по продажам |
+--------------------------------------------------------+----------------------------------------------------------+
#### Коммерческое предложение {#offer}
......@@ -3040,7 +3057,7 @@
+--------------------------------------------------------+----------------------------------------------------------+
| Добавить в "Избранное" пользователя по умолчанию | включен |
+--------------------------------------------------------+----------------------------------------------------------+
| Группа | Все маркетологи |
| Группа | Все маркетологи, Все специалисты по продажам |
+--------------------------------------------------------+----------------------------------------------------------+
### Внешние модули {#externalModules}
......
......@@ -308,7 +308,7 @@ function setMode(radioButton) {
}
view.initDnd = redipsInit;
view.initDnd = redipsInit
```
......@@ -425,7 +425,7 @@ JAVASCRIPT код:
const data = {
normal: [
['Первичная регистрация', [0, ''], '#e73a00'],
['Первичная регистрация', [0, ''], '#e73a00'],
['Квалификация', [0, ''], '#fa6c00'],
['Взращивание', [0, ''], '#ffa900'],
['Подтверждение интереса', [0, ''], '#ffc500'],
......@@ -557,6 +557,7 @@ HTML код:
``` xml
<style>
.btn_boot-group-lg > .btn_boot, .btn_boot-lg {
......@@ -845,14 +846,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>
```
......@@ -868,18 +870,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();
}
......@@ -889,11 +897,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);
});
```
......@@ -912,6 +931,7 @@ HTML код:
``` xml
<style>
.btn_boot-group-lg > .btn_boot, .btn_boot-lg {
......@@ -1457,6 +1477,9 @@ var onItemClick = function () {
});
button.click(function () {
var data = getData();
if(!data){
return;
}
saveTask(data, function (result) {
notShowed.push({
taskID: JSON.parse(result).taskID,
......@@ -1479,9 +1502,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);
......@@ -1489,6 +1532,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;
......@@ -1523,16 +1568,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');
......@@ -1560,10 +1602,6 @@ var portal = {
portal.player.view.appendTo($('#form_player_div'));
//jQuery('.asf-datePopup').datepicker("option", "minDate", new Date(2016, 12, 21));
}
};
......@@ -1653,16 +1691,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);
element.append(linkBlock);
if (taskObject[2]) {
element.append(linkBlock);
}
if (taskObject[4]) {
element.append(linkDealBlock);
}
element.append(buttonBlock);
return element;
}
......@@ -1735,7 +1779,7 @@ function clearAllNotifications() {
* Создана ли заметка через нужную форму
*/
function isValidTask(taskObject) {
return taskObject[0] == 'Напоминание!' && taskObject.length == 6;
return taskObject[0] == 'Напоминание!' && taskObject.length == 8;
}
/**
......@@ -1759,32 +1803,36 @@ 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)
notificationPanel.show(function () {
loadTasks(function (data) {
clearAllNotifications();
data.forEach(function (task) {
var taskObject = getTaskObjectArray(task.task);
if (isValidTask(taskObject)) {
var object = {
taskID: task.taskID,
taskObject: taskObject,
start: task.start,
task: task.task,
finish: task.finish
};
if (isTimeToShow(task.start)) {
showed.push(object);
} else {
notShowed.push(object);
if (!loaded) {
loaded = true;
jQuery("body").append(notificationPanel);
notificationPanel.show(function () {
loadTasks(function (data) {
clearAllNotifications();
data.forEach(function (task) {
var taskObject = getTaskObjectArray(task.task);
if (isValidTask(taskObject)) {
var object = {
taskID: task.taskID,
taskObject: taskObject,
start: task.start,
task: task.task,
finish: task.finish
};
if (isTimeToShow(task.start)) {
showed.push(object);
} else {
notShowed.push(object);
}
}
}
});
checkTimeInArray();
showNotify();
});
checkTimeInArray();
showNotify();
});
});
}
}
//Иконка колокольчика
......
......@@ -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}
МОдифицированный компонент представляет собой динамическую таблицу. Блок
Модифицированный компонент представляет собой динамическую таблицу. Блок
таблицы содержит в себе компоненты:
* пиктограмма типа активности
......
#### Динамическая таблица плана продаж {#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)
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