forked from vergnet/site-accueil-insa
174 lines
7 KiB
Twig
174 lines
7 KiB
Twig
{% extends 'admin.twig' %}
|
|
|
|
{% set title %}{{ 'DevicesDetection_DeviceDetection'|translate }}{% endset %}
|
|
|
|
{% block content %}
|
|
|
|
<script type="text/javascript">
|
|
|
|
var clientHints = {};
|
|
|
|
$(document).ready(function() {
|
|
if (!navigator.userAgentData || typeof navigator.userAgentData.getHighEntropyValues !== 'function') {
|
|
$('#noclienthints').css({display: 'inline-block'});
|
|
$('[name=clienthints],.usech').hide();
|
|
} else {
|
|
// Initialize with low entropy values that are always available
|
|
clientHints = {
|
|
brands: navigator.userAgentData.brands,
|
|
platform: navigator.userAgentData.platform
|
|
};
|
|
|
|
// try to gather high entropy values
|
|
// currently this methods simply returns the requested values through a Promise
|
|
// In later versions it might require a user permission
|
|
navigator.userAgentData.getHighEntropyValues(
|
|
['brands', 'model', 'platform', 'platformVersion', 'uaFullVersion', 'fullVersionList']
|
|
).then(function (ua) {
|
|
if (ua.fullVersionList) {
|
|
// if fullVersionList is available, brands and uaFullVersion isn't needed
|
|
delete ua.brands;
|
|
delete ua.uaFullVersion;
|
|
}
|
|
|
|
clientHints = ua;
|
|
});
|
|
}
|
|
});
|
|
|
|
function showList(type) {
|
|
var ajaxHandler = new ajaxHelper();
|
|
ajaxHandler.addParams({
|
|
module: 'DevicesDetection',
|
|
action: 'showList',
|
|
type: type
|
|
}, 'GET');
|
|
ajaxHandler.setFormat('html');
|
|
ajaxHandler.setCallback(function(response){
|
|
var $list = $('#deviceDetectionItemList');
|
|
$list.find('.itemList').html(response);
|
|
piwikHelper.modalConfirm($list, [], {fixedFooter: true});
|
|
});
|
|
ajaxHandler.send();
|
|
}
|
|
|
|
function toggleClientHints() {
|
|
$('[name=clienthints]').toggle();
|
|
if ($('[name=clienthints]:visible').length) {
|
|
$('[name=clienthints]').text().length || $('[name=clienthints]').text(JSON.stringify(clientHints));
|
|
} else {
|
|
$('[name=clienthints]').text('');
|
|
}
|
|
}
|
|
|
|
</script>
|
|
|
|
<style type="text/css">
|
|
textarea {
|
|
width: 700px;
|
|
display: block;
|
|
}
|
|
|
|
.detection {
|
|
padding-top:10px;
|
|
}
|
|
.detection td {
|
|
width: 50%;
|
|
}
|
|
.detection td img {
|
|
margin-right: 10px;
|
|
}
|
|
</style>
|
|
|
|
<div piwik-content-block content-title="{{ title|e('html_attr') }}">
|
|
<form action="{{ linkTo({}) }}" method="POST">
|
|
|
|
<h3>{{ 'DevicesDetection_UserAgent'|translate }}</h3>
|
|
|
|
<textarea name="ua">{{ userAgent }}</textarea>
|
|
|
|
<h3>{{ 'DevicesDetection_ClientHints'|translate }}</h3>
|
|
|
|
<span class="checkbox-container usech">
|
|
<label>
|
|
<input type="checkbox" id="usech" {% if clientHints %}checked{% endif %} onchange="toggleClientHints()"/>
|
|
<span>{{ 'DevicesDetection_ConsiderClientHints'|translate }}</span>
|
|
</label>
|
|
</span>
|
|
|
|
<textarea name="clienthints" style="margin-top: 2em; {% if not clientHints %}display: none{% endif %}">{% if clientHints %}{{ clientHints|json_encode }}{% endif %}</textarea>
|
|
|
|
<span id="noclienthints" class="alert alert-warning" style="display: none">{{ 'DevicesDetection_ClientHintsNotSupported'|translate }}</span>
|
|
|
|
<br /><br />
|
|
<input type="submit" value="{{ 'General_Refresh'|translate }}" class="btn" />
|
|
</form>
|
|
|
|
{% if bot_info %}
|
|
|
|
<h3>{{ 'DevicesDetection_BotDetected'|translate(bot_info.name) }}</h3>
|
|
|
|
{% else %}
|
|
|
|
<h3>{{ 'DevicesDetection_ColumnOperatingSystem'|translate|e('html_attr') }}</h3>
|
|
<table class="detection" piwik-content-table>
|
|
<tbody>
|
|
<tr>
|
|
<td>{{ 'General_Name'|translate }} <small>(<a href="javascript:showList('os');">{{ 'Mobile_ShowAll'|translate }}</a>)</small></td>
|
|
<td><img height="16px" width="16px" src="{{ os_logo }}" />{{ os_name }}</td>
|
|
</tr>
|
|
<tr>
|
|
<td>{{ 'CorePluginsAdmin_Version'|translate }}</td>
|
|
<td>{{ os_version }}</td>
|
|
</tr>
|
|
<tr>
|
|
<td>{{ 'DevicesDetection_OperatingSystemFamily'|translate }} <small>(<a href="javascript:showList('osfamilies');">{{ 'Mobile_ShowAll'|translate }}</a>)</small></td>
|
|
<td><img height="16px" width="16px" src="{{ os_family_logo }}" />{{ os_family }}</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
<h3>{{ 'DevicesDetection_ColumnBrowser'|translate }}</h3>
|
|
<table class="detection" piwik-content-table>
|
|
<tbody>
|
|
<tr>
|
|
<td>{{ 'General_Name'|translate }} <small>(<a href="javascript:showList('browsers');">{{ 'Mobile_ShowAll'|translate }}</a>)</small></td>
|
|
<td><img height="16px" width="16px" src="{{ browser_logo }}" />{{ browser_name }}</td>
|
|
</tr>
|
|
<tr>
|
|
<td>{{ 'CorePluginsAdmin_Version'|translate }}</td>
|
|
<td>{{ browser_version }}</td>
|
|
</tr>
|
|
<tr>
|
|
<td>{{ 'DevicesDetection_BrowserFamily'|translate }} <small>(<a href="javascript:showList('browserfamilies');">{{ 'Mobile_ShowAll'|translate }}</a>)</small></td>
|
|
<td><img height="16px" width="16px" src="{{ browser_family_logo }}" />{{ browser_family }}</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
<h3>{{ 'DevicesDetection_Device'|translate }}</h3>
|
|
<table class="detection" piwik-content-table>
|
|
<tbody>
|
|
<tr>
|
|
<td>{{ 'DevicesDetection_dataTableLabelTypes'|translate }} <small>(<a href="javascript:showList('devicetypes');">{{ 'Mobile_ShowAll'|translate }}</a>)</small></td>
|
|
<td><img height="16px" width="16px" src="{{ device_type_logo }}" />{{ device_type }}</td>
|
|
</tr>
|
|
<tr>
|
|
<td>{{ 'DevicesDetection_dataTableLabelBrands'|translate }} <small>(<a href="javascript:showList('brands');">{{ 'Mobile_ShowAll'|translate }}</a>)</small></td>
|
|
<td><img height="16px" width="16px" src="{{ device_brand_logo }}" />{{ device_brand }}</td>
|
|
</tr>
|
|
<tr>
|
|
<td>{{ 'DevicesDetection_dataTableLabelModels'|translate }}</td>
|
|
<td>{{ device_model }}</td>
|
|
</tr></tbody>
|
|
</table>
|
|
|
|
{% endif %}
|
|
</div>
|
|
|
|
<div class="ui-confirm" id="deviceDetectionItemList">
|
|
<div class="itemList"> </div>
|
|
<input role="close" type="button" value="{{ 'General_Close'|translate }}"/>
|
|
</div>
|
|
|
|
{% endblock %}
|