Commit fb4f30ff authored by Shohruh Tojiboev's avatar Shohruh Tojiboev

add publick tug components

parents
Pipeline #82 canceled with stages
<?
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die();
$arComponentDescription = array(
"NAME" => GetMessage("COMP_ALV_SETTINGS_TITLE"),
"DESCRIPTION" => GetMessage("COMP_ALV_SETTINGS_DESCR"),
);
?>
\ No newline at end of file
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
use \Bitrix\Main\Config\Option;
if (isset($_REQUEST['AJAX_CALL']) && $_REQUEST['AJAX_CALL'] == 'Y')
return;
// var_dump($arParams);
// die;
$arResult = $arParams['CHART_DATA'];
if (!(isset($arParams['TEMPLATE_HIDE']) && $arParams['TEMPLATE_HIDE'] == 'Y'))
$this->IncludeComponentTemplate();
return $arResult;
<?
$MESS["COMP_VI_SETTINGS_TITLE"] = "Composite component for telephony configuration";
$MESS["COMP_VI_SETTINGS_DESCR"] = "Composite component for telephony configuration";
?>
\ No newline at end of file
<?
$MESS["COMP_VI_ACCESS_DENIED"] = "Insufficient access permissions";
?>
\ No newline at end of file
<?
$MESS ['COMP_VI_SETTINGS_TITLE'] = "Комплексный компонент настроек телефонии";
$MESS ['COMP_VI_SETTINGS_DESCR'] = "Комплексный компонент настроек телефонии";
?>
\ No newline at end of file
<?php
$MESS['COMP_VI_ACCESS_DENIED'] = "Недостаточно прав доступа";
$MESS['ALV_QUEUE_COLOR_FREE'] = "Свободен";
$MESS['ALV_QUEUE_COLOR_DND'] = "ДНД";
$MESS['ALV_QUEUE_COLOR_INCALL'] = "Входящий звонок";
$MESS['ALV_QUEUE_COLOR_INTALK'] = "Входящий разговор";
$MESS['ALV_QUEUE_COLOR_OUTCALL'] = "Исходящий звонок";
$MESS['ALV_QUEUE_COLOR_OUTTALK'] = "Исходящий разговор";
$MESS['ALV_QUEUE_COLOR_OFFLINE'] = "Отключен";
$MESS['ALV_SIP_SERVER_STATUS'] = "Статус";
$MESS['ALOVOICE_AMI_HOST'] = "Адрес";
$MESS['ALOVOICE_AMI_PORT'] = "Порт";
$MESS['ALOVOICE_AMI_USER'] = "Пользователь";
$MESS['ALOVOICE_AMI_PASSWORD'] = "Пароль";
компонента tug.charts
/**
* '*' - обязательный параметр
**/
принимает
[
'CHART_DATA' => [
'SECTIONS' => [
[
'TITLE' => 'Статистика комманд', // Заголовок секции
'FIELDS' => [] // масиив с графиками
]
]
]
]
_____________________________________
Элемент 'FIELDS'
$FIELDS = [
[
'type' => '' // * тип
]
]
Тип может быть:
-PIE - круговой график
-XY - график ? ?
-SERIAL - график ? ?
-RADAR - график в виде радара
-FUNNEL - график ? ?
-CUSTOMN - пользовательский график
_____________________________________
Тип PIE
[
'TITLE' => '', // Заголовок графика
'TYPE' => 'PIE', // * тип
'DATA' => [ // * Массив с Элементами
[
'TITLE' => '', // Заголовок
'VALUE' => Number, // * значение
]
],
'ID' => '' // id графика
]
_____________________________________
Тип XY
[
'TITLE' => 'Статистика комманд по популярности', // Заголовок графика
'TYPE' => 'XY', // * тип
'DATA' => [ // * Массив с Элементами
[
'TITLE' => '', // Заголовок
'VALUE_X' => Number, // X координата
'VALUE_Y' => Number // Y координата
],
],
'GRAPHS' => [
// Массив с ??
[
'id' => '', // Id
'title' => '', // Заголовок группы
'type' => '', // возмодные типы ( "column" ) (Задан по умолчанию => '')
'bullet' => 'circle', // (Задан по умолчанию => 'circle')
'valueField' => 'TITLE', // ключ к значению в DATA (Задан по умолчанию => 'TITLE')
'xField' => 'VALUE_X', // ключ к значению в DATA (Задан по умолчанию => 'VALUE_X')
'yField' => 'VALUE_Y', // ключ к значению в DATA (Задан по умолчанию => 'VALUE_Y')
'fillAlphas' => 0.5, // полупрозрачность (Задан по умолчанию => 0.5)
'visibleInLegend' => true // (Задан по умолчанию => true)
]
],
'ID' => 'any_id2' // id графика
],
_____________________________________
Тип SERIAL
[
'TITLE' => '', // Заголовок графика
'TYPE' => 'SERIAL', // * тип
'DATA' => [
[
'TITLE' => '', // Заголовок
'VALUE' => 10, // значение
'VALUE2' => 20
]
],
'GRAPHS' => [
[
'id' => '', // Id
'title' => 'GROUP 1', // Заголовок группы
'type' => '', // возмодные типы ( "column" ) (Задан по умолчанию => '')
'valueField' => 'VALUE', // ключ к значению в DATA (Задан по умолчанию => 'VALUE')
'fillAlphas' => 0.5, // полупрозрачность (Задан по умолчанию => 0.5)
'visibleInLegend' => true // (Задан по умолчанию => true)
]
],
'ID' => 'any_id3' // id графика
],
_____________________________________
Тип RADAR
[
'TITLE' => 'Статистика комманд по популярности RADAR', // Заголовок
'TYPE' => 'RADAR', // * тип
'DATA' => [ // Массив с Элементами
[
'TITLE' => 'Command 1', // Заголовок
'VALUE' => 10, // значение
]
],
'GRAPHS' => [ //
[
'id' => 'cmd', // ID
'title' => '', // Заголовок для группы
'type' => 'column', // возмодные типы ( "column" ) (Задан по умолчанию => '')
'fillAlphas' => 0.5,
'visibleInLegend' => true
],
],
'ID' => 'any_id4' // ID
]
_____________________________________
Тип FUNNEL
[
'TITLE' => 'Статистика комманд по популярности FUNNEL', // Заголовок
'TYPE' => 'FUNNEL', // * Заголовок
'DATA' => [
[
'TITLE' => 'Command 1', // Заголовок
'VALUE' => 10, // Заголовок
]
],
'ID' => 'any_id6' // ID
]
/*******************************
***** ПРИМЕР ****
********************************/
[
'CHART_DATA' => [
'SECTIONS' => [
[
'TITLE' => 'Статистика комманд',
'FIELDS' => [
[
'TITLE' => 'Статистика комманды ### по пользователям',
'TYPE' => 'PIE',
'DATA' => [
[
'TITLE' => 'user 1',
'VALUE' => 60,
],
[
'TITLE' => 'user 2',
'VALUE' => 40,
],
],
'ID' => 'any_id'
],
[
'TITLE' => 'Статистика комманд по популярности',
'TYPE' => 'XY',
'DATA' => [
[
'TITLE' => 'Command 1',
'VALUE_Y' => 10,
'VALUE_X' => 20
],
[
'TITLE' => 'command 2',
'VALUE_Y' => 15,
'VALUE_X' => 15
],
[
'TITLE' => 'command 3',
'VALUE_X' => 30,
'VALUE_Y' => '50'
],
],
'GRAPHS' => [
[
'title' => 'Any title'
]
]
'ID' => 'any_id2'
],
[
'TITLE' => 'Статистика комманд по популярности SERIAL',
'TYPE' => 'SERIAL',
'DATA' => [
[
'TITLE' => 'Command 1',
'VALUE' => 10,
],
[
'TITLE' => 'command 2',
'VALUE' => 15,
],
[
'TITLE' => 'command3',
'VALUE' => 30,
],
],
'GRAPHS' => [
[
'title' => 'Any title'
]
],
'ID' => 'any_id3'
],
[
'TITLE' => 'Статистика комманд по популярности RADAR',
'TYPE' => 'RADAR',
'DATA' => [
[
'TITLE' => 'Command 1',
'VALUE' => 10,
],
[
'TITLE' => 'command 2',
'VALUE' => 15,
],
[
'TITLE' => 'command 3',
'VALUE' => 30,
],
],
'GRAPHS' => [
[
'type' => "column",
'title' => 'GROUP 1',
]
],
'ID' => 'any_id4'
],
[
'TITLE' => 'Статистика комманд по популярности FUNNEL',
'TYPE' => 'FUNNEL',
'DATA' => [
[
'TITLE' => 'Command 1',
'VALUE' => 10,
],
[
'TITLE' => 'command 2',
'VALUE' => 15,
],
[
'TITLE' => 'command3',
'VALUE' => 30,
],
],
'ID' => 'any_id6'
],
]
]
]
];
]
\ No newline at end of file
function createChaer() {
}
createChaer.prototype = {
}
\ No newline at end of file
.bot_statistics__gr {
height: 500px;
}
\ No newline at end of file
This diff is collapsed.
<?
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die();
$arComponentDescription = array(
"NAME" => GetMessage("COMP_ALV_SETTINGS_TITLE"),
"DESCRIPTION" => GetMessage("COMP_ALV_SETTINGS_DESCR"),
);
?>
\ No newline at end of file
<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
use \Bitrix\Main\Config\Option;
if (isset($_REQUEST['AJAX_CALL']) && $_REQUEST['AJAX_CALL'] == 'Y')
return;
$arResult = $arParams['FORM_DATA'];
if (!(isset($arParams['TEMPLATE_HIDE']) && $arParams['TEMPLATE_HIDE'] == 'Y'))
$this->IncludeComponentTemplate();
return $arResult;
<?
$MESS["COMP_VI_SETTINGS_TITLE"] = "Composite component for telephony configuration";
$MESS["COMP_VI_SETTINGS_DESCR"] = "Composite component for telephony configuration";
?>
\ No newline at end of file
<?
$MESS["COMP_VI_ACCESS_DENIED"] = "Insufficient access permissions";
?>
\ No newline at end of file
<?
$MESS ['COMP_VI_SETTINGS_TITLE'] = "Комплексный компонент настроек телефонии";
$MESS ['COMP_VI_SETTINGS_DESCR'] = "Комплексный компонент настроек телефонии";
?>
\ No newline at end of file
<?php
$MESS['COMP_VI_ACCESS_DENIED'] = "Недостаточно прав доступа";
$MESS['ALV_QUEUE_COLOR_FREE'] = "Свободен";
$MESS['ALV_QUEUE_COLOR_DND'] = "ДНД";
$MESS['ALV_QUEUE_COLOR_INCALL'] = "Входящий звонок";
$MESS['ALV_QUEUE_COLOR_INTALK'] = "Входящий разговор";
$MESS['ALV_QUEUE_COLOR_OUTCALL'] = "Исходящий звонок";
$MESS['ALV_QUEUE_COLOR_OUTTALK'] = "Исходящий разговор";
$MESS['ALV_QUEUE_COLOR_OFFLINE'] = "Отключен";
$MESS['ALV_SIP_SERVER_STATUS'] = "Статус";
$MESS['ALOVOICE_AMI_HOST'] = "Адрес";
$MESS['ALOVOICE_AMI_PORT'] = "Порт";
$MESS['ALOVOICE_AMI_USER'] = "Пользователь";
$MESS['ALOVOICE_AMI_PASSWORD'] = "Пароль";
<?
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
if (!CModule::IncludeModule('advertising'))
{
return;
}
/**
*
* function GetMessage - get msg from lang '.parameters.php'
*/
//$arTemplateParameters = array();
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
Компанента tug:tug.settings
* обязательные параметры
[
'FORM_DATA' => [
'FORM_ID' => 'ID формы *'
'SECTIONS' => [
[
'ID' => 'Id секции'
'TITLE' => 'Заголовок секции'
'FIELDS' => [
// 'подробнее в 1,1'
[
// пример
'type' => 'text',
'id' => 'text_inp_id'
'value' => '',
'title' => 'Введите текст'
]
]
]
],
'TEXTAREAS' => [
'TITLE' => STRING, // Заголовок
'FIELDS' => [ // массивом с данными
[
'ID' => STRING, // * ID
'TITLE' => STRING, // Заголовок
'BG_COLOR' => STRING, // Цвет Hex
'VALUE' => STRING, // Значение поля
'PLACEHOLDER' => STRING, // Подсказка поля
'TEXT' => STRING, // Тект под полем
]
]
],
'BUTTONS' => [
'standard_buttons' => [
'save' => 'Сохранить' // кнопка сохранить
'cancel' => 'Закрыть', // кнопка закрыть
'reset' => 'Сбросить', // кнопка сбросить форму
],
'custom_html' => '' // любой html код
],
'LOG_RESULT' => 'N' // вывести $arResult в консоль браузера ('Y/N')
]
]
____________________________________________________________
1,1 ---- 'FIELDS' => Поля формы
FIELDS = [
'type' => 'тип поля *' // подробнее в 1,2
]
____________________________________________________________
1,2 - 'type' --- тип поля
типы поля 'type'
'userbox' - выбор из списка пользователей
'text' - текстовое поле
'password' - поля для ввода паполя
'timeinterval' - поле дял ввода промежутка времени
'time' - поля для ввода времени
'list' - поле списка вариантов
'colorpicker' - поле для выбора цвета
'text_audiofile' - поле для загрузки аудио
'custom' - пользовательское поле
____________________________________________________________
1,2,1
Поля формы
[
'id' => 'id input-а *',
'type' => 'тип поля *',
'title' => 'Заголовок'
] - это параметры присутсвуют во всех типах
____________________________________________________________
параметры для userbox
[
]
____________________________________________________________
параметры для text и password
[
'value' => 'значение по умолчанию',
]
____________________________________________________________
параметры для timeinterval
[
'value' => 'значение по умолчанию (резделеить через "-")'
]
____________________________________________________________
параметры для time
[
'value' => 'значение по умолчанию может быть массивом(при multiple="Y")',
'multiple' => " (Y/N)",
'add_btn' => "кнопка добавить еще поле (Y/N)"
]
____________________________________________________________
параметры для number
[
'value' => 'значение по умолчанию'
]
____________________________________________________________
параметры для number
[
'value' => 'значение по умолчанию'
]
____________________________________________________________
параметры для list
[
'value' => 'значение по умолчанию',
'items' => 'список элементов *'
]
____________________________________________________________
параметры для colorpicker
[
'value' => 'значение по умолчанию (hex цвет)',
]
____________________________________________________________
параметры для text_audiofile
[
'label' => '',
'text' => [
'id' => '*'
'title' => '',
'value' => ''
], // *
'audiofile' => [
'id' => '*',
'value' => 'Путь к файлу',
'title' => ''
]
]
____________________________________________________________
параметры для custom
[
'value' => 'любой html код'
]
____________________________________________________________
This diff is collapsed.
<?
$MESS['TUG_SETTINGS_ADD_TIME_MSG'] = 'Add...';
\ No newline at end of file
<?
$MESS['TUG_SETTINGS_'] = 'aaaa';
\ No newline at end of file
<?
$MESS['TUG_SETTINGS_ADD_TIME_MSG'] = 'Еще...';
\ No newline at end of file
<?
$MESS['TUG_SETTINGS_'] = 'aaaa';
\ No newline at end of file
<?
$MESS['MULTY__ADD_FIELD'] = 'Добавить поле';
\ No newline at end of file
"use strict";
var ajaxFunctions = {
}
$().ready(function () {
var dataTogles = $("[data-toggle]");
var $form = $("#" + formId);
dataTogles.on("click", function () {
var $el = $(this);
var target = $el.data("target");
var $target = $(target);
$target.slideToggle(() => {
$target.css({
overflow: "visible"
})
});
});
$form.on("submit", function(e) {
e.preventDefault();
// clear empty multy fields
$form.find("input[data-field-multy], select[data-field-multy], textarea[data-field-multy]").each(function() {
var $el = $(this);
var val = $el.val();
if(val) {
return;
}
$el.remove();
})
this.submit();
});
})
function getCurrentCursorPositionSetVal() {
var sel, range, func;
if (window.getSelection) {
sel = window.getSelection();
if (sel.getRangeAt && sel.rangeCount) {
func = (html) => {
range = sel.getRangeAt(0);
range.deleteContents();
var el = document.createElement("div");
var frag = document.createDocumentFragment(), node, lastNode;
el.innerHTML = html;
while ( (node = el.firstChild) ) {
lastNode = frag.appendChild(node);
}
range.insertNode(frag);
if (lastNode) {
range = range.cloneRange();
range.setStartAfter(lastNode);
range.collapse(true);
sel.removeAllRanges();
sel.addRange(range);
}
}
}
} else if (document.selection && document.selection.type != "Control") {
func = (html) => document.selection.createRange().pasteHTML(html);
}
return func;
}
function MultyTextInput(selectors) {
this.selectors = selectors;
this.$get = {
fieldContainer: () => $(selectors.fieldContainer),
addFiled: () => $(selectors.addFiled),
cards: (s="") => $(selectors.fieldContainer + ' ' + selectors.card + s),
removeBtn: (s="") => $(selectors.fieldContainer + ' ' + selectors.removeBtn + s),
}
this.copyContainer = null;
};
MultyTextInput.prototype = {
init() {
var self = this;
var $addFiled = this.$get.addFiled();
var $removeBtn = this.$get.removeBtn();
var clone = this.getCopyContainer(this.$get.cards(":last"));
// this.$cloneNode = clone;
$addFiled.on("click", function() {
var cloneNode = clone.clone();
self.addEvents(cloneNode);
self.addFiled(cloneNode);
self.controller();
});
$removeBtn.on("click", function() {
self.removeFiled(this);
self.controller();
});
},
getCopyContainer(el) {
var copy = $(el)
.clone()
.attr({
id: ""
});
copy.find("input").val("");
return copy;
},
addEvents(node) {
var self = this;
var $node = $(node);
$node.find(this.selectors.removeBtn).on("click", function() {
self.removeFiled(this);
self.controller();
})
},
controller() {
var $cards = this.$get.cards();
if($cards.length > 1) {
this.$get.removeBtn().show();
return;
}
this.$get.removeBtn().hide();
},
addFiled(cloneNode) {
var $cont = this.$get.fieldContainer();
$cont.append(cloneNode)
},
removeFiled(el) {
var $el = $(el);
$el.parent().remove();
}
};
// function ajaxForm(form, options) {
// $(form).on("submit", function(e) {
// var ajaxParams = {
// url: $(form).attr("action"),
// method : $(form).attr("method"),
// data: $(form).serialize(),
// success: function(data) {
// options.function($(form, data))
// },
// error: function(er) {
// options.error($(form, er))
// }
// }
// // e.preventDefault();
// // $.ajax(ajaxParams);
// })
// // this.form = $(form);
// // this.success = options.success
// // this.error = options.error
// // this.init()
// }
// function defaultSuccess(form, data) {
// }
// function defaultError(form, data) {
// }
// ajaxForm.prototype = {
// init() {
// this.form.on("submit", function() {
// })
// },
// _send() {
// var params = {
// url: this.form.attr("action"),
// method: this.form.attr("method"),
// data: this.form.serialize(),
// success: this.options.function,
// error: this.options.error
// };
// $.ajax(params);
// }
// }
\ No newline at end of file
* {
box-sizing: border-box;
margin: 0;
padding: 0;
}
:root {
--theme-color-danger: #ff5752;
--theme-color-warn: #d5a933;
--theme-color-success: #7bd500;
--theme-color-primary: #4F9CED;
--theme-color-gray: #696969;
}
.ui-ctl-label-text {
padding-left: 20px;
}
/**
* Table
**/
table.sms-sender-grid-table,
table.sms-sender-grid-table td,
table.sms-sender-grid-table th {
border: 1px solid #ddd;
text-align: left;
}
table.sms-sender-grid-table {
border-collapse: collapse;
width: 100%;
}
table.sms-sender-grid-table th,
table.sms-sender-grid-table td {
padding: 15px;
}
table.sms-sender-grid-table,
table.sms-sender-grid-table td,
table.sms-sender-grid-table th {
border: 1px solid #ddd;
text-align: left;
}
table.sms-sender-grid-table {
border-collapse: collapse;
width: 100%;
}
table.sms-sender-grid-table th,
table.sms-sender-grid-table td {
padding: 15px;
}
.fixwidth .form-table-label-td {
width: 400px;
}
/**
* END Table
**/
/**
* color picker
**/
.color-picker label {
width: 150px;
display: inline-block;
text-align: right;
}
.color-picker {
margin: 5px;
padding: 3px;
}
.td_multy {
vertical-align: baseline;
}
.field__container {
margin: 0 !important;
margin-bottom: 0.5em !important;
}
/**
* END color picker
**/
/**
* ui
**/
.ui-form-block {
margin: 10px 0;
width: 87%;
}
.ui-form-block label {
min-width: 250px;
}
.ui-ctl-number {
width: 80px !important;
}
.ui-ctl-timeinterval,
.ui-ctl-timeinput {
display: flex;
flex-direction: row;
flex-wrap: wrap;
}
.ui-ctl-timeinterval input,
.ui-ctl-timeinput input {
width: 100px !important;
}
.ui-ctl-element {
z-index: auto !important;
overflow: visible !important;
}
.ui-time {
flex-basis: 0;
-ms-flex-positive: 1;
flex-grow: 1;
max-width: 100%;
width: 100px;
margin-right: 10px;
margin-bottom: 5px;
}
.ui-circle {
display: inline-block;
width: 15px;
height: 15px;
border-radius: 50%;
}
/** ui circle color **/
.ui-circle-success {
background-color: var(--theme-color-success);
}
.ui-circle-danger {
background-color: var(--theme-color-danger);
}
/** ui text color **/
.ui-text-danger {
color: var(--theme-color-danger);
}
.ui-text-success {
color: var(--theme-color-success);
}
.ui-text-warn {
color: var(--theme-color-warn);
}
.ui-text-primary {
color: var(--theme-color-primary);
}
/**
* END ui
**/
/**
* other
**/
.workarea-content-paddings {
min-height: 100%;
}
.alv_plus_icon:before {
background-image: url(data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%208%208%22%3E%0A%20%20%3Cpath%20fill%3D%22%23FFF%22%20fill-rule%3D%22evenodd%22%20d%3D%22M5%2C3%20L8%2C3%20L8%2C5%20L5%2C5%20L5%2C8%20L3%2C8%20L3%2C5%20L0%2C5%20L1.2246468e-16%2C3%20L3%2C3%20L3%2C0%20L5%2C0%20L5%2C3%20Z%22/%3E%0A%3C/svg%3E%0A);
opacity: .8;
display: block;
content: "";
width: 8px;
height: 8px;
position: absolute;
left: 8px;
top: 8px;
transition: opacity .3s;
}
.alv_plus_icon {
position: absolute;
cursor: pointer;
width: 18px;
height: 18px;
padding: 1px 2px 5px 5px;
font-weight: bold;
font-size: 1.5em;
background-color: #0069c4;
bottom: -10px;
right: 10px;
top: auto;
left: auto;
border-radius: 50%;
}
.form-talbe {
width: 100%;
}
.fieldset {
margin: 15px 0;
position: relative;
min-inline-size: auto;
}
.textareas_container {
padding-top: 1em;
padding-bottom: 1em;
display: grid;
grid-gap: 0.5em;
}
.box {
border-width: 2px;
border-style: solid;
}
.box__btn {
display: block;
width: 100%;
border: none;
cursor: pointer;
text-align: left;
}
.box__btn_icon {
border: none;
}
.box__content {
padding: .5em;
background-color: #eef2f4;
}
.box__btn:focus {
outline: 1px solid #222;
}
.box__content__text__placeholder {
color: #9e9e9e;
padding-top: 5px;
}
.emojionearea .emojionearea-editor {
height: auto !important;
max-height: none !important;
}
textarea {
width: 100%;
padding: 0.5em;
resize: none;
}
.w-full {
width: 100%;
}
regval {
color: var(--theme-color-gray);
display: inline !important;
text-decoration: underline;
cursor: pointer;
}
/* textarea:focus {
outline-color: #00ffff;
} */
\ No newline at end of file
This diff is collapsed.
<?
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die();
$arComponentDescription = array(
"NAME" => "AloVoice Peers", //GetMessage("COMP_ALV_SETTINGS_TITLE"),
"DESCRIPTION" => "AloVoice Peers", //GetMessage("COMP_ALV_SETTINGS_DESCR"),
);
?>
\ No newline at end of file
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
if (isset($_REQUEST['AJAX_CALL']) && $_REQUEST['AJAX_CALL'] == 'Y')
return;
$arResult = $arParams['TABLE_DATA'];
if (!empty($arResult)){
$this->IncludeComponentTemplate();
} else { echo "Table not found";}
\ No newline at end of file
<?
$MESS["COMP_VI_SETTINGS_TITLE"] = "Composite component for telephony configuration";
$MESS["COMP_VI_SETTINGS_DESCR"] = "Composite component for telephony configuration";
?>
\ No newline at end of file
<?
$MESS["COMP_VI_ACCESS_DENIED"] = "Insufficient access permissions";
?>
\ No newline at end of file
<?
$MESS ['COMP_VI_SETTINGS_TITLE'] = "Комплексный компонент настроек телефонии";
$MESS ['COMP_VI_SETTINGS_DESCR'] = "Комплексный компонент настроек телефонии";
?>
\ No newline at end of file
<?php
$MESS['COMP_VI_ACCESS_DENIED'] = "Недостаточно прав доступа";
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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