Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthieu Aubry <mattab@users.noreply.github.com>2016-12-06 15:19:48 +0300
committerGitHub <noreply@github.com>2016-12-06 15:19:48 +0300
commitb1c09fa5123155ab9cd79342a4a0cef42e80de7f (patch)
tree06541e0c5bd079a8904fb3d2f82bfaf9155bda46 /plugins
parent46eafa8ab66d9d7bc785dc6697b8c3168c9d4145 (diff)
parentd96661e2bd8e54c1ef022cc88e95d133d3f6c615 (diff)
Merge pull request #10974 from piwik/3.x-dev3.0.0-rc1
Release Piwik 3.0.0-rc1
Diffstat (limited to 'plugins')
-rw-r--r--plugins/API/templates/listAllAPI.twig2
-rw-r--r--plugins/Actions/lang/en.json2
-rw-r--r--plugins/CoreAdminHome/templates/home.twig1
-rw-r--r--plugins/CoreHome/CoreHome.php2
-rw-r--r--plugins/CoreHome/angularjs/common/directives/show-sensitive-data.js59
-rw-r--r--plugins/CoreHome/lang/en.json1
-rw-r--r--plugins/CoreHome/templates/getSystemSummary.twig2
m---------plugins/CustomAlerts0
-rw-r--r--plugins/Installation/templates/getSystemCheckWidget.twig4
-rwxr-xr-xplugins/LanguagesManager/Test/Integration/LanguagesManagerTest.php26
-rw-r--r--plugins/Marketplace/Widgets/GetNewPlugins.php3
-rw-r--r--plugins/Marketplace/Widgets/GetPremiumFeatures.php56
-rw-r--r--plugins/Marketplace/stylesheets/marketplace-widget.less19
-rw-r--r--plugins/Marketplace/templates/getNewPlugins.twig4
-rw-r--r--plugins/Marketplace/templates/getNewPluginsAdmin.twig4
-rw-r--r--plugins/Marketplace/templates/getPremiumFeatures.twig23
-rw-r--r--plugins/SegmentEditor/javascripts/Segmentation.js23
-rw-r--r--plugins/UsersManager/templates/userSettings.twig2
-rw-r--r--plugins/Widgetize/tests/System/WidgetTest.php9
19 files changed, 208 insertions, 34 deletions
diff --git a/plugins/API/templates/listAllAPI.twig b/plugins/API/templates/listAllAPI.twig
index 258b74c49d..9aa2685881 100644
--- a/plugins/API/templates/listAllAPI.twig
+++ b/plugins/API/templates/listAllAPI.twig
@@ -20,7 +20,7 @@
<div piwik-content-block content-title="{{ 'API_UserAuthentication'|translate|e('html_attr') }}">
<p>
{{ 'API_UsingTokenAuth'|translate('','',"")|raw }}<br/>
- <pre piwik-select-on-focus id='token_auth'>&amp;token_auth=<strong>{{ token_auth }}</strong></pre><br/>
+ <pre piwik-select-on-focus id='token_auth'>&amp;token_auth=<strong piwik-show-sensitive-data="{{ token_auth }}" data-click-element-selector="#token_auth"></strong></pre><br/>
{{ 'API_KeepTokenSecret'|translate('<b>','</b>')|raw }}<br />
{{ 'API_ChangeTokenHint'|translate('<a href="' ~ linkTo({
'module': 'UsersManager',
diff --git a/plugins/Actions/lang/en.json b/plugins/Actions/lang/en.json
index c31dc264ec..27c9b2f72f 100644
--- a/plugins/Actions/lang/en.json
+++ b/plugins/Actions/lang/en.json
@@ -18,7 +18,7 @@
"ColumnSearchCategory": "Search Category",
"ColumnSearches": "Searches",
"ColumnSearchesDocumentation": "The number of visits that searched for this keyword on your website's search engine.",
- "ColumnSearchExits": "% Search Exits",
+ "ColumnSearchExits": "%% Search Exits",
"ColumnSearchExitsDocumentation": "The percentage of visits that left the website after searching for this Keyword on your Site Search engine.",
"ColumnSearchResultsCount": "Search Results Count",
"ColumnSiteSearchKeywords": "Unique Keywords",
diff --git a/plugins/CoreAdminHome/templates/home.twig b/plugins/CoreAdminHome/templates/home.twig
index aaf5afc5ba..d938a1d809 100644
--- a/plugins/CoreAdminHome/templates/home.twig
+++ b/plugins/CoreAdminHome/templates/home.twig
@@ -35,6 +35,7 @@
{% endif %}
{% if isMarketplaceEnabled %}
+ <div piwik-widget-loader='{"module":"Marketplace","action":"getPremiumFeatures"}'></div>
<div piwik-widget-loader='{"module":"Marketplace","action":"getNewPlugins", "isAdminPage": "1"}'></div>
{% endif %}
diff --git a/plugins/CoreHome/CoreHome.php b/plugins/CoreHome/CoreHome.php
index f5a1a594bc..7a221bc7db 100644
--- a/plugins/CoreHome/CoreHome.php
+++ b/plugins/CoreHome/CoreHome.php
@@ -155,6 +155,7 @@ class CoreHome extends \Piwik\Plugin
$jsFiles[] = "plugins/CoreHome/angularjs/common/directives/directive.module.js";
$jsFiles[] = "plugins/CoreHome/angularjs/common/directives/attributes.js";
$jsFiles[] = "plugins/CoreHome/angularjs/common/directives/field-condition.js";
+ $jsFiles[] = "plugins/CoreHome/angularjs/common/directives/show-sensitive-data.js";
$jsFiles[] = "plugins/CoreHome/angularjs/common/directives/autocomplete-matched.js";
$jsFiles[] = "plugins/CoreHome/angularjs/common/directives/focus-anywhere-but-here.js";
$jsFiles[] = "plugins/CoreHome/angularjs/common/directives/ignore-click.js";
@@ -255,6 +256,7 @@ class CoreHome extends \Piwik\Plugin
$translationKeys[] = 'General_MultiSitesSummary';
$translationKeys[] = 'General_SearchNoResults';
$translationKeys[] = 'CoreHome_ChooseX';
+ $translationKeys[] = 'CoreHome_ClickToSeeFullInformation';
$translationKeys[] = 'CoreHome_YouAreUsingTheLatestVersion';
$translationKeys[] = 'CoreHome_IncludeRowsWithLowPopulation';
$translationKeys[] = 'CoreHome_ExcludeRowsWithLowPopulation';
diff --git a/plugins/CoreHome/angularjs/common/directives/show-sensitive-data.js b/plugins/CoreHome/angularjs/common/directives/show-sensitive-data.js
new file mode 100644
index 0000000000..1744f9e622
--- /dev/null
+++ b/plugins/CoreHome/angularjs/common/directives/show-sensitive-data.js
@@ -0,0 +1,59 @@
+/*!
+ * Piwik - free/libre analytics platform
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ */
+
+/**
+ * Handles visibility of sensitive data. By default data will be shown replaced with stars (*)
+ * On click on the element the full data will be shown
+ *
+ * Configuration attributes:
+ * data-show-characters number of characters to show in clear text (defaults to 6)
+ * data-click-element-selector selector for element that will show the full data on click (defaults to element)
+ *
+ * Example:
+ * <div piwik-show-sensitive-date="some text"></div>
+ */
+(function () {
+ angular.module('piwikApp.directive').directive('piwikShowSensitiveData', piwikShowSensitiveData);
+
+ function piwikShowSensitiveData(){
+ return {
+ restrict: 'A',
+ link: function(scope, element, attr) {
+
+ var sensitiveData = attr.piwikShowSensitiveData || attr.text();
+ var showCharacters = attr.showCharacters || 6;
+ var clickElement = attr.clickElementSelector || element;
+
+ var protectedData = '';
+ if (showCharacters > 0) {
+ protectedData += sensitiveData.substr(0, showCharacters);
+ }
+ protectedData += sensitiveData.substr(showCharacters).replace(/./g, '*');
+ element.html(protectedData);
+
+ function onClickHandler(event) {
+ element.html(sensitiveData);
+ $(clickElement).css({
+ cursor: ''
+ });
+ $(clickElement).tooltip("destroy");
+ }
+
+ $(clickElement).tooltip({
+ content: _pk_translate('CoreHome_ClickToSeeFullInformation'),
+ items: '*',
+ track: true
+ });
+
+ $(clickElement).one('click', onClickHandler);
+ $(clickElement).css({
+ cursor: 'pointer'
+ })
+ }
+ };
+ }
+})();
diff --git a/plugins/CoreHome/lang/en.json b/plugins/CoreHome/lang/en.json
index 808250348e..57c5071c4a 100644
--- a/plugins/CoreHome/lang/en.json
+++ b/plugins/CoreHome/lang/en.json
@@ -5,6 +5,7 @@
"CheckForUpdates": "Check for updates",
"CheckPiwikOut": "Check Piwik out!",
"ClickToEditX": "Click to edit %s",
+ "ClickToSeeFullInformation": "Click to see the full information",
"CloseSearch": "Close search",
"CloseWidgetDirections": "You can close this widget by clicking on the 'X' icon at the top of the widget.",
"ChooseX": "Choose %1$s",
diff --git a/plugins/CoreHome/templates/getSystemSummary.twig b/plugins/CoreHome/templates/getSystemSummary.twig
index 75cdf0a935..264162c180 100644
--- a/plugins/CoreHome/templates/getSystemSummary.twig
+++ b/plugins/CoreHome/templates/getSystemSummary.twig
@@ -14,7 +14,7 @@
</div>
<div>
<span>{{ 'CoreHome_SystemSummaryPiwikVersion'|translate }}:</span>
- <span>{{ piwikVersion }}</span>
+ <span class="piwik-version">{{ piwikVersion }}</span>
</div>
<div>
<span>{{ 'CoreHome_SystemSummaryMysqlVersion'|translate }}:</span>
diff --git a/plugins/CustomAlerts b/plugins/CustomAlerts
-Subproject 49ae454fd7eae39e07300c83e0dff40dda2e427
+Subproject 8c861c9084a25dc36e1176496598a175a1619ee
diff --git a/plugins/Installation/templates/getSystemCheckWidget.twig b/plugins/Installation/templates/getSystemCheckWidget.twig
index 7f10dc06e1..5f1d9f8385 100644
--- a/plugins/Installation/templates/getSystemCheckWidget.twig
+++ b/plugins/Installation/templates/getSystemCheckWidget.twig
@@ -4,7 +4,7 @@
{% endif %}
{% if numErrors %}
- <p class="system-errors"><span class="icon-error"></span> {{ 'General_Errors'|translate }}:</p>
+ <p class="system-errors"><span class="icon-error"></span> {{ 'General_Errors'|translate }}</p>
<ul>
{% for error in errors %}
<li title="{{ error.getLongErrorMessage|e('html_attr') }}">{{ error.getLabel }}</li>
@@ -20,7 +20,7 @@
<br />
{% endif %}
- <span class="icon-warning"></span> {{ 'General_Warnings'|translate }}:
+ <span class="icon-warning"></span> {{ 'General_Warnings'|translate }}
</p>
<ul>
{% for warning in warnings %}
diff --git a/plugins/LanguagesManager/Test/Integration/LanguagesManagerTest.php b/plugins/LanguagesManager/Test/Integration/LanguagesManagerTest.php
index 0ff66919ce..59124a79cd 100755
--- a/plugins/LanguagesManager/Test/Integration/LanguagesManagerTest.php
+++ b/plugins/LanguagesManager/Test/Integration/LanguagesManagerTest.php
@@ -156,6 +156,32 @@ class LanguagesManagerTest extends \PHPUnit_Framework_TestCase
}
/**
+ * check all english translations do not contain unescaped % symbols
+ *
+ * @group Plugins
+ * @group numbered2
+ */
+ function testTranslationsUseEscapedPercentSigns()
+ {
+ Cache::flushAll();
+ $translator = StaticContainer::get('Piwik\Translation\Translator');
+ $translator->reset();
+ Translate::loadAllTranslations();
+ $translations = $translator->getAllTranslations();
+ foreach ($translations AS $plugin => $pluginTranslations) {
+ if ($plugin == 'Intl') {
+ continue; // skip generated stuff
+ }
+ foreach ($pluginTranslations as $key => $pluginTranslation) {
+ $pluginTranslation = preg_replace('/(%(?:[1-9]\$)?[a-z])/', '', $pluginTranslation); // remove placeholders
+ $pluginTranslation = str_replace('%%', '', $pluginTranslation); // remove already escaped symbols
+ $this->assertEquals(0, substr_count($pluginTranslation, '%'),
+ sprintf('%s.%s must use escaped %% symbols', $plugin, $key));
+ }
+ }
+ }
+
+ /**
* test English short name for language
*
* @group Plugins
diff --git a/plugins/Marketplace/Widgets/GetNewPlugins.php b/plugins/Marketplace/Widgets/GetNewPlugins.php
index 6079c1a8e8..8ffc54b856 100644
--- a/plugins/Marketplace/Widgets/GetNewPlugins.php
+++ b/plugins/Marketplace/Widgets/GetNewPlugins.php
@@ -10,6 +10,7 @@ namespace Piwik\Plugins\Marketplace\Widgets;
use Piwik\Common;
use Piwik\Plugins\Marketplace\Api\Client;
+use Piwik\Plugins\Marketplace\Input\PurchaseType;
use Piwik\Plugins\Marketplace\Input\Sort;
use Piwik\Widget\Widget;
use Piwik\Widget\WidgetConfig;
@@ -43,7 +44,7 @@ class GetNewPlugins extends Widget
$template = 'getNewPlugins';
}
- $plugins = $this->marketplaceApiClient->searchForPlugins('', '', Sort::METHOD_LAST_UPDATED, '');
+ $plugins = $this->marketplaceApiClient->searchForPlugins('', '', Sort::METHOD_LAST_UPDATED, PurchaseType::TYPE_ALL);
return $this->renderTemplate($template, array(
'plugins' => array_splice($plugins, 0, 3)
diff --git a/plugins/Marketplace/Widgets/GetPremiumFeatures.php b/plugins/Marketplace/Widgets/GetPremiumFeatures.php
new file mode 100644
index 0000000000..4e777a218f
--- /dev/null
+++ b/plugins/Marketplace/Widgets/GetPremiumFeatures.php
@@ -0,0 +1,56 @@
+<?php
+/**
+ * Piwik - free/libre analytics platform
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ *
+ */
+namespace Piwik\Plugins\Marketplace\Widgets;
+
+use Piwik\Common;
+use Piwik\Piwik;
+use Piwik\Plugin;
+use Piwik\Plugins\Marketplace\Api\Client;
+use Piwik\Plugins\Marketplace\Input\PurchaseType;
+use Piwik\Plugins\Marketplace\Input\Sort;
+use Piwik\Widget\Widget;
+use Piwik\Widget\WidgetConfig;
+
+class GetPremiumFeatures extends Widget
+{
+ /**
+ * @var Client
+ */
+ private $marketplaceApiClient;
+
+ public function __construct(Client $marketplaceApiClient)
+ {
+ $this->marketplaceApiClient = $marketplaceApiClient;
+ }
+
+ public static function configure(WidgetConfig $config)
+ {
+ $config->setCategoryId('About Piwik');
+ $config->setName(Piwik::translate('Marketplace_PaidPlugins'));
+ $config->setOrder(20);
+ }
+
+ public function render()
+ {
+ $template = 'getPremiumFeatures';
+
+ $plugins = $this->marketplaceApiClient->searchForPlugins('', '', Sort::METHOD_LAST_UPDATED, PurchaseType::TYPE_PAID);
+
+ if (empty($plugins)) {
+ $plugins = array();
+ } else {
+ $plugins = array_splice($plugins, 0, 20);
+ }
+
+ return $this->renderTemplate($template, array(
+ 'plugins' => $plugins
+ ));
+ }
+
+} \ No newline at end of file
diff --git a/plugins/Marketplace/stylesheets/marketplace-widget.less b/plugins/Marketplace/stylesheets/marketplace-widget.less
index 3438983825..33508cdb24 100644
--- a/plugins/Marketplace/stylesheets/marketplace-widget.less
+++ b/plugins/Marketplace/stylesheets/marketplace-widget.less
@@ -4,6 +4,25 @@
}
}
+.getPremiumFeatures {
+ h3 {
+ margin-top: 0;
+ }
+ .pluginBody {
+ margin-bottom: 32px;
+ display: inline-block;
+
+ .pluginMoreDetails {
+ line-height:3em;
+ }
+ }
+
+ .row {
+ margin-left: -12px;
+ margin-right: -12px;
+ }
+}
+
.getNewPlugins {
.pluginName {
cursor: pointer;
diff --git a/plugins/Marketplace/templates/getNewPlugins.twig b/plugins/Marketplace/templates/getNewPlugins.twig
index 0c68e552e3..9808a72ce6 100644
--- a/plugins/Marketplace/templates/getNewPlugins.twig
+++ b/plugins/Marketplace/templates/getNewPlugins.twig
@@ -3,7 +3,7 @@
{% for plugin in plugins %}
<div class="col s12">
- <h3 class="pluginName" piwik-plugin-name="{{ plugin.name|e('html_attr') }}">{{ plugin.name }}</h3>
+ <h3 class="pluginName" piwik-plugin-name="{{ plugin.name|e('html_attr') }}">{{ plugin.displayName }}</h3>
<span>
{{ plugin.description }}
<br />
@@ -16,7 +16,7 @@
</div>
<div class="widgetBody">
- <a href="{{ linkTo({'module': 'CorePluginsAdmin', 'action': 'marketplace'}) }}"
+ <a href="{{ linkTo({'module': 'Marketplace', 'action': 'overview'}) }}"
>{{ 'CorePluginsAdmin_ViewAllMarketplacePlugins'|translate }}</a>
</div>
</div> \ No newline at end of file
diff --git a/plugins/Marketplace/templates/getNewPluginsAdmin.twig b/plugins/Marketplace/templates/getNewPluginsAdmin.twig
index b929a48430..1e3d60f647 100644
--- a/plugins/Marketplace/templates/getNewPluginsAdmin.twig
+++ b/plugins/Marketplace/templates/getNewPluginsAdmin.twig
@@ -5,7 +5,7 @@
<h3 class="pluginName"
title="{{ plugin.description|e('html_attr') }}"
- piwik-plugin-name="{{ plugin.name|e('html_attr') }}">{{ plugin.name }}</h3>
+ piwik-plugin-name="{{ plugin.name|e('html_attr') }}">{{ plugin.displayName }}</h3>
<p class="description"
title="{{ plugin.description|e('html_attr') }}">{{ plugin.description }}</p>
@@ -20,7 +20,7 @@
</div>
<div class="widgetBody">
- <a href="{{ linkTo({'module': 'CorePluginsAdmin', 'action': 'marketplace'}) }}"
+ <a href="{{ linkTo({'module': 'Marketplace', 'action': 'overview'}) }}"
>{{ 'CorePluginsAdmin_ViewAllMarketplacePlugins'|translate }}</a>
</div>
diff --git a/plugins/Marketplace/templates/getPremiumFeatures.twig b/plugins/Marketplace/templates/getPremiumFeatures.twig
new file mode 100644
index 0000000000..fa0fe83744
--- /dev/null
+++ b/plugins/Marketplace/templates/getPremiumFeatures.twig
@@ -0,0 +1,23 @@
+<div class="getNewPlugins getPremiumFeatures widgetBody">
+ <div class="row">
+ {% for plugin in plugins %}
+ <div class="col s12 m4">
+
+ <h3 class="pluginName" piwik-plugin-name="{{ plugin.name|e('html_attr') }}">{{ plugin.displayName }}</h3>
+ <span class="pluginBody">
+ {{ plugin.description }}
+ <br />
+ <a href="javascript:;" class="pluginMoreDetails" piwik-plugin-name="{{ plugin.name|e('html_attr') }}">{{ 'General_MoreDetails'|translate }}</a>
+ </span>
+ </div>
+ {% if loop.index % 3 == 0 %}
+ </div><div class="row">
+ {% endif %}
+ {% endfor %}
+ </div>
+
+ <div class="widgetBody">
+ <a href="{{ linkTo({'module': 'Marketplace', 'action': 'overview', 'show': 'premium'}) }}"
+ >{{ 'CorePluginsAdmin_ViewAllMarketplacePlugins'|translate }}</a>
+ </div>
+</div> \ No newline at end of file
diff --git a/plugins/SegmentEditor/javascripts/Segmentation.js b/plugins/SegmentEditor/javascripts/Segmentation.js
index 28280a1a5d..7930ae8c0e 100644
--- a/plugins/SegmentEditor/javascripts/Segmentation.js
+++ b/plugins/SegmentEditor/javascripts/Segmentation.js
@@ -1278,28 +1278,7 @@ $(document).ready(function() {
segmentDefinition = cleanupSegmentDefinition(segmentDefinition);
segmentDefinition = encodeURIComponent(segmentDefinition);
- if (piwikHelper.isAngularRenderingThePage()) {
-
- angular.element(document).injector().invoke(function ($location, $rootScope) {
- var $search = $location.search();
-
- if (segmentDefinition !== $search.segment) {
- // eg when using back button the date might be actually already changed in the URL and we do not
- // want to change the URL again
- $search.segment = segmentDefinition.replace(/%$/, '%25').replace(/%([^\d].)/g, "%25$1");
- $location.search($search);
- setTimeout(function () {
- try {
- $rootScope.$apply();
- } catch (e) {}
- }, 1);
- }
-
- });
- return false;
- } else {
- return broadcast.propagateNewPage('segment=' + segmentDefinition, true);
- }
+ return broadcast.propagateNewPage('segment=' + segmentDefinition, true);
};
this.changeSegmentList = function () {};
diff --git a/plugins/UsersManager/templates/userSettings.twig b/plugins/UsersManager/templates/userSettings.twig
index 2824262acd..34a2b5a75a 100644
--- a/plugins/UsersManager/templates/userSettings.twig
+++ b/plugins/UsersManager/templates/userSettings.twig
@@ -109,7 +109,7 @@
<div piwik-content-block
content-title="{{ 'UsersManager_TokenAuth'|translate|e('html_attr') }}">
- <pre piwik-select-on-focus id="token_auth_user">{{ userTokenAuth }}</pre>
+ <pre piwik-select-on-focus id="token_auth_user" piwik-show-sensitive-data="{{ userTokenAuth }}"></pre>
<p>{{ 'UsersManager_TokenRegenerateLogoutWarning'|translate }}</p>
<button class="btn btn-link"
diff --git a/plugins/Widgetize/tests/System/WidgetTest.php b/plugins/Widgetize/tests/System/WidgetTest.php
index af99759c77..e0ff947bf7 100644
--- a/plugins/Widgetize/tests/System/WidgetTest.php
+++ b/plugins/Widgetize/tests/System/WidgetTest.php
@@ -12,7 +12,6 @@ use Piwik\Container\StaticContainer;
use Piwik\Http\ControllerResolver;
use Piwik\Piwik;
use Piwik\Plugins\API;
-use Piwik\Plugins\Goals;
use Piwik\Plugins\Widgetize\tests\Fixtures\WidgetizeFixture;
use Piwik\Tests\Framework\TestCase\SystemTestCase;
use Piwik\Widget\WidgetsList;
@@ -993,6 +992,14 @@ class WidgetTest extends SystemTestCase
'action' => 'getNewPlugins',
),
), array (
+ 'name' => 'Premium Features',
+ 'uniqueId' => 'widgetMarketplacegetPremiumFeatures',
+ 'parameters' =>
+ array (
+ 'module' => 'Marketplace',
+ 'action' => 'getPremiumFeatures',
+ ),
+ ), array (
'name' => 'System Check',
'uniqueId' => 'widgetInstallationgetSystemCheck',
'parameters' =>