site-accueil-insa/matomo/plugins/CorePluginsAdmin/templates/macros.twig

315 lines
19 KiB
Twig

{% macro tablePluginUpdates(pluginsHavingUpdate, updateNonce, isMultiServerEnvironment) %}
{% import '@Marketplace/macros.twig' as marketplaceMacro %}
<div>
<a id="update-selected-plugins" href="javascript:" class="btn disabled">{{ 'CorePluginsAdmin_UpdateSelected'|translate }}</a>
</div>
<table piwik-content-table>
<thead>
<tr>
<th>
<span class="checkbox-container">
<label>
<input type="checkbox" id="select-plugin-all"/>
<span></span>
</label>
</span>
</th>
<th>{{ 'General_Plugin'|translate }}</th>
<th class="num">{{ 'CorePluginsAdmin_Version'|translate }}</th>
<th>{{ 'General_Description'|translate }}</th>
<th class="status">{{ 'CorePluginsAdmin_Status'|translate }}</th>
<th class="action-links">{{ 'General_Action'|translate }}</th>
</tr>
</thead>
<tbody id="plugins">
{% for name,plugin in pluginsHavingUpdate %}
<tr {% if plugin.isActivated|default(false) %}class="active-plugin"{% else %}class="inactive-plugin"{% endif %}>
<td class="select-cell">
<span class="checkbox-container">
<label>
<input type="checkbox" id="select-plugin-{{ plugin.name|e('html_attr') }}" {% if plugin.isDownloadable is defined and not plugin.isDownloadable %}disabled="disabled"{% endif %} />
<span></span>
</label>
</span>
</td>
<td class="name">
<a href="javascript:void(0);" piwik-plugin-name="{{ plugin.name|e('html_attr') }}" class="plugin-details">
{{ plugin.name }}
</a>
</td>
<td class="vers">
{% if plugin.changelog is defined and plugin.changelog and plugin.changelog.url is defined and plugin.changelog.url %}
<a href="{{ plugin.changelog.url|e('html_attr') }}" title="{{ 'CorePluginsAdmin_Changelog'|translate }}"
target="_blank" rel="noreferrer noopener"
>{{ plugin.currentVersion }} => {{ plugin.latestVersion }}</a>
{% else %}
{{ plugin.currentVersion }} => {{ plugin.latestVersion }}
{% endif %}
</td>
<td class="desc">
{{ plugin.description }}
{{ marketplaceMacro.missingRequirementsPleaseUpdateNotice(plugin) }}
</td>
<td class="status">
{% if plugin.isActivated %}
{{ 'CorePluginsAdmin_Active'|translate }}
{% else %}
{{ 'CorePluginsAdmin_Inactive'|translate }}
{% endif %}
</td>
<td class="togl action-links">
{% if plugin.isDownloadable is defined and not plugin.isDownloadable %}
<span title="{{ 'CorePluginsAdmin_PluginNotDownloadable'|translate|e('html_attr') }} {% if plugin.isPaid %}{{ 'CorePluginsAdmin_PluginNotDownloadablePaidReason'|translate|e('html_attr') }}{% endif %}"
>{{ 'CorePluginsAdmin_NotDownloadable'|translate|e('html_attr') }}</span>
{% elseif isMultiServerEnvironment %}
<a onclick="$(this).css('display', 'none')" href="{{ linkTo({'action':'download', 'module': 'Marketplace', 'pluginName': plugin.name, 'nonce': (plugin.name|nonce)}) }}">{{ 'General_Download'|translate }}</a>
{% elseif 0 == plugin.missingRequirements|length %}
<a href="{{ linkTo({'action':'updatePlugin', 'module': 'Marketplace', 'pluginName': plugin.name, 'nonce': updateNonce}) }}">{{ 'CoreUpdater_UpdateTitle'|translate }}</a>
{% else %}
-
{% endif %}
</td>
</tr>
{% endfor %}
</tbody>
</table>
<script>
$(function () {
$('span.checkbox-container').on('change', function() {
var isAtLeastOneChecked = $('span.checkbox-container input:checked').length >= 1;
isAtLeastOneChecked ? $('#update-selected-plugins').removeClass('disabled') : $('#update-selected-plugins').addClass('disabled');
});
$('#update-selected-plugins').on('click', function () {
var pluginsToUpdate = [];
$('tbody#plugins td.select-cell input').each(function () {
if (!this.checked) {
return;
}
var pluginName = $(this).closest('tr').find('.name .plugin-details').attr('piwik-plugin-name');
pluginsToUpdate.push(pluginName);
});
var url = '{{ linkTo({'module':'Marketplace','action':'updatePlugin','nonce':updateNonce})|raw }}&pluginName=' + encodeURIComponent(pluginsToUpdate.join(','));
window.location.href = url;
$(this).prop('disabled', true);
});
$('#select-plugin-all').on('change', function () {
var self = this;
$('tbody#plugins td.select-cell input[type=checkbox]').each(function () {
if ($(this).prop('disabled')) {
return;
}
$(this).prop('checked', self.checked);
});
});
});
</script>
{% endmacro %}
{% macro pluginActivateDeactivateAction(name, isActivated, missingRequirements, deactivateNonce, activateNonce) -%}
{%- if isActivated -%}
<a href='index.php?module=CorePluginsAdmin&action=deactivate&pluginName={{ name }}&nonce={{ deactivateNonce }}&redirectTo=referrer'>{{ 'CorePluginsAdmin_Deactivate'|translate }}</a>
{%- elseif missingRequirements %}
-
{% else -%}
<a href='index.php?module=CorePluginsAdmin&action=activate&pluginName={{ name }}&nonce={{ activateNonce }}&redirectTo=referrer'>{{ 'CorePluginsAdmin_Activate'|translate }}</a>
{%- endif -%}
{%- endmacro %}
{% macro pluginsFilter() %}
<p class="row pluginsFilter" piwik-plugin-filter>
<span class="origin">
<strong>{{ 'CorePluginsAdmin_Origin'|translate }}</strong>
<a data-filter-origin="all" href="#" class="active">{{ 'General_All'|translate }}<span class="counter"></span></a> |
<a data-filter-origin="core" href="#">{{ 'CorePluginsAdmin_OriginCore'|translate }}<span class="counter"></span></a> |
<a data-filter-origin="official" href="#">{{ 'CorePluginsAdmin_OriginOfficial'|translate }}<span class="counter"></span></a> |
<a data-filter-origin="thirdparty" href="#">{{ 'CorePluginsAdmin_OriginThirdParty'|translate }}<span class="counter"></span></a>
</span>
<span class="status">
<strong>{{ 'CorePluginsAdmin_Status'|translate }}</strong>
<a data-filter-status="all" href="#" class="active">{{ 'General_All'|translate }}<span class="counter"></span></a> |
<a data-filter-status="active" href="#">{{ 'CorePluginsAdmin_Active'|translate }}<span class="counter"></span></a> |
<a data-filter-status="inactive" href="#">{{ 'CorePluginsAdmin_Inactive'|translate }}<span class="counter"></span></a>
</span>
</p>
{% endmacro %}
{% macro tablePlugins(pluginsInfo, pluginNamesHavingSettings, activateNonce, deactivateNonce, uninstallNonce, isTheme, marketplacePluginNames, displayAdminLinks) %}
<div id="confirmUninstallPlugin" class="ui-confirm">
<h2 id="uninstallPluginConfirm">{{ 'CorePluginsAdmin_UninstallConfirm'|translate }}</h2>
<input role="yes" type="button" value="{{ 'General_Yes'|translate }}"/>
<input role="no" type="button" value="{{ 'General_No'|translate }}"/>
</div>
<table piwik-content-table>
<thead>
<tr>
<th>{% if isTheme %}{{ 'CorePluginsAdmin_Theme'|translate }}{% else %}{{ 'General_Plugin'|translate }}{% endif %}</th>
<th>{{ 'General_Description'|translate }}</th>
<th class="status">{{ 'CorePluginsAdmin_Status'|translate }}</th>
{% if (displayAdminLinks) %}
<th class="action-links">{{ 'General_Action'|translate }}</th>
{% endif %}
</tr>
</thead>
<tbody id="plugins">
{% for name,plugin in pluginsInfo %}
{% set isDefaultTheme = isTheme and name == 'Morpheus' %}
{% if (plugin.alwaysActivated is defined and not plugin.alwaysActivated) or isTheme %}
<tr {% if plugin.activated %}class="active-plugin"{% else %}class="inactive-plugin"{% endif %} data-filter-status="{% if plugin.activated %}active{% else %}inactive{% endif %}" data-filter-origin="{% if plugin.isCorePlugin %}core{% elseif plugin.isOfficialPlugin %}official{% else %}thirdparty{% endif %}">
<td class="name">
<a name="{{ name|e('html_attr') }}"></a>
{% if not plugin.isCorePlugin and name in marketplacePluginNames -%}
<a href="javascript:void(0);"
piwik-plugin-name="{{ name|e('html_attr') }}"
>{{ name }}</a>
{%- else %}
{{ name }}
{% endif %}
<span class="plugin-version" {% if plugin.isCorePlugin %}title="{{ 'CorePluginsAdmin_CorePluginTooltip'|translate }}"{% endif %}>({% if plugin.isCorePlugin %}{{ 'CorePluginsAdmin_OriginCore'|translate }}{% else %}v{{ plugin.info.version }}{% endif %})</span>
{% if name in pluginNamesHavingSettings %}
<br /><br />
<a href="{{ linkTo({'module':'CoreAdminHome', 'action': 'generalSettings'}) }}#{{ name|e('html_attr') }}" class="settingsLink">{{ 'General_Settings'|translate }}</a>
{% endif %}
</td>
<td class="desc">
<div class="plugin-desc-missingrequirements">
{% if plugin.missingRequirements is defined and plugin.missingRequirements %}
{{ plugin.missingRequirements }}
<br />
{% endif %}
</div>
<div class="plugin-desc-text">
{{ plugin.info.description|nl2br }}
{% if plugin.info.homepage|default is not empty and plugin.info.homepage not in [
'http://piwik.org', 'http://www.piwik.org', 'http://piwik.org/', 'http://www.piwik.org/',
'https://piwik.org', 'https://www.piwik.org', 'https://piwik.org/', 'https://www.piwik.org/',
'http://matomo.org', 'http://www.matomo.org', 'http://matomo.org/', 'http://www.matomo.org/',
'https://matomo.org', 'https://www.matomo.org', 'https://matomo.org/', 'https://www.matomo.org/'
] %}
<span class="plugin-homepage">
<a target="_blank" rel="noreferrer noopener" href="{{ plugin.info.homepage|e('html_attr') }}">({{ 'CorePluginsAdmin_PluginHomepage'|translate|replace({' ': '&nbsp;'})|raw }})</a>
</span>
{% endif %}
{% if plugin.info.donate is defined and plugin.info.donate|length %}
<div class="plugin-donation">
{{ 'CorePluginsAdmin_LikeThisPlugin'|translate }} <a href="javascript:;" class="plugin-donation-link" data-overlay-id="overlay-{{ name|escape('html_attr') }}">{{ 'CorePluginsAdmin_ConsiderDonating'|translate }}</a>
<div id="overlay-{{ name|escape('html_attr') }}" class="donation-overlay ui-confirm" title="{{ 'CorePluginsAdmin_LikeThisPlugin'|translate }}">
<p>{{ 'CorePluginsAdmin_CommunityContributedPlugin'|translate }}</p>
<p>{{ 'CorePluginsAdmin_ConsiderDonatingCreatorOf'|translate("<b>" ~ name ~ "</b>")|raw }}</p>
<div class="donation-links">
{% if plugin.info.donate.paypal is defined and plugin.info.donate.paypal %}
<a class="donation-link paypal" target="_blank" rel="noreferrer noopener" href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&item_name=Matomo%20Plugin%20{{ name|escape('url') }}&bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted&business={{ plugin.info.donate.paypal|escape('url') }}"><img src="plugins/CorePluginsAdmin/images/paypal_donate.png" height="30"/></a>
{% endif %}
{% if plugin.info.donate.flattr is defined and plugin.info.donate.flattr %}
<a class="donation-link flattr" target="_blank" rel="noreferrer noopener" href="{{ plugin.info.donate.flattr }}"><img class="alignnone" title="Flattr" alt="" src="plugins/CorePluginsAdmin/images/flattr.png" height="29" /></a>
{% endif %}
{% if plugin.info.donate.bitcoin is defined and plugin.info.donate.bitcoin %}
<div class="donation-link bitcoin">
<span>Donate Bitcoins to:</span>
<a href="bitcoin:{{ plugin.info.donate.bitcoin|escape('url') }}">{{ plugin.info.donate.bitcoin }}</a>
</div>
{% endif %}
</div>
<input role="no" type="button" value="{{ 'General_Close'|translate }}"/>
</div>
</div>
{% endif %}
</div>
{% if plugin.info.license is defined %}
<div class="plugin-license">
{% if plugin.info.license_file is defined %}<a title="{{ 'CorePluginsAdmin_LicenseHomepage'|translate }}" rel="noreferrer noopener" target="_blank" href="index.php?module=CorePluginsAdmin&action=showLicense&pluginName={{ name }}">{% endif %}{{ plugin.info.license }}{% if plugin.info.license_file is defined %}</a>{% endif %}
</div>
{% endif %}
{% if plugin.info.authors is defined %}
<div class="plugin-author">
By
{% if plugin.info.authors is defined -%}
{% apply spaceless %}
{% for author in plugin.info.authors|filter(author => author.name) %}
{% if author.homepage is defined %}
<a title="{{ 'CorePluginsAdmin_AuthorHomepage'|translate }}" href="{{ author.homepage }}" rel="noreferrer noopener" target="_blank">{{ author.name }}</a>
{% else %}
{{ author.name }}
{% endif %}
{% if loop.index < plugin.info.authors|length %}
,
{% endif %}
{% endfor %}
{% endapply %}
{%- endif %}.
</div>
{% endif %}
</td>
<td class="status" {% if isDefaultTheme %}style="border-left-width:0px;"{% endif %}>
{% if not isDefaultTheme -%}
{% if plugin.activated %}
{{ 'CorePluginsAdmin_Active'|translate }}
{% else %}
{{ 'CorePluginsAdmin_Inactive'|translate }}
{% if plugin.uninstallable and displayAdminLinks %} <br/> - <a data-plugin-name="{{ name|escape('html_attr') }}" class="uninstall" href='index.php?module=CorePluginsAdmin&action=uninstall&pluginName={{ name }}&nonce={{ uninstallNonce }}'>{{ 'CorePluginsAdmin_ActionUninstall'|translate }}</a>{% endif %}
{% endif %}
{%- endif %}
</td>
{% if displayAdminLinks %}
<td class="togl action-links" {% if isDefaultTheme %}style="border-left-width:0px;"{% endif %}>
{% if not isDefaultTheme -%}
{% if plugin.invalid is defined or plugin.alwaysActivated %}
-
{% else %}
{{ _self.pluginActivateDeactivateAction(name, plugin.activated, plugin.missingRequirements, deactivateNonce, activateNonce) }}
{% endif %}
{%- endif %}
</td>
{% endif %}
</tr>
{% endif %}
{% endfor %}
</tbody>
</table>
{% if displayAdminLinks %}
<div class="tableActionBar">
{% if isTheme %}
<a href="{{ linkTo({'module': 'Marketplace','action':'overview', 'sort': '', 'show': 'themes'}) }}"><span class="icon-add"></span> {{ 'CorePluginsAdmin_InstallNewThemes'|translate }}</a>
{% else %}
<a href="{{ linkTo({'module': 'Marketplace','action':'overview', 'sort': ''}) }}"><span class="icon-add"></span> {{ 'CorePluginsAdmin_InstallNewPlugins'|translate }}</a>
{% endif %}
</div>
{% endif %}
<div class="footer-message">
{% set pluginsAlwaysActivated %}
{% for name,plugin in pluginsInfo %}
{% if plugin.alwaysActivated is defined and plugin.alwaysActivated %}
{{ name }}{% if not loop.last %}, {% endif %}
{% endif %}
{% endfor %}
{% endset %}
{{ 'CorePluginsAdmin_AlwaysActivatedPluginsList'|translate(pluginsAlwaysActivated) }}
</div>
{% endmacro %}