src/log_analyzer/analyzer.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>
Анализатор логов
</title>
<script src="js/xml2json.js"></script>
<script src="js/zip.js"></script>
<script src="https://x2js.googlecode.com/hg/xml2json.js"></script>
<script src="https://yastatic.net/jquery/1.8.3/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-dateFormat/1.0/jquery.dateFormat.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/zeroclipboard/1.3.5/ZeroClipboard.min.js"></script>
<script src="js/HashTable.js"></script>
<script src="https://cdn.datatables.net/1.10.0/js/jquery.dataTables.js"></script>
<script src="js/jquery.i18n.min.js"></script>
<script src="js/localization.js"></script>
<script src="js/spin.js"></script>
<link rel="stylesheet" href="css/general.css"/>
<link rel="stylesheet" href="css/jquery.dataTables.css"/>
<link rel="stylesheet" href="css/analyzer.table.css"/>
<meta name="description" content=""/>
<script language="javascript">
function manulErrorHandler (msg, url, line, col, error) {
var extra = !col ? '' : '\ncolumn: ' + col;
extra += !error ? '' : '\nerror: ' + error;
alert("Error: " + msg + "\nline: " + line + extra);
window.location.reload();
return true;
};
window.onerror = manulErrorHandler;
</script>
</head>
<body class="page" onload="checkFileAPI();">
<div id="modal" class="modal_pane">
</div>
<script>
modalWindow = document.getElementById('modal');
spinner = new Spinner(opts).spin(modalWindow);
</script>
<div id="uploadScreen">
<div class="body">
<div class="head">
<h1 class="header header_type_main">Manul</h1>
<div class="head__menu">
<a class="head__menu-item head__menu-item_active_yes" >Анализ</a>
</div>
</div>
<div class="upload__screen__block">
<h2 class="header">Загрузите лог для анализа</h2>
<p class="sub-header sub-header_align_left">Лог создается при сканировании сайта инструментом и содержит информацию об окружении сайта (данные о веб-сервере, интерпретаторе, системах контроля версий) а также файлах. Загружать лог можно как в виде архива, так и в виде распакованного xml.</p>
<span class="button button_theme_action i-bem button_js_inited button_hovered" style="margin-top: 40px;">
<input accept="application/zip, text/xml" class="upload__screen__button" type="file" name="report" onchange=" showProgress(true); readText(this);">
<label class="load_file_button">Загрузить файл</label>
</span>
</div>
<div class="body__spacer"></div>
<div class="footer">
<div class="language_pane">
<a class="lang_switcher lang_switcher_active" language="ru" href="#"><img src="img/ru.png" border=0></a>
<a class="lang_switcher" language="en" href="#"><img src="img/uk.png" border=0></a>
<a class="lang_switcher" language="ua" href="#"><img src="img/ua.png" border=0></a>
<a class="lang_switcher" language="tr" href="#"><img src="img/tr.png" border=0></a>
</div>
<a class="b-link footer__item contact" href="#">Обратная связь</a>
<a class="b-link footer__item help" href="#">Помощь</a>
<div class="footer__item footer__item_type_copyright">© 2001—2015</div>
</div>
</div>
</div>
<div id="tableScreen">
<div class="body body_full_height">
<div class="header_div">
<div class="header_left_block">
<h1 class="header header_type_main">
Manul: Анализатор логов
</h1>
<p class="head__description">
Анализатор логов Manul. Для эффективного поиска вредоносных файлов следует добавить белые списки или полученные ранее логи. В качестве фильтров можно задать маску имени файлов и дату создания.
</p>
</div>
<div class="header_right_block">
<div class="filter_list">
<h4 style="margin-bottom: 0px;">Подключенные файлы-фильтры:</h4>
<table id="filter_file_list" style="text-align: left; float: right; border-spacing: 10px; overflow: hidden;">
<thead>
<th>Фильтр</th><th>Записей</th><th>Отфильтровано</th><th></th>
</thead>
</table>
</div>
<div class="filter_toolbar filter i-bem" data-bem="{"filter":"true"}">
<button class="filter__flag">
<span class="filter__text-flag">
Флаг
</span>
<span class="filter__arrow">
</span>
</button><div class="popup popup_name_flag popup_visibility_hidden i-bem" data-bem="{"popup":{}}">
<div class="popup__content">
<ul class="list i-bem" data-bem="{"list":"true"}">
<li class="list__line list__line_checked_yes" val="1" num="1">
<span class="list__check">
</span>
<span class="list__indicate list__indicate_color_green">
</span>
<span class="list__text flag_notfound">
Не найдено
</span>
</li>
<li class="list__line list__line_checked_yes" val="2" num="2">
<span class="list__check">
</span>
<span class="list__indicate list__indicate_color_yellow">
</span>
<span class="list__text flag_suspicious">
Подозрительный
</span>
</li>
<li class="list__line list__line_checked_yes" val="3" num="3">
<span class="list__check">
</span>
<span class="list__indicate list__indicate_color_red">
</span>
<span class="list__text flag_malicious">
Вредоносный
</span>
</li>
</ul>
</div>
</div><button class="filter__columns"><span class="filter__text-columns visible_fields_menu" id="fieldListButton">Поля таблицы</span><span class="filter__arrow"></span></button><div class="popup popup_name_columns popup_visibility_hidden i-bem" data-bem="{"popup":{}}">
<div class="popup__content">
<ul class="list i-bem" data-bem="{"list":"true"}">
<li class="list__line list__line_checked_yes" val="0" num="0">
<span class="list__check">
</span>
<span class="list__text field_flag">
Флаг
</span>
</li>
<li class="list__line list__line_checked_yes" val="1">
<span class="list__check">
</span>
<span class="list__text field_path">
Путь
</span>
</li>
<li class="list__line list__line_checked_yes" val="2">
<span class="list__check">
</span>
<span class="list__text field_size">
Размер
</span>
</li>
<li class="list__line list__line_checked_yes" val="3">
<span class="list__check">
</span>
<span class="list__text field_ctime">
Время создания
</span>
</li>
<li class="list__line list__line_checked_yes" val="4">
<span class="list__check">
</span>
<span class="list__text field_mtime">
Время модификации
</span>
</li>
<li class="list__line" val="5">
<span class="list__check">
</span>
<span class="list__text field_owner">
Владелец
</span>
</li>
<li class="list__line" val="6">
<span class="list__check">
</span>
<span class="list__text field_group">
Группа
</span>
</li>
<li class="list__line" val="7">
<span class="list__check">
</span>
<span class="list__text field_attributes">
Атрибуты
</span>
</li>
</ul>
</div>
</div><input class="filter__file-name filter_path" placeholder="Путь к файлу" id="filePathSearchFilter"/><button class="filter__timeslot"><input id='dateMin' type='hidden' /><input id='dateMax' type='hidden' />
<span class="filter__text-timeslot filter_timeperiod" id="fileTimeFilterSpan">Временной интервал</span><span class="filter__arrow"></span></button><div class="popup popup_name_timeslot popup_visibility_hidden i-bem" id="fileTimeFilterPopup" data-bem="{"popup":{}}">
<div class="popup__content"><div class="m-datepicker m-datepicker_type_month m-datepicker_disable_change i-bem" data-bem="{"m-datepicker":"true"}"></div></div><button id="button_drop_timespan_filter" class="button button_size_s i-bem button_js_inited">Сбросить</button>
</div><input accept="application/zip, text/xml" style="opacity:0;position: absolute;" type="file" name="report" onchange="turnOnTableScreen(); readText(this);"><button class="filter__filter-button filter__filter-button_theme_action filter_loadfilter">
Фильтр из файла
</button>
</input>
</div>
</div>
</div>
<div class="body__content body__content_display_block">
<table class="table" id="filesTable">
<thead class="table__head">
<th class="table__head-item table__head-item_type_flag"><span class="table__column-title" id="tableHeaderFlagSpan">Флаг</span>
</th>
<th class="table__head-item table__head-item_type_Filename"><span class="table__column-title table__column-title_sort_up" id="tableHeaderFileName">Имя файла</span>
</th>
<th class="table__head-item table__head-item_type_Size"><span class="table__column-title table__column-title_sort_down" id="tableHeaderFileSize">Размер</span>
</th>
<th class="table__head-item table__head-item_type_Created"><span class="table__column-title" id="tableHeaderFileCtime">Создан</span>
</th>
<th class="table__head-item table__head-item_type_Modified"><span class="table__column-title" id="tableHeaderFileMtime">Изменен</span>
</th>
<th class="table__head-item table__head-item_type_Created"><span class="table__column-title" id="tableHeaderFileOwner">Владелец</span>
</th>
<th class="table__head-item table__head-item_type_Modified"><span class="table__column-title" id="tableHeaderFileGroup">Группа</span>
</th>
<th class="table__head-item table__head-item_type_Modified"><span class="table__column-title" id="tableHeaderFileAttributes">Атрибуты</span>
</th>
<th class="table__head-item table__head-item_type_button" id="tableHeaderFileAction">Действие</th>
<th class="table__head-item table__head-item_type_Modified" id="tableHeaderFileHash">Хэш-сумма</th>
</thead>
<tbody class="table__body">
</tbody>
</table>
<div class="server_environment" style="margin-top: 20px; maring-bottom: 20px;">
<button class="button i-bem" data-bem="{"button":{}}" role="button" id="showServerEnvTable" onclick="$('#server_environment_table').toggle();">
Информация о серверном окружении
</button>
<table id="server_environment_table">
<thead><th style="width: 160px;">Ключ</th><th>Значение</th></thead>
</table>
</div>
<p class="paragraph">
Созданное предписание можно запустить в выполняторе предписаний Manul
</p>
<form class="form">
<h3 class="form__head">
Предписание
</h3>
<div class="form__textarea-wrapper">
<textarea class="form__textarea" id="recipeTextarea">
</textarea>
</div>
<div class="form__buttonarea form__buttonarea_align_right">
<button class="button button_theme_action i-bem" data-bem="{"button":{}}" role="button" id="copyRecipeButton">
Копировать
</button>
</div>
</form>
</div>
<div class="footer">
<!-- <a class="b-link footer__item contact" href="#">Обратная связь</a> -->
<a class="b-link footer__item help" href="https://help.yandex.ru">Помощь</a>
<div class="footer__item footer__item_type_copyright">
© 2015
</div>
</div>
</div>
<script src="js/analyzer.tableBuilder.js" defer></script>
<script src="js/fileParser.js" defer></script>
</div>
</body>
</html>