For the most impatient repository with the fact that it turns out at the end and the ability to "touch with your hands" - the client , the administration panel . After cloning, you need to initialize the submodules:
git clone https://bitbucket.org/Slavenin/hawk_advisor git submodule init && git submodule update
$('#chat').hawkChat({ userId: CHAT_CONTROL.userId, //id serverSideUrl: 'Chat.php', // groupName: CHAT_CONTROL.groupName, // useTabs: false, // useUserList: false, // inline: false, // title: ' ', // inMessageFormat: '<div class="chat-row triangle-right left" title="{time}"> \ <div class=""> \ <span class="chat-row-login">{from_login}</span>: \ <span class="chat-row-message">{message}</span> \ </div> \ </div>', // outMessageFormat: '<div class="chat-row triangle-right right" title="{time}"> \ <div class=""> \ <span class="login"></span>: \ <span class="message">{message}</span> \ </div> \ </div>', // openWithUser: [CHAT_CONTROL.manager], // onInMessage: function(msg, str) { if(msg.event === 'hawk.chat_message') { var $body = $('.chat-mesasge-panel.active'); if($body.find('.mCSB_container').size()) { $body = $body.find('.mCSB_container'); } $body.append(str); } } // });
var $body = $('.chat-body', '#chat'); $('.chat-header', '#chat').dblclick(function () { var $container = $('.chat-container', '#chat'); if($body.is(":visible")) { $body.hide(); $container.stop().animate({ height: '0px' }, 1000); } else { var to = '+=0px'; $container.stop().animate({ height: '465px', top: to }, 1000, 'linear', function () { $body.show(); // var offset = $container.offset(); if(offset.top < 0) { $container.stop().animate({ top: '+=' + offset.top|0 + 'px' }) } $container.find('.chat-text-input').focus(); }); } });
$('#chat').hawkChat({ userId: CHAT_CONTROL.userId, //id serverSideUrl: 'Chat.php', // groupName: CHAT_CONTROL.groupName, // onInMessage: function(msg, str) { if(msg.event === 'hawk.ping') { return false; } msg.text.from_login = msg.text.from_login.substr(0, 10); return -1; }// });
initGraphs(); // HAWK_API.bind_handler('ping', onUserPing); // HAWK_API.bind_handler('get_by_group', onUserList);
function onUserPing(e, msg) { // var info = msg.text.info; STAT.userInfo[msg.from] = info; // if(!STAT.pageToUser.hasOwnProperty(info.page)) { STAT.pageToUser[info.page] = []; } // if($.inArray(msg.from, STAT.pageToUser[info.page]) === -1) { STAT.pageToUser[info.page].push(msg.from); } } function onUserList(e, msg) { var onlineUsers = []; msg.result.forEach(function (record) { for(var gname in record) { record[gname].users.forEach(function (user) { if (user.online) { if($.inArray(user.user, onlineUsers) === -1) { onlineUsers.push(user.user); } } else if (!user.online) { if (STAT.userInfo.hasOwnProperty(user.user)) { delete STAT.userInfo[user.user]; } // HAWK_API.remove_user_from_group([gname], user.user); } }); } }); var pages = STAT.pageToUser; // for(var page in pages) { // pages[page] = pages[page].filter(function (pUser) { // , if($.inArray(pUser, onlineUsers) === -1 || STAT.userInfo[pUser].page !== page) return false; return true; }); // if(!pages[page].length) { delete pages[page]; } } $('#user_count').html(onlineUsers.length); // updatePageGraph(); updateBrowserGraph(); updateMap(); }
function updatePageGraph() { // if(STAT.graphPageUpdating) { return; } STAT.graphPageUpdating = true; // var series = []; var pages = STAT.pageToUser; for(var page in pages) { series.push([page, pages[page].length]); } // var chart = STAT.pageGraph.highcharts(); chart.series[0].setData(series); chart.redraw(); STAT.graphPageUpdating = false; } function updateBrowserGraph() { // if(STAT.graphBrowserUpdating) { return; } STAT.graphBrowserUpdating = true; var browsers = {}; var users = STAT.userInfo; // for(var user in users) { var browser = users[user].browser; if(!browser) { continue; } // browser = browser.name.toString().substr(0, 10) + ' ' + ((browser.version) ? ' (' + browser.version + ')' : '( )'); // if(!browsers.hasOwnProperty(browser)) { browsers[browser] = 0; } browsers[browser]++; } // var series = []; for(var browser in browsers) { series.push([browser, browsers[browser]]); } // var chart = STAT.browserGraph.highcharts(); chart.series[0].setData(series); chart.redraw(); STAT.graphBrowserUpdating = false; } function updateMap() { if(!STAT.objectManager) { return; } // STAT.objectManager.removeAll(); var users = STAT.userInfo; // var points = []; for(var user in users) { if(users[user].coords && users[user].coords.length) { points.push({ type: "Feature", id: user, geometry: { type: "Point", coordinates: users[user].coords }, properties: { draggable: false } }); } } // STAT.objectManager.add(points) }
function initGraphs() { // STAT.pageGraph = $('#chart').highcharts({ chart: { type: 'column' }, title: { text: ' ' }, xAxis: { type: 'category' }, yAxis: { title: { text: ' ' } }, legend: { enabled: false }, plotOptions: { series: { borderWidth: 0, dataLabels: { enabled: true, format: '{point.y}' } } }, tooltip: { headerFormat: '<span style="font-size:11px">{series.name}</span><br>', pointFormat: '<span style="color:{point.color}">{point.name}</span>: <b>{point.y}</b><br/>' }, series: [{ name: "", colorByPoint: true, data: [] }] }); // STAT.browserGraph = $('#browsers').highcharts({ chart: { type: 'pie' }, title: { text: '' }, tooltip: { pointFormat: '{series.name} <b>{point.percentage:.1f}%</b>' }, plotOptions: { pie: { allowPointSelect: true, cursor: 'pointer', dataLabels: { enabled: true, format: '<b>{point.name}</b> {point.percentage:.1f} %', style: { color: (Highcharts.theme && Highcharts.theme.contrastTextColor) || 'black' } } } }, series: [{ name: "", colorByPoint: true, data: [] }] }); } // ymaps.ready(initMap); function initMap () { // var myMap = new ymaps.Map("map", { center: [55.76, 37.64], zoom: 2, controls: ['zoomControl', 'searchControl', 'typeSelector'] }, { searchControlProvider: 'yandex#search' }); // STAT.objectManager = new ymaps.ObjectManager({ // , . clusterize: true, // ObjectManager , . gridSize: 32 }); myMap.geoObjects.add(STAT.objectManager); }
Source: https://habr.com/ru/post/268673/
All Articles