site-accueil-insa/matomo/plugins/DevicesDetection/templates/detection.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 %}