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:
authorThomas Steur <thomas.steur@gmail.com>2015-06-15 07:40:09 +0300
committerThomas Steur <thomas.steur@gmail.com>2015-06-19 05:38:23 +0300
commit6bc22107fbd09ad6c85be41d6a30df5c4ec544ef (patch)
treecd02f05a51f92567eabcd233d9b55e30ad56c186 /plugins
parentbe138daca6b7a657aeea4e10d37bb89066641dd0 (diff)
refs #7090 #4789 Improve the look of data tables, entity tables, forms, ...
Diffstat (limited to 'plugins')
-rw-r--r--plugins/API/templates/listAllAPI.twig2
-rw-r--r--plugins/Actions/javascripts/actionsDataTable.js18
-rw-r--r--plugins/CoreAdminHome/lang/en.json4
-rw-r--r--plugins/CoreAdminHome/stylesheets/generalSettings.less23
-rw-r--r--plugins/CoreAdminHome/templates/generalSettings.twig22
-rw-r--r--plugins/CoreAdminHome/templates/pluginSettings.twig4
-rw-r--r--plugins/CoreHome/javascripts/dataTable.js22
-rw-r--r--plugins/CoreHome/stylesheets/dataTable/_dataTable.less45
-rw-r--r--plugins/CoreHome/stylesheets/dataTable/_rowActions.less1
-rw-r--r--plugins/CoreHome/stylesheets/dataTable/_subDataTable.less4
-rw-r--r--plugins/CoreHome/stylesheets/zen-mode.less27
-rw-r--r--plugins/CoreHome/templates/_dataTableCell.twig30
-rw-r--r--plugins/CorePluginsAdmin/stylesheets/plugins_admin.less4
-rw-r--r--plugins/CorePluginsAdmin/templates/plugins.twig2
-rw-r--r--plugins/DBStats/stylesheets/dbStatsTable.less9
-rwxr-xr-xplugins/DBStats/templates/index.twig12
-rw-r--r--plugins/DevicesDetection/templates/detection.twig3
-rw-r--r--plugins/Feedback/stylesheets/feedback.less8
-rw-r--r--plugins/Feedback/templates/index.twig5
-rw-r--r--plugins/Insights/templates/table_header.twig4
-rw-r--r--plugins/Installation/lang/en.json14
-rw-r--r--plugins/Installation/stylesheets/installation.css4
-rw-r--r--plugins/Installation/templates/finished.twig8
-rw-r--r--plugins/LeftMenu/Settings.php3
-rw-r--r--plugins/Live/stylesheets/live.less107
-rw-r--r--plugins/Live/templates/_actionsList.twig4
-rw-r--r--plugins/Live/templates/_dataTableViz_visitorLog.twig96
-rw-r--r--plugins/Live/templates/_totalVisitors.twig14
-rw-r--r--plugins/Live/templates/getLastVisitsStart.twig33
-rw-r--r--plugins/MobileMessaging/templates/index.twig12
-rw-r--r--plugins/Morpheus/images/minus.pngbin176 -> 208 bytes
-rw-r--r--plugins/Morpheus/images/plus.pngbin174 -> 214 bytes
-rw-r--r--plugins/Morpheus/javascripts/morpheus.js1
-rw-r--r--plugins/Morpheus/stylesheets/base.less1
-rw-r--r--plugins/Morpheus/stylesheets/base/colors.less1
-rw-r--r--plugins/Morpheus/stylesheets/general/_form.less26
-rw-r--r--plugins/Morpheus/stylesheets/general/_forms.less32
-rw-r--r--plugins/Morpheus/stylesheets/main.less140
-rw-r--r--plugins/Morpheus/stylesheets/ui/_cards.less15
-rw-r--r--plugins/Morpheus/stylesheets/ui/_components.less7
-rw-r--r--plugins/Morpheus/stylesheets/ui/_navs.less4
-rw-r--r--plugins/Morpheus/stylesheets/ui/_panels.less8
-rw-r--r--plugins/Morpheus/stylesheets/ui/_tables.less6
-rw-r--r--plugins/Morpheus/templates/settingsMacros.twig17
-rw-r--r--plugins/MultiSites/angularjs/dashboard/dashboard.directive.html7
-rw-r--r--plugins/MultiSites/angularjs/dashboard/dashboard.directive.less39
-rw-r--r--plugins/MultiSites/angularjs/site/site.directive.html6
-rw-r--r--plugins/PrivacyManager/PrivacyManager.php6
-rw-r--r--plugins/PrivacyManager/javascripts/privacySettings.js2
-rw-r--r--plugins/PrivacyManager/lang/en.json10
-rw-r--r--plugins/PrivacyManager/templates/privacySettings.twig77
-rw-r--r--plugins/Provider/Provider.php3
m---------plugins/QueuedTracking0
-rw-r--r--plugins/ScheduledReports/ScheduledReports.php6
-rw-r--r--plugins/ScheduledReports/stylesheets/scheduledreports.less5
-rw-r--r--plugins/SitesManager/angularjs/sites-manager/sites-manager.controller.js1
-rw-r--r--plugins/SitesManager/stylesheets/SitesManager.less9
-rw-r--r--plugins/SitesManager/templates/global-settings.html2
-rw-r--r--plugins/UserCountry/templates/index.twig1
-rw-r--r--plugins/UserLanguage/UserLanguage.php3
-rw-r--r--plugins/UsersManager/stylesheets/usersManager.less18
-rw-r--r--plugins/UsersManager/templates/index.twig2
-rw-r--r--plugins/Widgetize/stylesheets/widgetize.less7
-rw-r--r--plugins/Widgetize/templates/index.twig2
64 files changed, 563 insertions, 445 deletions
diff --git a/plugins/API/templates/listAllAPI.twig b/plugins/API/templates/listAllAPI.twig
index 4bf0c04600..fac185be86 100644
--- a/plugins/API/templates/listAllAPI.twig
+++ b/plugins/API/templates/listAllAPI.twig
@@ -2,7 +2,7 @@
{% block content %}
-<div>
+<div class="api-list">
<h2>{{ 'API_QuickDocumentationTitle'|translate }}</h2>
diff --git a/plugins/Actions/javascripts/actionsDataTable.js b/plugins/Actions/javascripts/actionsDataTable.js
index 29d56fd312..ad64445c22 100644
--- a/plugins/Actions/javascripts/actionsDataTable.js
+++ b/plugins/Actions/javascripts/actionsDataTable.js
@@ -169,16 +169,10 @@
},
addOddAndEvenClasses: function(domElem) {
- // Add some styles on the cells even/odd
+ // Add some styles on the cells
// label (first column of a data row) or not
- $("tr:not(.hidden):odd td:first-child", domElem)
- .removeClass('labeleven').addClass('label labelodd');
- $("tr:not(.hidden):even td:first-child", domElem)
- .removeClass('labelodd').addClass('label labeleven');
- $("tr:not(.hidden):odd td", domElem).slice(1)
- .removeClass('columneven').addClass('column columnodd');
- $("tr:not(.hidden):even td", domElem).slice(1)
- .removeClass('columnodd').addClass('column columneven');
+ $("tr:not(.hidden) td:first-child", domElem).addClass('label');
+ $("tr:not(.hidden) td", domElem).slice(1).addClass('column');
},
handleRowActions: function (domElem, rows) {
@@ -242,7 +236,6 @@
// else we toggle all these rows
else {
var plusDetected = $('td img.plusMinus', domElem).attr('src').indexOf('plus') >= 0;
- var stripingNeeded = false;
$(domElem).siblings().each(function () {
var parents = $(this).prop('parent').split(' ');
@@ -251,7 +244,6 @@
|| parents.indexOf('subDataTable_' + idSubTable) >= 0) {
if (plusDetected) {
$(this).css('display', '').removeClass('hidden');
- stripingNeeded = !stripingNeeded;
//unroll everything and display '-' sign
//if the row is already opened
@@ -266,7 +258,6 @@
}
else {
$(this).css('display', 'none').addClass('hidden');
- stripingNeeded = !stripingNeeded;
}
self.repositionRowActions($(domElem));
}
@@ -277,9 +268,6 @@
if (!table.hasClass('dataTable')) {
table = table.closest('.dataTable');
}
- if (stripingNeeded) {
- self.addOddAndEvenClasses(table);
- }
self.$element.trigger('piwik:actionsSubTableToggled');
}
diff --git a/plugins/CoreAdminHome/lang/en.json b/plugins/CoreAdminHome/lang/en.json
index df9df65574..f9ccf762e4 100644
--- a/plugins/CoreAdminHome/lang/en.json
+++ b/plugins/CoreAdminHome/lang/en.json
@@ -3,7 +3,7 @@
"Administration": "Administration",
"ArchivingSettings": "Archiving settings",
"BrandingSettings": "Branding settings",
- "CheckReleaseGetVersion": "When checking for new version of Piwik, always get",
+ "CheckReleaseGetVersion": "Use the latest beta release",
"ClickHereToOptIn": "Click here to opt in.",
"ClickHereToOptOut": "Click here to opt out.",
"CustomLogoFeedbackInfo": "If you customize the Piwik logo, you might also be interested to hide the %s link in the top menu. To do so, you can disable the Feedback plugin in the %sManage Plugins%s page.",
@@ -71,7 +71,7 @@
"PluginSettingsIntro": "Here you can change the settings for the following 3rd party plugins:",
"PluginSettingsValueNotAllowed": "The value for field \"%s\" in plugin \"%s\" is not allowed",
"PluginSettingsSaveFailed": "Failed to save plugin settings",
- "SendPluginUpdateCommunication": "Send me an email notification when there is a new plugin update",
+ "SendPluginUpdateCommunication": "Send an email when a plugin update is available",
"SendPluginUpdateCommunicationHelp": "An email will be sent to Super Users when there is a new version available for a plugin.",
"StableReleases": "If Piwik is a critical part of your business, we recommend you use the latest stable release. If you use the latest beta and you find a bug or have a suggestion, please %ssee here%s.",
"SystemPluginSettings": "System Plugin Settings",
diff --git a/plugins/CoreAdminHome/stylesheets/generalSettings.less b/plugins/CoreAdminHome/stylesheets/generalSettings.less
index 03847ad416..44e8556477 100644
--- a/plugins/CoreAdminHome/stylesheets/generalSettings.less
+++ b/plugins/CoreAdminHome/stylesheets/generalSettings.less
@@ -74,12 +74,31 @@ table.admin tbody td:hover, table.admin tbody th:hover {
padding: 15px;
}
+.admin p + h2 {
+ margin-top: 35px;
+ // .admin p defines a margin-bottom of 10px, we make sure we still have a margin-top of 45px this way
+}
+
.admin h2 {
- border-bottom: 1px solid #DADADA;
- margin: 15px -15px 20px 0;
+ border-bottom: 0px;
+ margin: 45px -15px 11px 0;
padding: 0 0 5px 0;
font-size: 24px;
width:100%;
+
+ &:first-of-type:not(.secondary) {
+ margin-top: 17px;
+ margin-bottom: 16px;
+ border-bottom: 1px solid #DADADA;
+ }
+}
+
+.admin h2 + h3 {
+ margin-top: 0px;
+}
+
+.admin h3 {
+ margin-top: 30px;
}
.admin p, .admin section {
diff --git a/plugins/CoreAdminHome/templates/generalSettings.twig b/plugins/CoreAdminHome/templates/generalSettings.twig
index b997f391ca..b5d60087fc 100644
--- a/plugins/CoreAdminHome/templates/generalSettings.twig
+++ b/plugins/CoreAdminHome/templates/generalSettings.twig
@@ -20,15 +20,13 @@
<label class="radio">
<input type="radio" value="1" name="enableBrowserTriggerArchiving" {% if enableBrowserTriggerArchiving==1 %} checked="checked"{% endif %} />
{{ 'General_Yes'|translate }}
+ <span class="form-description">{{ 'General_Default'|translate }}</span>
</label>
- <span class="form-description">{{ 'General_Default'|translate }}</span>
<label class="radio">
<input type="radio" value="0" name="enableBrowserTriggerArchiving" {% if enableBrowserTriggerArchiving==0 %} checked="checked"{% endif %} />
{{ 'General_No'|translate }}
+ <span class="form-description">{{ 'General_ArchivingTriggerDescription'|translate("<a href='?module=Proxy&action=redirect&url=http://piwik.org/docs/setup-auto-archiving/' target='_blank'>","</a>")|raw }}</span>
</label>
- <span class="form-description">
- {{ 'General_ArchivingTriggerDescription'|translate("<a href='?module=Proxy&action=redirect&url=http://piwik.org/docs/setup-auto-archiving/' target='_blank'>","</a>")|raw }}
- </span>
</div>
{% else %}
<div class="form-group">
@@ -66,6 +64,9 @@
<input value='{{ todayArchiveTimeToLive }}' id='todayArchiveTimeToLive' {% if not isGeneralSettingsAdminEnabled %}disabled="disabled"{% endif %} />
<span class="input-group-addon">{{ 'General_NSeconds'|translate('') }}</span>
</div>
+ <span class="form-description">
+ {{ 'General_RearchiveTimeIntervalOnlyForTodayReports'|translate }}
+ </span>
</div>
{% if isGeneralSettingsAdminEnabled %}
@@ -79,15 +80,14 @@
{{ 'CoreAdminHome_StableReleases'|translate("<a href='?module=Proxy&action=redirect&url=http%3A%2F%2Fdeveloper.piwik.org%2Fguides%2Fcore-team-workflow%23influencing-piwik-development' target='_blank'>","</a>")|raw }}
</div>
<label class="radio">
- <input type="radio" value="0" name="enableBetaReleaseCheck"{% if enableBetaReleaseCheck==0 %} checked="checked"{% endif %} />
- {{ 'CoreAdminHome_LatestStableRelease'|translate }}
+ <input type="radio" value="1" name="enableBetaReleaseCheck"{% if enableBetaReleaseCheck==1 %} checked="checked"{% endif %} />
+ {{ 'General_Yes'|translate }}
</label>
- <span class="form-description">{{ 'General_Recommended'|translate }}</span>
<label class="radio">
- <input type="radio" value="1" name="enableBetaReleaseCheck"{% if enableBetaReleaseCheck==1 %} checked="checked"{% endif %} />
- {{ 'CoreAdminHome_LatestBetaRelease'|translate }}
+ <input type="radio" value="0" name="enableBetaReleaseCheck"{% if enableBetaReleaseCheck==0 %} checked="checked"{% endif %} />
+ {{ 'General_No'|translate }}
+ <span class="form-description">{{ 'General_Recommended'|translate }}</span>
</label>
- <span class="form-description">{{ 'CoreAdminHome_ForBetaTestersOnly'|translate }}</span>
</div>
{% if canUpdateCommunication %}
@@ -105,8 +105,8 @@
<input type="radio" name="enablePluginUpdateCommunication" value="0"
{% if enableSendPluginUpdateCommunication==0 %} checked="checked"{% endif %}/>
{{ 'General_No'|translate }}
+ <span class="form-description">{{ 'General_Default'|translate }}</span>
</label>
- <span class="form-description">{{ 'General_Default'|translate }}</span>
</div>
{% endif %}
{% endif %}
diff --git a/plugins/CoreAdminHome/templates/pluginSettings.twig b/plugins/CoreAdminHome/templates/pluginSettings.twig
index 415c174f79..0cf729bf9f 100644
--- a/plugins/CoreAdminHome/templates/pluginSettings.twig
+++ b/plugins/CoreAdminHome/templates/pluginSettings.twig
@@ -13,6 +13,8 @@
<h2 piwik-enriched-headline>{{ 'CoreAdminHome_SystemPluginSettings'|translate }}</h2>
{% endif %}
+ <input type="hidden" name="setpluginsettingsnonce" value="{{ nonce }}">
+
<p>
{{ 'CoreAdminHome_PluginSettingsIntro'|translate }}
{% for pluginName, settings in pluginsSettings %}
@@ -20,8 +22,6 @@
{% endfor %}
</p>
- <input type="hidden" name="setpluginsettingsnonce" value="{{ nonce }}">
-
{% for pluginName, pluginSettings in pluginsSettings %}
<h2 id="{{ pluginName|e('html_attr') }}">{{ pluginName }}</h2>
diff --git a/plugins/CoreHome/javascripts/dataTable.js b/plugins/CoreHome/javascripts/dataTable.js
index aa3e227fc2..a8f5f92d90 100644
--- a/plugins/CoreHome/javascripts/dataTable.js
+++ b/plugins/CoreHome/javascripts/dataTable.js
@@ -580,13 +580,21 @@ $.extend(DataTable.prototype, UIControl.prototype, {
var imageSortHeight = 16;
var sortOrder = self.param.filter_sort_order || 'desc';
- var ImageSortClass = sortOrder.charAt(0).toUpperCase() + sortOrder.substr(1);
// we change the style of the column currently used as sort column
// adding an image and the class columnSorted to the TD
- $('th', domElem).filter(function () { return $(this).attr('id') == self.param.filter_sort_column; })
- .addClass('columnSorted')
- .prepend('<div class="sortIconContainer sortIconContainer' + ImageSortClass + ' ' + imageSortClassType + '"><span class="sortIcon" width="' + imageSortWidth + '" height="' + imageSortHeight + '" /></div>');
+ var head = $('th', domElem).filter(function () {
+ return $(this).attr('id') == self.param.filter_sort_column;
+ }).addClass('columnSorted');
+
+ var sortIconHtml = '<span class="sortIcon ' + sortOrder + ' ' + imageSortClassType +'" width="' + imageSortWidth + '" height="' + imageSortHeight + '" />';
+
+ var div = head.find('.thDIV');
+ if (head.hasClass('first') || head.attr('id') == 'label') {
+ div.append(sortIconHtml);
+ } else {
+ div.prepend(sortIconHtml);
+ }
}
},
@@ -1408,10 +1416,8 @@ $.extend(DataTable.prototype, UIControl.prototype, {
// Add some styles on the cells even/odd
// label (first column of a data row) or not
$("th:first-child", domElem).addClass('label');
- $("td:first-child:odd", domElem).addClass('label labeleven');
- $("td:first-child:even", domElem).addClass('label labelodd');
- $("tr:odd td", domElem).slice(1).addClass('column columnodd');
- $("tr:even td", domElem).slice(1).addClass('column columneven');
+ $("td:first-child", domElem).addClass('label');
+ $("tr td", domElem).slice(1).addClass('column');
},
handleExpandFooter: function (domElem) {
diff --git a/plugins/CoreHome/stylesheets/dataTable/_dataTable.less b/plugins/CoreHome/stylesheets/dataTable/_dataTable.less
index 3a0b305360..09f2f15a6a 100644
--- a/plugins/CoreHome/stylesheets/dataTable/_dataTable.less
+++ b/plugins/CoreHome/stylesheets/dataTable/_dataTable.less
@@ -9,16 +9,15 @@
td .ratio {
color: #999999;
font-size: 12px;
- display:none;
+ display: inline-block;
+ visibility: hidden;
text-align: right;
- min-width: 45px;
- margin-left: 4px;
+ margin-right: 4px;
font-weight: normal;
}
td.highlight > .ratio {
- display: inline-block;
- line-height: 15px;
+ visibility: visible;
}
}
@@ -63,7 +62,6 @@ table.dataTable th {
background: @dataTable-header-background;
font-size: 12px;
font-weight: normal;
- border-left: 1px solid #d4d0c4;
vertical-align: top;
}
@@ -73,14 +71,11 @@ table.dataTable th.sortable {
table.dataTable th.columnSorted {
font-weight: bold;
- padding-right: 20px;
- background: @dataTable-headerActive-background;
}
table.dataTable td {
- padding: 5px 5px 5px 12px;
+ padding: 5px 1px 5px 12px;
background: @theme-color-background-base;
- border-left: 1px solid #e7e7e7;
}
table.dataTable td,
@@ -90,21 +85,6 @@ table.dataTable td a {
color: @theme-color-text-light;
}
-table.dataTable tr:hover > td,
-table.dataTable tr:hover > td .dataTableRowActions {
- background-color: #FFFFF7;
-}
-
-table.dataTable tr.subDataTable:hover > td,
-table.dataTable tr.subDataTable:hover > td .dataTableRowActions {
- background-color: #ffffcb;
-}
-
-table.dataTable tr:hover > td.cellSubDataTable
-table.dataTable tr:hover > td.cellSubDataTable .dataTableRowActions {
- background-color: @theme-color-background-base;
-}
-
td.clean {
background-color: @theme-color-background-base;
}
@@ -113,16 +93,7 @@ table.dataTable td.column {
white-space: nowrap;
}
-table.dataTable td.columneven {
- background: #efeeec;
-}
-
-table.dataTable td.columnodd {
- background: #f6f5f3;
-}
-
.dataTable tr.highlight td {
- background-color: #ECF9DD;
font-weight: bold;
}
@@ -180,7 +151,7 @@ div.dataTable, div.dataTable > .dataTableWrapper {
}
.sortIconContainer {
- float: right;
+ float: left;
position: relative;
}
@@ -548,7 +519,7 @@ div.dataTable, div.dataTable > .dataTableWrapper {
}
/* Actions table */
-.dataTableActions table.dataTable tr td.labelodd {
+.dataTableActions table.dataTable tr td.label {
background-image: none;
}
@@ -609,7 +580,7 @@ tr.level12 td.label {
}
tr td.label img.plusMinus {
- margin-left: -1em;
+ margin-left: -10px;
margin-right: 3px;
margin-top: -5px;
}
diff --git a/plugins/CoreHome/stylesheets/dataTable/_rowActions.less b/plugins/CoreHome/stylesheets/dataTable/_rowActions.less
index 84a875bec7..eb0a8a4301 100644
--- a/plugins/CoreHome/stylesheets/dataTable/_rowActions.less
+++ b/plugins/CoreHome/stylesheets/dataTable/_rowActions.less
@@ -4,6 +4,7 @@ table.dataTable .dataTableRowActions {
display: none;
overflow: hidden;
margin-top: -5px;
+ background-color: inherit !important;
z-index: 1000; /* Work around FF bug to make sure it displays over ellipsis */
}
diff --git a/plugins/CoreHome/stylesheets/dataTable/_subDataTable.less b/plugins/CoreHome/stylesheets/dataTable/_subDataTable.less
index 7e540c2b62..3dcfea86da 100644
--- a/plugins/CoreHome/stylesheets/dataTable/_subDataTable.less
+++ b/plugins/CoreHome/stylesheets/dataTable/_subDataTable.less
@@ -14,7 +14,7 @@ table.subDataTable thead th {
border-bottom: 1px solid #e7e7e7;
}
-table.subDataTable td.labeleven, table.subDataTable td.labelodd {
+table.subDataTable td.label {
background-image: none;
}
@@ -27,7 +27,7 @@ table.subDataTable td, table.subDataTable td a {
color: #615B53;
}
-table.subDataTable td.labeleven, table.subDataTable td.columneven {
+table.subDataTable td.label, table.subDataTable td.column {
color: #2D2A27;
}
diff --git a/plugins/CoreHome/stylesheets/zen-mode.less b/plugins/CoreHome/stylesheets/zen-mode.less
index 898dd31c93..8d812ebabc 100644
--- a/plugins/CoreHome/stylesheets/zen-mode.less
+++ b/plugins/CoreHome/stylesheets/zen-mode.less
@@ -1,4 +1,4 @@
-#content:not(.admin), .widget {
+#content:not(.admin), .widget, .ui-widget {
.UserCountryMap .dataTableFooterIcons {
display: block;
@@ -8,7 +8,6 @@
table.dataTable {
th.sortable {
- background: @theme-color-background-base !important;
border-left: 0px;
border-bottom: 0px;
}
@@ -32,8 +31,7 @@
}
.dataTableActions table.dataTable {
- td.columnodd,
- td.columneven,
+ td.column
th.sortable:not(.first) {
width: 50px;
}
@@ -51,15 +49,6 @@
border-top: 0px;
}
- h2:nth-of-type(n+2) {
- margin-top: 40px;
- }
-
- h2 {
- padding-left: 10px;
- font-size: 24px;
- }
-
.goalEntry:first-of-type {
padding-top: 20px;
}
@@ -86,6 +75,18 @@
}
+#content:not(.admin), .widget {
+
+ h2:nth-of-type(n+2) {
+ margin-top: 40px;
+ }
+
+ h2 {
+ padding-left: 10px;
+ font-size: 24px;
+ }
+}
+
.dataTableFeatures .expandDataTableFooterDrawer {
margin-bottom: -9px;
}
diff --git a/plugins/CoreHome/templates/_dataTableCell.twig b/plugins/CoreHome/templates/_dataTableCell.twig
index 1dd22bf024..40e61541f3 100644
--- a/plugins/CoreHome/templates/_dataTableCell.twig
+++ b/plugins/CoreHome/templates/_dataTableCell.twig
@@ -7,20 +7,6 @@
<img class="link" width="10" height="9" src="plugins/Morpheus/images/link.gif"/>
{% endif %}
{% endif %}
-{% if column=='label' %}
- {% import 'macros.twig' as piwik %}
-
- <span class='label{% if row.getMetadata('is_aggregate') %} highlighted{% endif %}'
- {% if properties is defined and properties.tooltip_metadata_name is not empty %}title="{{ row.getMetadata(properties.tooltip_metadata_name) }}"{% endif %}>
- {{ piwik.logoHtml(row.getMetadata(), row.getColumn('label')) }}
- {% if row.getMetadata('html_label_prefix') %}<span class='label-prefix'>{{ row.getMetadata('html_label_prefix') | raw }}&nbsp;</span>{% endif -%}
- {%- if row.getMetadata('html_label_suffix') %}<span class='label-suffix'>{{ row.getMetadata('html_label_suffix') | raw }}</span>{% endif -%}
-{% endif %}<span class="value">{% if row.getColumn(column) %}{{- row.getColumn(column)|raw -}}{% else %}-{% endif %}</span>
-{% if column=='label' %}</span>{% endif %}
-{% if not row.getIdSubDataTable() and column=='label' and row.getMetadata('url') %}
- </a>
-{% endif %}
-{% if row.getMetadata(tooltipIndex) %}</span>{% endif %}
{% set totals = dataTable.getMetadata('totals') %}
{% if column in totals|keys -%}
@@ -46,4 +32,20 @@
<span class="ratio" title="{{ reportRatioTooltip|raw }} {{ totalRatioTooltip|e('html_attr') }}">&nbsp;{{ rowPercentage }}</span>
{%- endif %}
+
+{% if column=='label' %}
+ {% import 'macros.twig' as piwik %}
+
+ <span class='label{% if row.getMetadata('is_aggregate') %} highlighted{% endif %}'
+ {% if properties is defined and properties.tooltip_metadata_name is not empty %}title="{{ row.getMetadata(properties.tooltip_metadata_name) }}"{% endif %}>
+ {{ piwik.logoHtml(row.getMetadata(), row.getColumn('label')) }}
+ {% if row.getMetadata('html_label_prefix') %}<span class='label-prefix'>{{ row.getMetadata('html_label_prefix') | raw }}&nbsp;</span>{% endif -%}
+ {%- if row.getMetadata('html_label_suffix') %}<span class='label-suffix'>{{ row.getMetadata('html_label_suffix') | raw }}</span>{% endif -%}
+{% endif %}<span class="value">{% if row.getColumn(column) %}{{- row.getColumn(column)|raw -}}{% else %}-{% endif %}</span>
+{% if column=='label' %}</span>{% endif %}
+{% if not row.getIdSubDataTable() and column=='label' and row.getMetadata('url') %}
+ </a>
+{% endif %}
+{% if row.getMetadata(tooltipIndex) %}</span>{% endif %}
+
{% endspaceless %}
diff --git a/plugins/CorePluginsAdmin/stylesheets/plugins_admin.less b/plugins/CorePluginsAdmin/stylesheets/plugins_admin.less
index a3a118349a..d786289ffb 100644
--- a/plugins/CorePluginsAdmin/stylesheets/plugins_admin.less
+++ b/plugins/CorePluginsAdmin/stylesheets/plugins_admin.less
@@ -1,3 +1,7 @@
+.pluginsManagement .entityContainer {
+ padding-top: 16px;
+}
+
table.dataTable tr.active-plugin > td {
background-color:@theme-color-background-base !important;
}
diff --git a/plugins/CorePluginsAdmin/templates/plugins.twig b/plugins/CorePluginsAdmin/templates/plugins.twig
index 7249e45488..8a9c593715 100644
--- a/plugins/CorePluginsAdmin/templates/plugins.twig
+++ b/plugins/CorePluginsAdmin/templates/plugins.twig
@@ -3,7 +3,7 @@
{% import '@CorePluginsAdmin/macros.twig' as plugins %}
{% block content %}
-<div>
+<div class="pluginsManagement">
{% if pluginsHavingUpdate|length %}
<h2>{{ pluginsHavingUpdate|length }} Update(s) available</h2>
diff --git a/plugins/DBStats/stylesheets/dbStatsTable.less b/plugins/DBStats/stylesheets/dbStatsTable.less
index 9d897c8405..601c769580 100644
--- a/plugins/DBStats/stylesheets/dbStatsTable.less
+++ b/plugins/DBStats/stylesheets/dbStatsTable.less
@@ -13,4 +13,13 @@
.adminTable.dbstatsTable a {
color: black;
text-decoration: underline;
+}
+
+.dbstatsTable {
+ .dataTable {
+ td {
+ padding-top: 7px;
+ padding-bottom: 7px;
+ }
+ }
} \ No newline at end of file
diff --git a/plugins/DBStats/templates/index.twig b/plugins/DBStats/templates/index.twig
index 32a8e78d08..89e4195188 100755
--- a/plugins/DBStats/templates/index.twig
+++ b/plugins/DBStats/templates/index.twig
@@ -42,7 +42,7 @@
<tbody>
<tr>
<td>
- <h2>{{ 'DBStats_TrackerTables'|translate }}</h2>
+ <h2 class="secondary">{{ 'DBStats_TrackerTables'|translate }}</h2>
{{ trackerDataSummary|raw }}
</td>
<td>&nbsp;</td>
@@ -54,11 +54,11 @@
<tbody>
<tr>
<td>
- <h2>{{ 'DBStats_ReportTables'|translate }}</h2>
+ <h2 class="secondary">{{ 'DBStats_ReportTables'|translate }}</h2>
{{ reportDataSummary|raw }}
</td>
<td>
- <h2>{{ 'General_Reports'|translate }}</h2>
+ <h2 class="secondary">{{ 'General_Reports'|translate }}</h2>
<div class="ajaxLoad" action="getIndividualReportsSummary">
<span class="loadingPiwik"><img src="plugins/Morpheus/images/loading-blue.gif"/>{{ 'General_LoadingData'|translate }}</span>
@@ -72,11 +72,11 @@
<tbody>
<tr>
<td>
- <h2>{{ 'DBStats_MetricTables'|translate }}</h2>
+ <h2 class="secondary">{{ 'DBStats_MetricTables'|translate }}</h2>
{{ metricDataSummary|raw }}
</td>
<td>
- <h2>{{ 'General_Metrics'|translate }}</h2>
+ <h2 class="secondary">{{ 'General_Metrics'|translate }}</h2>
<div class="ajaxLoad" action="getIndividualMetricsSummary">
<span class="loadingPiwik"><img src="plugins/Morpheus/images/loading-blue.gif"/>{{ 'General_LoadingData'|translate }}</span>
@@ -90,7 +90,7 @@
<tbody>
<tr>
<td>
- <h2>{{ 'DBStats_OtherTables'|translate }}</h2>
+ <h2 class="secondary">{{ 'DBStats_OtherTables'|translate }}</h2>
{{ adminDataSummary|raw }}
</td>
<td>&nbsp;</td>
diff --git a/plugins/DevicesDetection/templates/detection.twig b/plugins/DevicesDetection/templates/detection.twig
index 617a713973..0b9168413e 100644
--- a/plugins/DevicesDetection/templates/detection.twig
+++ b/plugins/DevicesDetection/templates/detection.twig
@@ -44,8 +44,11 @@
<h2>{{ 'DevicesDetection_DeviceDetection'|translate }}</h2>
<h3>{{ 'DevicesDetection_UserAgent'|translate }}</h3>
+
+ <br />
<form action="{{ linkTo({}) }}" method="POST">
<textarea name="ua">{{ userAgent }}</textarea>
+ <br />
<input type="submit" value="{{ 'General_Refresh'|translate }}" />
</form>
diff --git a/plugins/Feedback/stylesheets/feedback.less b/plugins/Feedback/stylesheets/feedback.less
index 3a12cb0365..187b07a020 100644
--- a/plugins/Feedback/stylesheets/feedback.less
+++ b/plugins/Feedback/stylesheets/feedback.less
@@ -7,8 +7,11 @@
line-height: 18px;
}
- p {
+ .header_full, p {
padding-bottom: 0px;
+ }
+
+ p {
line-height: 1.7em;
}
@@ -44,7 +47,8 @@
}
hr {
- background-color: #CCC;
+ margin-top: 45px;
+ background-color: @color-silver-l90;
height: 1px;
border: 0px;
}
diff --git a/plugins/Feedback/templates/index.twig b/plugins/Feedback/templates/index.twig
index 732c376b4b..0d0d025444 100644
--- a/plugins/Feedback/templates/index.twig
+++ b/plugins/Feedback/templates/index.twig
@@ -22,7 +22,6 @@
"</a>"
)|raw }}
</p>
- <br/>
</div>
<h2>{{ 'Feedback_CommunityHelp'|translate }}</h2>
@@ -31,7 +30,6 @@
<p> &bull; {{ 'Feedback_ViewUserGuides'|translate("<a target='_blank' href='?module=Proxy&action=redirect&url=http://piwik.org/docs/'>","</a>")|raw }}.</p>
<p> &bull; {{ 'Feedback_ViewAnswersToFAQ'|translate("<a target='_blank' href='?module=Proxy&action=redirect&url=http://piwik.org/faq/'>","</a>")|raw }}.</p>
<p> &bull; {{ 'Feedback_VisitTheForums'|translate("<a target='_blank' href='?module=Proxy&action=redirect&url=http://forum.piwik.org/'>","</a>")|raw }}.</p>
- <br/>
</div>
<h2>{{ 'Feedback_ProfessionalHelp'|translate }}</h2>
@@ -47,13 +45,13 @@
<p> &bull; {{ 'Feedback_PiwikProPremiumFeatures'|translate }}</p>
<p> &bull; {{ 'Feedback_PiwikProCustomDevelopment'|translate }}</p>
<p> &bull; {{ 'Feedback_PiwikProAnalystConsulting'|translate }}</p>
- <br/>
</div>
<form target="_blank" action="https://piwik.pro/contact#contact-form">
<input type="hidden" name="pk_campaign" value="App_Help">
<input type="hidden" name="pk_source" value="Piwik_App">
<input type="hidden" name="pk_medium" value="App_ContactUs_button">
+ <br />
<input type="submit" value="{{ 'Feedback_ContactUs'|translate }}">
</form>
@@ -70,7 +68,6 @@
"<a target='_blank' href='?module=Proxy&action=redirect&url=https://github.com/piwik/piwik/issues/new'>",
"</a>"
)|raw }}</p>
- <br/>
</div>
<div class="footer">
diff --git a/plugins/Insights/templates/table_header.twig b/plugins/Insights/templates/table_header.twig
index 7b30d06de9..00dc29736a 100644
--- a/plugins/Insights/templates/table_header.twig
+++ b/plugins/Insights/templates/table_header.twig
@@ -1,12 +1,12 @@
<tr>
- <th class="label">
+ <th class="label first">
{{ metadata.reportName }}
</th>
<th class="label orderBy {% if 'absolute' == properties.order_by %}active{% endif %}"
name="orderBy" value="absolute">
{{ metadata.metricName }}
</th>
- <th class="label orderBy {% if 'relative' == properties.order_by %}active{% endif %}"
+ <th class="label last orderBy {% if 'relative' == properties.order_by %}active{% endif %}"
name="orderBy" value="relative">
{{ 'MultiSites_Evolution'|translate }}
</th>
diff --git a/plugins/Installation/lang/en.json b/plugins/Installation/lang/en.json
index 2ad86e3109..5758213024 100644
--- a/plugins/Installation/lang/en.json
+++ b/plugins/Installation/lang/en.json
@@ -15,7 +15,7 @@
"DatabaseSetupLogin": "Login",
"DatabaseSetupServer": "Database Server",
"DatabaseSetupTablePrefix": "Table Prefix",
- "Email": "email",
+ "Email": "Email",
"Extension": "extension",
"Filesystem": "Filesystem",
"GetInvolved": "If you like what you see, you can %1$sget involved%2$s.",
@@ -38,9 +38,9 @@
"NfsFilesystemWarningSuffixInstall": "Using file based sessions on NFS is extremely slow, so Piwik will use database sessions. If you have many concurrent dashboard users, you may need to increase the maximum number of client connections to the database server.",
"NoConfigFound": "The Piwik configuration file couldn't be found and you are trying to access a Piwik page.<br \/><b>\u00a0\u00a0\u00bb You can <a href='index.php'>install Piwik now<\/a><\/b><br \/><small>If you installed Piwik before and have some tables in your DB, don't worry, you can reuse the same tables and keep your existing data!<\/small>",
"Optional": "Optional",
- "Password": "password",
+ "Password": "Password",
"PasswordDoNotMatch": "password do not match",
- "PasswordRepeat": "password (repeat)",
+ "PasswordRepeat": "Password (repeat)",
"PercentDone": "%s %% Done",
"PleaseFixTheFollowingErrors": "Please fix the following errors",
"DefaultSettings": "Default Piwik settings",
@@ -53,13 +53,13 @@
"SeeBelowForMoreInfo": "See below for more information.",
"SetupWebsite": "Setup a Website",
"SetupWebsiteError": "There was an error when adding the website",
- "SetupWebSiteName": "website name",
+ "SetupWebSiteName": "Website name",
"SetupWebsiteSetupSuccess": "Website %s created successfully!",
- "SetupWebSiteURL": "website URL",
+ "SetupWebSiteURL": "Website URL",
"SiteSetup": "Please setup the first website you would like to track and analyse with Piwik:",
"SiteSetupFootnote": "Note: once the Piwik Install is finished, you will be able to add more Websites to track!",
"SuperUser": "Super User",
- "SuperUserLogin": "super user login",
+ "SuperUserLogin": "Super user login",
"SuperUserSetupError": "There was an error when adding the Super User",
"SuperUserSetupSuccess": "Super User created successfully!",
"SystemCheck": "System Check",
@@ -128,7 +128,7 @@
"TablesUpdatedSuccess": "The database was successfully updated from %1$s to %2$s!",
"TablesWarningHelp": "Either choose to reuse the existing database tables or select a clean install to erase all existing data in the database.",
"TablesWithSameNamesFound": "Some %1$s tables in your database %2$s have the same names as the tables Piwik is trying to create",
- "Timezone": "website time zone",
+ "Timezone": "Website time zone",
"WeHopeYouWillEnjoyPiwik": "We hope you will enjoy using Piwik as much as we enjoy making it.",
"Welcome": "Welcome!",
"WelcomeHelp": "<p>Piwik is a free\/libre web analytics software that makes it easy to get the information you want from your visitors.<\/p><p>This process is split up into %s easy steps and will take around 5 minutes.<\/p>",
diff --git a/plugins/Installation/stylesheets/installation.css b/plugins/Installation/stylesheets/installation.css
index 759461f6b9..6d6b97be5e 100644
--- a/plugins/Installation/stylesheets/installation.css
+++ b/plugins/Installation/stylesheets/installation.css
@@ -41,6 +41,10 @@ body {
margin-bottom: 0;
}
+.installation-finished .form-group .checkbox {
+ width: 100%;
+}
+
/* Content */
h2 {
font-size: 25px;
diff --git a/plugins/Installation/templates/finished.twig b/plugins/Installation/templates/finished.twig
index 9e1f557103..636e8d397c 100644
--- a/plugins/Installation/templates/finished.twig
+++ b/plugins/Installation/templates/finished.twig
@@ -27,8 +27,10 @@
</div>
{% endif %}
- {% if form_data is defined %}
- {% include "genericForm.twig" %}
- {% endif %}
+ <div class="installation-finished">
+ {% if form_data is defined %}
+ {% include "genericForm.twig" %}
+ {% endif %}
+ </div>
{% endblock %}
diff --git a/plugins/LeftMenu/Settings.php b/plugins/LeftMenu/Settings.php
index 0fc096bdcb..b22c1bc40a 100644
--- a/plugins/LeftMenu/Settings.php
+++ b/plugins/LeftMenu/Settings.php
@@ -36,8 +36,7 @@ class Settings extends \Piwik\Plugin\Settings
{
$this->globalEnabled = new SystemSetting('globalEnabled', $this->t('GlobalSettingTitle'));
$this->globalEnabled->type = static::TYPE_BOOL;
- $this->globalEnabled->description = $this->t('GlobalSettingDescription');
- $this->globalEnabled->inlineHelp = $this->t('GlobalSettingInlineHelp');
+ $this->globalEnabled->inlineHelp = $this->t('GlobalSettingDescription') . ' ' . $this->t('GlobalSettingInlineHelp');
$this->globalEnabled->defaultValue = false;
$this->globalEnabled->readableByCurrentUser = true;
diff --git a/plugins/Live/stylesheets/live.less b/plugins/Live/stylesheets/live.less
index b7161cf973..82480f5569 100644
--- a/plugins/Live/stylesheets/live.less
+++ b/plugins/Live/stylesheets/live.less
@@ -2,18 +2,26 @@
text-align: left;
font-size: 90%;
color: @theme-color-text-light;
+ border-top: 1px solid @color-silver-l90;
+
+ .dataTable {
+ margin-bottom: -1px;
+ }
}
-#visitsLive .datetime, #visitsLive .country, #visitsLive .referrer, #visitsLive .settings, #visitsLive .returning {
- border-bottom: 1px solid #d3d1c5;
- border-right: 1px solid #d3d1c5;
- padding: 5px 5px 5px 12px;
+#visitsLive .settings {
+ border-bottom: 1px solid @color-silver-l90;
+}
+
+#visitsLive .datetime, #visitsLive .country, #visitsLive .settings, #visitsLive .returning {
+ padding: 10px 5px 10px 12px;
}
#visitsLive .datetime {
background: #E4E2D7;
border-top: 1px solid #d3d1c5;
margin: 0;
+ line-height: 20px;
text-align: left;
}
@@ -22,11 +30,9 @@
}
#visitsLive .referrer {
- background: #F9FAFA none repeat scroll 0 0;
-}
-
-#visitsLive .referrer:hover {
- background: #FFFFF7;
+ display: block;
+ padding-top: 4px;
+ padding-bottom: 1px;
}
#visitsLive .pagesTitle {
@@ -78,10 +84,6 @@
text-decoration: none;
}
-table.dataTable td.highlightField {
- background-color: #FFFFCB !important;
-}
-
ol.visitorLog {
list-style: decimal inside none;
}
@@ -118,7 +120,6 @@ ol.visitorLog li {
}
.visitorRank {
- margin-left: 5px;
border: 1px solid #D8D8D8;
color: #474747;
border-radius: 3px;
@@ -190,36 +191,52 @@ ol.visitorLog p {
padding:0;
}
-.dataTableVizVisitorLog table.dataTable .column {
- white-space: normal;
- padding: 12px 5px;
-}
-.dataTableVizVisitorLog table.dataTable .label {
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis;
-}
+.dataTableVizVisitorLog {
+
+ .card {
+ padding: 15px 0px;
+ font-size: 13px;
+ text-align: left;
+
+ a {
+ text-decoration: none !important;
+ color: @theme-color-link;
+ width: inherit;
+ }
+ }
+
+ .visitorLog > li > div {
+ width: 95%;
+ }
+
+ .dataTableWrapper {
+ width:100%;
+ }
-.dataTableVizVisitorLog .dataTableWrapper {
- width:100%;
+ .card {
+
+ &:hover .visitor-log-visitor-profile-link {
+ display:inline;
+ }
+ }
}
.visitor-log-page-list {
position:relative;
}
-.dataTableVizVisitorLog tr:hover .visitor-log-visitor-profile-link {
- display:inline;
-}
+
a.visitor-log-visitor-profile-link {
+ z-index: 2;
position:absolute;
display:none;
- right:8px;
- top:0;
+ right: 15px;
+ top: 15px;
font-style:italic;
font-size:13px;
img {
- margin-top:-2px;
+ margin-top: -2px;
+ margin-bottom: -3px;
}
}
@@ -249,18 +266,12 @@ a.visitor-log-visitor-profile-link {
display: block;
}
-span.visitorLogIcons:after {
- content: " ";
- clear: both;
- display: inline-block;
-}
-
.visitorLogIconWithDetails .details {
display: none;
}
.visitorLogIcons>span>span>img {
- margin: auto 0 auto 5px;
+ margin: auto 0 auto 0px;
}
.visitorLogIcons .visitorLogIconWithDetails>img {
@@ -271,16 +282,22 @@ span.visitorLogIcons:after {
margin: auto 0;
}
-.visitorLogIcons .visitorDetails {
- float: left;
+.visitorLogIcons {
+ .visitorDetails, .visitorType {
display: block;
- height: 100px;
+ margin-top: 4px;
+ }
}
-.visitorLogIcons .visitorType {
- float: right;
- display: block;
- margin-bottom: 1em;
+.own-visitor-column {
+ .visitorLogIcons {
+ .visitorDetails {
+ margin-top: 0px;
+ }
+ .visitorType {
+ margin-top: 8px;
+ }
+ }
}
.visitorReferrer {
diff --git a/plugins/Live/templates/_actionsList.twig b/plugins/Live/templates/_actionsList.twig
index 132321bb1a..ca9610f088 100644
--- a/plugins/Live/templates/_actionsList.twig
+++ b/plugins/Live/templates/_actionsList.twig
@@ -102,7 +102,7 @@
{# For events, do not show (url) if the Event URL is the same as the URL last displayed #}
{% else %}
<a href="{{ action.url }}" rel="noreferrer" target="_blank" class="{% if action.eventCategory|default(false) is empty %}action-list-url{# don't put URL on new line for events #}{% endif %} truncated-text-line"
- {% if overrideLinkStyle is not defined or overrideLinkStyle %}style="{% if action.type=='action' and action.pageTitle|default(false) is not empty %}margin-left: 9px;{% endif %}text-decoration:underline;"{% endif %}>
+ {% if overrideLinkStyle is not defined or overrideLinkStyle %}style="text-decoration:underline;"{% endif %}>
{% if action.eventCategory|default(false) is not empty %}
(url)
{% else %}
@@ -113,7 +113,7 @@
{% if action.type == 'action' and action.pageTitle|default(false) is not empty %}</p>{% endif %}
{% elseif action.type != 'search' and action.type != 'event' %}
<p>
- <span style="margin-left: 9px;">{{ clientSideParameters.pageUrlNotDefined }}</span>
+ <span>{{ clientSideParameters.pageUrlNotDefined }}</span>
</p>
{% endif %}
{% else %}
diff --git a/plugins/Live/templates/_dataTableViz_visitorLog.twig b/plugins/Live/templates/_dataTableViz_visitorLog.twig
index 580b426811..1fb30b4813 100644
--- a/plugins/Live/templates/_dataTableViz_visitorLog.twig
+++ b/plugins/Live/templates/_dataTableViz_visitorLog.twig
@@ -1,22 +1,5 @@
{% set displayVisitorsInOwnColumn = (isWidget ? false : true) %}
-<table class="dataTable" cellspacing="0" width="100%" style="width:100%;table-layout:fixed;">
-<thead>
-<tr>
- <th style="display:none;"></th>
- <th id="label" class="sortable label" style="cursor: auto; width: 20%; ">
- <div id="thDIV">{{ 'General_Date'|translate }}</div>
- </th>
- {% if displayVisitorsInOwnColumn %}
- <th id="label" class="sortable label" style="cursor: auto;width: 15%;">
- <div id="thDIV">{{ 'General_Visitors'|translate }}</div>
- </th>
- {% endif %}
- <th id="label" class="sortable label" style="cursor: auto;width: 60%">
- <div id="thDIV">{{ 'General_ColumnNbActions'|translate }}</div>
- </th>
-</tr>
-</thead>
-<tbody>
+
{% set cycleIndex=0 %}
{% for visitor in dataTable.getRows() %}
{% set visitHasEcommerceActivity = visitor.getColumn('visitEcommerceStatusIcon') %}
@@ -25,25 +8,6 @@
<span class="visitorLogIcons">
- <span class="visitorType">
- {# Goals, and/or Ecommerce activity #}
- {% if visitor.getColumn('visitConverted') %}
- <span title="{{ 'General_VisitConvertedNGoals'|translate(visitor.getColumn('goalConversions')) }}" class='visitorRank'
- {% if not displayVisitorsInOwnColumn or breakBeforeVisitorRank %}style="margin-left:0;"{% endif %}>
- <img src="{{ visitor.getColumn('visitConvertedIcon') }}"/>
- <span class='hash'>#</span>
- {{ visitor.getColumn('goalConversions') }}
- {% if visitHasEcommerceActivity %}
- &nbsp;-
- <img src="{{ visitor.getColumn('visitEcommerceStatusIcon') }}" title="{{ visitor.getColumn('visitEcommerceStatus') }}"/>
- {% endif %}
- </span>
- {# Ecommerce activity only (no goal) #}
- {% elseif visitHasEcommerceActivity %}
- <span><img src="{{ visitor.getColumn('visitEcommerceStatusIcon') }}" title="{{ visitor.getColumn('visitEcommerceStatus') }}"/></span>
- {% endif %}
- </span>
-
<span class="visitorDetails">
{% if visitor.getColumn('browserIcon') %}
<span class="visitorLogIconWithDetails">
@@ -79,6 +43,25 @@
</span>
{% endif %}
</span>
+
+ <span class="visitorType">
+ {# Goals, and/or Ecommerce activity #}
+ {% if visitor.getColumn('visitConverted') %}
+ <span title="{{ 'General_VisitConvertedNGoals'|translate(visitor.getColumn('goalConversions')) }}" class='visitorRank'
+ {% if not displayVisitorsInOwnColumn or breakBeforeVisitorRank %}style="margin-left:0;"{% endif %}>
+ <img src="{{ visitor.getColumn('visitConvertedIcon') }}"/>
+ <span class='hash'>#</span>
+ {{ visitor.getColumn('goalConversions') }}
+ {% if visitHasEcommerceActivity %}
+ &nbsp;
+ <img src="{{ visitor.getColumn('visitEcommerceStatusIcon') }}" title="{{ visitor.getColumn('visitEcommerceStatus') }}"/>
+ {% endif %}
+ </span>
+ {# Ecommerce activity only (no goal) #}
+ {% elseif visitHasEcommerceActivity %}
+ <span><img src="{{ visitor.getColumn('visitEcommerceStatusIcon') }}" title="{{ visitor.getColumn('visitEcommerceStatus') }}"/></span>
+ {% endif %}
+ </span>
</span>
{% endset %}
@@ -122,10 +105,17 @@
{% endset %}
{% set visitorRow %}
- <tr class="label{{ cycle(['odd','even'], cycleIndex) }}">
+ <div class="card row">
+
+ {% if visitor.getColumn('visitorId') is not empty and not clientSideParameters.hideProfileLink %}
+ <a class="visitor-log-visitor-profile-link" title="{{ 'Live_ViewVisitorProfile'|translate }}" data-visitor-id="{{ visitor.getColumn("visitorId") }}">
+ <img src="plugins/Live/images/visitorProfileLaunch.png"/> <span>{{ 'Live_ViewVisitorProfile'|translate }}
+ {%- if visitor.getColumn('userId') is not empty %}: {{ visitor.getColumn('userId')|raw }}{% endif %}</span>
+ </a>
+ {% endif %}
+
{% set cycleIndex=cycleIndex+1 %}
- <td style="display:none;"></td>
- <td class="label">
+ <div class="col-md-{% if displayVisitorsInOwnColumn %}3{% else %}4{% endif %}">
<strong title="{% if visitor.getColumn('visitorType')=='new' %}{{ 'General_NewVisitor'|translate }}{% else %}{{ 'Live_VisitorsLastVisit'|translate(visitor.getColumn('daysSinceLastVisit')) }}{% endif %}">
{{ visitor.getColumn('serverDatePrettyFirstAction') }}
{% if isWidget %}<br/>{% else %}-{% endif %} {{ visitor.getColumn('serverTimePrettyFirstAction') }}</strong>
@@ -148,8 +138,7 @@ GPS (lat/long): {{ visitor.getColumn('latitude') }},{{ visitor.getColumn('longit
<br/>
{{ 'Provider_ColumnProvider'|translate }}:
<a href="{{ visitor.getColumn('providerUrl') }}" rel="noreferrer" target="_blank" title="{{ visitor.getColumn('providerName') }} {{ visitor.getColumn('providerUrl') }}" style="text-decoration:underline;">
- {{ visitor.getColumn('providerName') }}
- </a>
+ {{ visitor.getColumn('providerName') }}</a>
{% endif %}
{% if visitor.getColumn('visitorTypeIcon') or visitor.getColumn('countryFlag') %}
<br/>
@@ -185,22 +174,16 @@ GPS (lat/long): {{ visitor.getColumn('latitude') }},{{ visitor.getColumn('longit
{{ visitorColumnContent }}
{% endif %}
{{ referrerContent }}
- </td>
+ </div>
{% if displayVisitorsInOwnColumn %}
- <td class="label">
+ <div class="col-md-2 own-visitor-column">
{{ visitorColumnContent }}
- </td>
+ </div>
{% endif %}
- <td class="column {% if visitor.getColumn('visitConverted') and not isWidget %}highlightField{% endif %}">
+ <div class="col-md-{% if displayVisitorsInOwnColumn %}7{% else %}8{% endif %} column {% if visitor.getColumn('visitConverted') and not isWidget %}highlightField{% endif %}">
<div class="visitor-log-page-list">
- {% if visitor.getColumn('visitorId') is not empty and not clientSideParameters.hideProfileLink %}
- <a class="visitor-log-visitor-profile-link" title="{{ 'Live_ViewVisitorProfile'|translate }}" data-visitor-id="{{ visitor.getColumn("visitorId") }}">
- <img src="plugins/Live/images/visitorProfileLaunch.png"/> <span>{{ 'Live_ViewVisitorProfile'|translate }}
- {%- if visitor.getColumn('userId') is not empty %}: {{ visitor.getColumn('userId')|raw }}{% endif %}</span>
- </a>
- {% endif %}
<strong>
{{ visitor.getColumn('actionDetails')|length }}
{% if visitor.getColumn('actionDetails')|length <= 1 %}
@@ -215,12 +198,9 @@ GPS (lat/long): {{ visitor.getColumn('latitude') }},{{ visitor.getColumn('longit
{% include "@Live/_actionsList.twig" with {'actionDetails': visitor.getColumn('actionDetails')} %}
</ol>
</div>
- </td>
- </tr>
+ </div>
+ </div>
{% endset %}
{{ visitorRow }}
-{% endfor %}
-
-</tbody>
-</table> \ No newline at end of file
+{% endfor %} \ No newline at end of file
diff --git a/plugins/Live/templates/_totalVisitors.twig b/plugins/Live/templates/_totalVisitors.twig
index 150662918e..4078cd973c 100644
--- a/plugins/Live/templates/_totalVisitors.twig
+++ b/plugins/Live/templates/_totalVisitors.twig
@@ -2,7 +2,7 @@
<table class="dataTable" cellspacing="0">
<thead>
<tr>
- <th id="label" class="sortable label" style="cursor: auto;">
+ <th id="label" class="sortable label first" style="cursor: auto;">
<div id="thDIV">{{ 'General_Date'|translate }}</div>
</th>
<th id="label" class="sortable label" style="cursor: auto;">
@@ -15,14 +15,14 @@
</thead>
<tbody>
<tr class="">
- <td class="column columnodd">{{ 'Live_LastHours'|translate(24) }}</td>
- <td class="column columnodd">{{ visitorsCountToday }}</td>
- <td class="column columnodd">{{ pisToday }}</td>
+ <td class="label column">{{ 'Live_LastHours'|translate(24) }}</td>
+ <td class="column">{{ visitorsCountToday }}</td>
+ <td class="column">{{ pisToday }}</td>
</tr>
<tr class="">
- <td class="column columnodd">{{ 'Live_LastMinutes'|translate(30) }}</td>
- <td class="column columnodd">{{ visitorsCountHalfHour }}</td>
- <td class="column columnodd">{{ pisHalfhour }}</td>
+ <td class="label column">{{ 'Live_LastMinutes'|translate(30) }}</td>
+ <td class="column">{{ visitorsCountHalfHour }}</td>
+ <td class="column">{{ pisHalfhour }}</td>
</tr>
</tbody>
</table>
diff --git a/plugins/Live/templates/getLastVisitsStart.twig b/plugins/Live/templates/getLastVisitsStart.twig
index 99fc0f903e..e2a99e4dd9 100644
--- a/plugins/Live/templates/getLastVisitsStart.twig
+++ b/plugins/Live/templates/getLastVisitsStart.twig
@@ -7,7 +7,17 @@
<div style="display:none;" class="idvisit">{{ visitor.idVisit }}</div>
<div title="{{ visitor.actionDetails|length }} {{ 'General_Actions'|translate }}" class="datetime">
<span style="display:none;" class="serverTimestamp">{{ visitor.serverTimestamp|raw }}</span>
- {{ visitor.serverDatePretty }} - {{ visitor.serverTimePretty }} {% if visitor.visitDuration > 0 %}<em>({{ visitor.visitDurationPretty|raw }})</em>{% endif %}
+ {% set year = visitor.serverTimestamp|date('Y') %}
+ {{ visitor.serverDatePretty|replace({(year): ' '}) }} - {{ visitor.serverTimePretty }} {% if visitor.visitDuration > 0 %}<em>({{ visitor.visitDurationPretty|raw }})</em>{% endif %}
+ {% if visitor.visitorId|default(false) is not empty %}
+ &nbsp; <a class="visits-live-launch-visitor-profile rightLink" title="{{ 'Live_ViewVisitorProfile'|translate }} {% if visitor.userId is not empty %}{{ visitor.userId|raw }}{% endif %}" data-visitor-id="{{ visitor.visitorId }}">
+ {% if visitor.userId is not empty %}<br/>{% endif %}
+ <img src="plugins/Live/images/visitorProfileLaunch.png"/>
+ {{ visitor.userId|default('')|raw }}
+ </a>
+ {% endif %}
+ <br />
+
{% if visitor.countryFlag is defined %}&nbsp;<img src="{{ visitor.countryFlag }}" title="{{ visitor.location }}, {{ 'Provider_ColumnProvider'|translate }} {% if visitor.providerName is defined %}{{ visitor.providerName }}{% endif %}"/>{% endif %}
{% if visitor.browserIcon is defined %}&nbsp;<img src="{{ visitor.browserIcon }}" title="{{ visitor.browser }}{% if visitor.plugins is defined %}, {{ 'General_Plugins'|translate }}: {{ visitor.plugins }}{% endif %}"/>{% endif %}
{% if visitor.operatingSystemIcon is defined %}&nbsp;<img src="{{ visitor.operatingSystemIcon }}" title="{{ visitor.operatingSystem }}{% if visitor.resolution is defined %}, {{ visitor.resolution }}{% endif %}"/>{% endif %}
@@ -18,27 +28,20 @@
<span class='hash'>#</span>
{{ visitor.goalConversions }}
{% if visitor.visitEcommerceStatusIcon %}
- &nbsp;-
+
<img src="{{ visitor.visitEcommerceStatusIcon }}" title="{{ visitor.visitEcommerceStatus }}"/>
{% endif %}
</span>
{% endif %}
{% if visitor.visitorTypeIcon %}
- &nbsp;- <img src="{{ visitor.visitorTypeIcon }}" title="{{ 'General_ReturningVisitor'|translate }}"/>
+ <img src="{{ visitor.visitorTypeIcon }}" title="{{ 'General_ReturningVisitor'|translate }}"/>
{% endif %}
- {% if visitor.visitorId|default(false) is not empty %}
- <a class="visits-live-launch-visitor-profile rightLink" title="{{ 'Live_ViewVisitorProfile'|translate }} {% if visitor.userId is not empty %}{{ visitor.userId|raw }}{% endif %}" data-visitor-id="{{ visitor.visitorId }}">
- {% if visitor.userId is not empty %}<br/>{% endif %}
- <img src="plugins/Live/images/visitorProfileLaunch.png"/>
- {{ visitor.userId|default('')|raw }}
- </a>
- {% endif %}
- {% if visitor.visitIp %}- <span title="{% if visitor.visitorId is not empty %}{{ 'General_VisitorID'|translate }}: {{ visitor.visitorId }}{% endif %}">
+
+ {% if visitor.visitIp %} <span title="{% if visitor.visitorId is not empty %}{{ 'General_VisitorID'|translate }}: {{ visitor.visitorId }}{% endif %}">
IP: {{ visitor.visitIp }}</span>
{% endif %}
- </div>
<!--<div class="settings"></div>-->
- <div class="referrer">
+ <span class="referrer">
{% if visitor.referrerType is defined and visitor.referrerType != 'direct' %}
{{ 'General_FromReferrer'|translate }}
{% if visitor.referrerUrl is not empty %}
@@ -63,9 +66,9 @@
{% elseif visitor.referrerType is defined %}
{{ 'Referrers_DirectEntry'|translate }}
{% endif %}
- </div>
+ </span></div>
<div id="{{ visitor.idVisit }}_actions" class="settings">
- <span class="pagesTitle" title="{{ visitor.actionDetails|length }} {{ 'General_Actions'|translate }}">{{ 'General_Pages'|translate }}:</span>&nbsp;
+ <span class="pagesTitle" title="{{ visitor.actionDetails|length }} {{ 'General_Actions'|translate }}">{{ 'General_Actions'|translate }}:</span>&nbsp;
{% set col = 0 %}
{% for action in visitor.actionDetails %}
{% if loop.index <= maxPagesDisplayedByVisitor %}
diff --git a/plugins/MobileMessaging/templates/index.twig b/plugins/MobileMessaging/templates/index.twig
index bb968b9463..b0b74c7f35 100644
--- a/plugins/MobileMessaging/templates/index.twig
+++ b/plugins/MobileMessaging/templates/index.twig
@@ -14,20 +14,18 @@
<input type='radio' value='false' id="delegatedManagement" name='delegatedManagement'
{% if not delegatedManagement %} checked='checked'{% endif %}/>
{{ 'General_No'|translate }}
+
+ <span class='form-description'>{{ 'General_Default'|translate }}.
+ {{ 'MobileMessaging_Settings_LetUsersManageAPICredential_No_Help'|translate }}</span>
</label>
- <span class='form-description'>
- ({{ 'General_Default'|translate }})
- {{ 'MobileMessaging_Settings_LetUsersManageAPICredential_No_Help'|translate }}
- </span>
<label class="radio">
<input type='radio' value='true' id="delegatedManagement" name='delegatedManagement'
{% if delegatedManagement %} checked='checked'{% endif %}/>
{{ 'General_Yes'|translate }}
+
+ <span class='form-description'>{{ 'MobileMessaging_Settings_LetUsersManageAPICredential_Yes_Help'|translate }}</span>
</label>
- <span class='form-description'>
- {{ 'MobileMessaging_Settings_LetUsersManageAPICredential_Yes_Help'|translate }}
- </span>
</div>
{% endif %}
diff --git a/plugins/Morpheus/images/minus.png b/plugins/Morpheus/images/minus.png
index 48a507df9b..edb9c1f548 100644
--- a/plugins/Morpheus/images/minus.png
+++ b/plugins/Morpheus/images/minus.png
Binary files differ
diff --git a/plugins/Morpheus/images/plus.png b/plugins/Morpheus/images/plus.png
index 7216c7d7a9..318c415399 100644
--- a/plugins/Morpheus/images/plus.png
+++ b/plugins/Morpheus/images/plus.png
Binary files differ
diff --git a/plugins/Morpheus/javascripts/morpheus.js b/plugins/Morpheus/javascripts/morpheus.js
index e3fd78eadc..2696d52d58 100644
--- a/plugins/Morpheus/javascripts/morpheus.js
+++ b/plugins/Morpheus/javascripts/morpheus.js
@@ -20,6 +20,7 @@ $(document).ready(function () {
$(document).bind('ScheduledReport.edit', initICheck);
$(document).bind('Goals.edit', initICheck);
$(broadcast).bind('locationChangeSuccess', initICheck);
+ $(broadcast).bind('updateICheck', initICheck);
$('body').on('ifClicked', 'input', function () {
$(this).trigger('click');
diff --git a/plugins/Morpheus/stylesheets/base.less b/plugins/Morpheus/stylesheets/base.less
index ffece47cd3..dba6565672 100644
--- a/plugins/Morpheus/stylesheets/base.less
+++ b/plugins/Morpheus/stylesheets/base.less
@@ -41,4 +41,5 @@
@import "ui/_list-group";
@import "ui/_progress-bars";
@import "ui/_navs";
+@import "ui/_cards";
@import "ui/_panels";
diff --git a/plugins/Morpheus/stylesheets/base/colors.less b/plugins/Morpheus/stylesheets/base/colors.less
index e5afd49c6b..21ac03438d 100644
--- a/plugins/Morpheus/stylesheets/base/colors.less
+++ b/plugins/Morpheus/stylesheets/base/colors.less
@@ -16,6 +16,7 @@
@color-silver-l85: lighten(@color-black, 85%);
@color-silver-l90: lighten(@color-black, 90%);
@color-silver-l95: lighten(@color-black, 95%);
+@color-silver-l98: lighten(@color-black, 98%);
@color-silver-dark: #333;
// Brand colors
diff --git a/plugins/Morpheus/stylesheets/general/_form.less b/plugins/Morpheus/stylesheets/general/_form.less
index f4b2acbdae..231d82a95c 100644
--- a/plugins/Morpheus/stylesheets/general/_form.less
+++ b/plugins/Morpheus/stylesheets/general/_form.less
@@ -54,14 +54,20 @@
margin-top: 5px;
}
-.entityTable {
- border-radius: 4px !important;
- border-top: 1px solid #cdc8bf !important;
- border-bottom: 1px solid #948c7d !important;
-}
-
-.entityTable tr th {
- font-size: 16px;
+table.entityTable {
+ thead {
+ tr {
+ th {
+ background-color: @color-silver-l98 !important;
+ text-align: left !important;
+ font-size: 16px;
+ }
+
+ td {
+ padding: 10px;
+ }
+ }
+ }
}
.entityTable tr td.first, .entityTable tr th.first {
@@ -71,13 +77,11 @@
.entityTable tr th {
white-space: nowrap;
- padding-top: 10px !important;
- padding-bottom: 10px !important;
+ padding: 16px 10px !important;
}
.entityTable tr td, .entityTable tr th {
border-bottom: 0 !important;
- border-top: 1px solid #E7E7E7 !important;
}
table.entityTable tr td a {
diff --git a/plugins/Morpheus/stylesheets/general/_forms.less b/plugins/Morpheus/stylesheets/general/_forms.less
index ffe3bb9fce..8f47f5cf6c 100644
--- a/plugins/Morpheus/stylesheets/general/_forms.less
+++ b/plugins/Morpheus/stylesheets/general/_forms.less
@@ -52,10 +52,10 @@ select {
label {
display: block;
+ margin: 8px 0 6px;
+ font-size: 14px;
+ line-height: 20px;
width: 40%;
- font-size: 11px;
- text-transform: uppercase;
- margin: 8px 0;
}
input, select, textarea {
display: block;
@@ -64,12 +64,16 @@ select {
.input-group {
width: 40%;
}
+
+ .radio {
+ font-size: 12px;
+ }
+
.radio, .checkbox {
width: 40%;
text-transform: none;
- font-size: 12px;
line-height: 20px;
- margin: 6px 0 2px;
+ margin: 7px 0 2px;
input[type="checkbox"], input[type="radio"] {
display: inline;
width: auto;
@@ -86,6 +90,7 @@ select {
display: inline;
}
}
+
.form-help {
.alert;
.alert-info;
@@ -95,10 +100,23 @@ select {
// Smaller padding to match input's heights
padding-top: 11px;
padding-bottom: 10px;
+ border: 0px;
}
+
+ label .form-description {
+ display: inline;
+ &:before {
+ content: '(';
+ }
+ &:after {
+ content: ')';
+ }
+ }
+
.form-description {
- width: 40%;
- display: block;
+ width: 40%;
+ display: block;
+
}
.sites_autocomplete {
diff --git a/plugins/Morpheus/stylesheets/main.less b/plugins/Morpheus/stylesheets/main.less
index 479198bc5b..147ca41fe0 100644
--- a/plugins/Morpheus/stylesheets/main.less
+++ b/plugins/Morpheus/stylesheets/main.less
@@ -55,7 +55,7 @@ a:hover {
.entityTable {
.border-radius(0px)!important;
- border:1px solid @color-silver-l80!important;
+ border: 1px solid @color-silver-l90 !important;
tr {
&.first {
th {
@@ -356,51 +356,80 @@ table.dataTable {
thead {
tr {
th {
- background: @theme-color-background-base;
+ background: @color-silver-l98;
text-transform: uppercase;
color: @theme-color-text;
- .font-default(10px, 12px);
+ .font-default(11px, 12px);
padding-top: 12px;
padding-bottom: 12px;
- border-bottom: 1px solid @color-silver-l85;
- &.columnSorted {
- background: @theme-color-background-base !important;
- .sortIcon {
- margin-top: -1px;
- }
+ vertical-align: middle;
- .sortIconContainerAsc .sortIcon {
- margin-top: -6px;
- }
+ &:not(.first) {
+ text-align: right;
+ padding-left: 28px;
+ padding-right: 12px;
+ }
- .sortIconContainer.sortSubtable {
- color: @theme-color-text-light;
- }
+ &.first + th {
+ // first column after label should have a bit less padding
+ padding-left: 13px;
+ }
+
+ #thDIV {
+ display: inline;
+ }
- .sortIconContainerAsc .sortIcon:after {
- content: " \25B2";
- border-bottom: 5px solid @theme-color-brand;
- border-top: 0px;
+ &.columnSorted {
+ .sortIcon {
+ display: inline-block;
+ position: absolute;
+ margin: 0px;
+ height: 12px;
+ margin-top: -1px;
+ margin-left: -14px;
+
+ &.asc {
+ margin-top: -7px;
}
- .sortIcon:after {
- content: " \25BC";
- font-size: 1px;
- color: @theme-color-brand;
- border-left: 4px solid rgba(0, 0, 0, 0);
- border-right: 4px solid rgba(0, 0, 0, 0);
- border-top: 5px solid @theme-color-brand;
+ }
+
+ &.first {
+ .sortIcon {
+ margin-top: -1px;
+ margin-left: 4px;
+ &.asc {
+ margin-top: -6px;
+ }
}
+ }
+
+ .sortIcon.asc:after {
+ content: " \25B2";
+ border-bottom: 5px solid @theme-color-brand;
+ border-top: 0px;
+ }
+
+ .sortIcon:after {
+ content: " \25BC";
+ font-size: 1px;
+ color: @theme-color-brand;
+ border-left: 4px solid rgba(0, 0, 0, 0);
+ border-right: 4px solid rgba(0, 0, 0, 0);
+ border-top: 5px solid @theme-color-brand;
+ }
}
}
}
}
tr {
+
td {
- border-color: @color-silver-l85 !important;
+ border-bottom: 1px solid @color-silver-l95 !important;
+ border-color: @color-silver-l95 !important;
color: @theme-color-text;
- background: @color-silver-l95;
+ background: @theme-color-background-base;
&:not(.value) {
.font-default(13px, 16px);
@@ -418,9 +447,19 @@ table.dataTable {
border-left: 0px;
}
- &.labelodd,
- &.columnodd {
- background-color: @color-silver-l95 !important;
+ &.label + td.column {
+ // first column after label should have a bit less padding
+ padding-left: 10px;
+ }
+
+ &.label .label {
+ text-align: left;
+ }
+
+ &.column:not(.label) {
+ padding-left: 28px;
+ padding-right: 12px;
+ text-align: right;
}
a {
@@ -443,15 +482,19 @@ table.dataTable {
display: inline-block;
}
}
- & td.columneven,
- & td.labeleven,
- &:hover > td.labeleven,
- &:hover > td.columneven,
- &.subDataTable:hover > td.labeleven,
- &.subDataTable:hover > td.columneven,
- td.cellSubDataTable {
- background-color: @theme-color-background-base !important;
+
+ &:hover {
+ td:not(.cellSubDataTable) {
+ background-color: @color-silver-l95;
}
+
+ .cellSubDataTable td {
+ background: @theme-color-background-base;
+ }
+ .cellSubDataTable tr:hover td {
+ background-color: @color-silver-l95;
+ }
+ }
}
&.entityTable tr {
@@ -476,7 +519,7 @@ div.dataTableVizHtmlTable:not(.dataTableActions), div.dataTableVizAllColumns {
top: 0;
width: 12px;
height: 12px;
- margin-left:-.5em;
+ margin-left:-1px;
margin-top:4px;
margin-right:8px;
content: '';
@@ -491,12 +534,8 @@ div.dataTableVizHtmlTable:not(.dataTableActions), div.dataTableVizAllColumns {
}
}
-table.dataTable tr.subDataTable:hover > td, table.dataTable tr.subDataTable:hover > td .dataTableRowActions {
- background-color: #d9d9d9;
-}
-
table.dataTable .dataTableRowActions {
- margin-top: -8px;
+ margin-top: -7px;
}
.visitsLiveFooter {
@@ -848,16 +887,7 @@ table#users {
}
#multisites table.dataTable {
- thead tr th {
- background: @theme-color-background-base;
- }
- td {
- background: white;
- }
- tr:hover td {
- background: #f2f2f2;
- }
tfoot tr:hover td {
- background: white;
+ background: @theme-color-background-base;
}
}
diff --git a/plugins/Morpheus/stylesheets/ui/_cards.less b/plugins/Morpheus/stylesheets/ui/_cards.less
new file mode 100644
index 0000000000..3a87e02f13
--- /dev/null
+++ b/plugins/Morpheus/stylesheets/ui/_cards.less
@@ -0,0 +1,15 @@
+.card {
+ color: @theme-color-text-light;
+ padding: 15px;
+ margin: 9px 0;
+ border-radius: 2px;
+ background-color: #fff;
+ -webkit-box-shadow: 0 1px 6px 0 rgba(0, 0, 0, 0.3);
+ -moz-box-shadow: 0 1px 6px 0 rgba(0, 0, 0, 0.3);
+ box-shadow: 0 1px 6px 0 rgba(0, 0, 0, 0.3);
+ position: relative;
+
+ &:hover {
+ background-color: @color-silver-l95;
+ }
+} \ No newline at end of file
diff --git a/plugins/Morpheus/stylesheets/ui/_components.less b/plugins/Morpheus/stylesheets/ui/_components.less
index 981000491e..77af9de6af 100644
--- a/plugins/Morpheus/stylesheets/ui/_components.less
+++ b/plugins/Morpheus/stylesheets/ui/_components.less
@@ -328,18 +328,11 @@
table.dataTable tr td .dataTableRowActions {
a.rightmost, a {
- background-color: #f2f2f2 !important;
margin: 6px 0px 6px 0;
padding: 0px 4px 0px 0px;
}
}
-table.dataTable tr td.labeleven .dataTableRowActions {
- a.rightmost, a {
- background-color: @theme-color-background-base !important;
- }
-}
-
table.dataTable th .columnDocumentation {
color: @color-silver-l90;
}
diff --git a/plugins/Morpheus/stylesheets/ui/_navs.less b/plugins/Morpheus/stylesheets/ui/_navs.less
index e274dde0e1..c50f4cdcbd 100644
--- a/plugins/Morpheus/stylesheets/ui/_navs.less
+++ b/plugins/Morpheus/stylesheets/ui/_navs.less
@@ -29,12 +29,12 @@
.nav-pills {
> li {
float: left;
- border: 1px solid @color-silver-l80;
+ border: 1px solid @color-silver-l85;
border-left: 0;
&:first-child {
border-radius: 3px 0 0 3px;
- border: 1px solid @color-silver-l80;
+ border: 1px solid @color-silver-l85;
}
&:last-child {
border-radius: 0 3px 3px 0;
diff --git a/plugins/Morpheus/stylesheets/ui/_panels.less b/plugins/Morpheus/stylesheets/ui/_panels.less
index 722362cfc6..6c646bdd29 100644
--- a/plugins/Morpheus/stylesheets/ui/_panels.less
+++ b/plugins/Morpheus/stylesheets/ui/_panels.less
@@ -3,7 +3,7 @@
.panel {
margin-bottom: 20px;
background-color: @color-silver-l95;
- border: 1px solid @color-silver-l80;
+ border: 1px solid @color-silver-l85;
.border-radius(3px);
box-shadow: 0 1px 1px rgba(0,0,0,.05);
}
@@ -23,7 +23,6 @@
.panel-heading {
padding: 10px 15px;
background-color: @theme-color-background-base;
- border-bottom: 1px solid @color-silver-l80;
border-top-left-radius: 3px;
border-top-right-radius: 3px;
position: relative;
@@ -39,14 +38,14 @@
overflow: hidden;
&.panel-title-block {
- height: 20px;
+ height: 26px;
> a {
position: absolute;
left: 0;
right: 0;
top: 0;
bottom: 0;
- padding-top: 10px;
+ padding-top: 12px;
}
}
@@ -67,7 +66,6 @@
.panel-footer {
padding: 10px 15px;
background-color: @theme-color-background-base;
- border-top: 1px solid @color-silver-l80;
border-bottom-left-radius: 3px;
border-bottom-right-radius: 3px;
}
diff --git a/plugins/Morpheus/stylesheets/ui/_tables.less b/plugins/Morpheus/stylesheets/ui/_tables.less
index a96cc83b24..eb2721ecfb 100644
--- a/plugins/Morpheus/stylesheets/ui/_tables.less
+++ b/plugins/Morpheus/stylesheets/ui/_tables.less
@@ -4,11 +4,11 @@
.simple-table {
margin: 20px 0;
width: 100%;
- border-top: 1px solid @theme-color-border;
+ border-top: 1px solid @color-silver-l90;
th, td {
- border-bottom: 1px solid @theme-color-border;
- padding: 14px;
+ border-bottom: 1px solid @color-silver-l90;
+ padding: 12px;
}
th {
text-align: left;
diff --git a/plugins/Morpheus/templates/settingsMacros.twig b/plugins/Morpheus/templates/settingsMacros.twig
index da9cb43709..cbb410f4a5 100644
--- a/plugins/Morpheus/templates/settingsMacros.twig
+++ b/plugins/Morpheus/templates/settingsMacros.twig
@@ -10,8 +10,6 @@
{{ _self.field(setting, index) }}
- <span class='form-description'>{{ setting.description }}</span>
-
</div>
{% endmacro %}
@@ -89,6 +87,11 @@
name="{{ setting.getKey|e('html_attr') }}" />
{{ value }}
+
+ {% if setting.description %}
+ <span class='form-description'>{{ setting.description }}</span>
+ {% endif %}
+
</label>
{% endfor %}
@@ -107,6 +110,10 @@
name="{{ setting.getKey|e('html_attr') }}">
{{ setting.title }}
+
+ {% if setting.description %}
+ <span class='form-description'>{{ setting.description }}</span>
+ {% endif %}
</label>
{% else %}
@@ -121,4 +128,10 @@
value="{{ settingValue|e('html_attr') }}">
{% endif %}
+
+ {% if setting.uiControlType != 'checkbox' and setting.uiControlType != 'radio' %}
+ <span class='form-description'>{{ setting.description }}</span>
+ {% endif %}
+
+
{% endmacro %}
diff --git a/plugins/MultiSites/angularjs/dashboard/dashboard.directive.html b/plugins/MultiSites/angularjs/dashboard/dashboard.directive.html
index c870f8fe22..4d8655eb52 100644
--- a/plugins/MultiSites/angularjs/dashboard/dashboard.directive.html
+++ b/plugins/MultiSites/angularjs/dashboard/dashboard.directive.html
@@ -17,17 +17,17 @@
<span ng-class="{multisites_asc: !model.reverse && 'label' == model.sortColumn, multisites_desc: model.reverse && 'label' == model.sortColumn}" class="arrow"></span>
</th>
<th id="visits" class="multisites-column" ng-click="model.sortBy('nb_visits')" ng-class="{columnSorted: 'nb_visits' == model.sortColumn}">
- <span class="heading">{{ 'General_ColumnNbVisits'|translate }}</span>
<span ng-class="{multisites_asc: !model.reverse && 'nb_visits' == model.sortColumn, multisites_desc: model.reverse && 'nb_visits' == model.sortColumn}" class="arrow"></span>
+ <span class="heading">{{ 'General_ColumnNbVisits'|translate }}</span>
</th>
<th id="pageviews" class="multisites-column" ng-click="model.sortBy('nb_pageviews')" ng-class="{columnSorted: 'nb_pageviews' == model.sortColumn}">
- <span class="heading">{{ 'General_ColumnPageviews'|translate }}</span>
<span ng-class="{multisites_asc: !model.reverse && 'nb_pageviews' == model.sortColumn, multisites_desc: model.reverse && 'nb_pageviews' == model.sortColumn}" class="arrow"></span>
+ <span class="heading">{{ 'General_ColumnPageviews'|translate }}</span>
</th>
<th ng-if="displayRevenueColumn" id="revenue" class="multisites-column" ng-click="model.sortBy('revenue')" ng-class="{columnSorted: 'revenue' == model.sortColumn}">
- <span class="heading">{{ 'General_ColumnRevenue'|translate }}</span>
<span ng-class="{multisites_asc: !model.reverse && 'revenue' == model.sortColumn, multisites_desc: model.reverse && 'revenue' == model.sortColumn}" class="arrow"></span>
+ <span class="heading">{{ 'General_ColumnRevenue'|translate }}</span>
</th>
<th id="evolution" colspan="{{ showSparklines ? 2 : 1 }}" ng-class="{columnSorted: evolutionSelector == model.sortColumn}">
@@ -69,7 +69,6 @@
date-sparkline="dateSparkline"
show-sparklines="showSparklines"
metric="model.sortColumn"
- ng-class-odd="'columnodd'"
display-revenue-column="displayRevenueColumn"
ng-repeat="website in model.sites">
</tr>
diff --git a/plugins/MultiSites/angularjs/dashboard/dashboard.directive.less b/plugins/MultiSites/angularjs/dashboard/dashboard.directive.less
index b6442b66a7..d2656bd1eb 100644
--- a/plugins/MultiSites/angularjs/dashboard/dashboard.directive.less
+++ b/plugins/MultiSites/angularjs/dashboard/dashboard.directive.less
@@ -8,6 +8,10 @@
padding: 0 15px;
font-size: 14px;
+ h2 {
+ border-bottom: 0px;
+ }
+
.notification-error {
margin-top: 15px;
}
@@ -30,13 +34,26 @@
border: 0 !important;
}
+ .multisites-evolution,
+ .multisites-column {
+ text-align: right;
+ }
+
+ .multisites-evolution {
+ width:170px;
+ }
+
td, tr, .sparkline {
text-align: center;
vertical-align: middle;
- padding: 1px;
+ padding: 2px 6px 2px 12px;
margin: 0;
}
+ th {
+ padding: 12px 6px 12px 12px;
+ }
+
.indicator {
background: url(plugins/Morpheus/images/loading-blue.gif) no-repeat center;
height: 20px;
@@ -48,6 +65,7 @@
.paging {
padding: 5px;
font-size: 10px;
+ border-bottom: 0px !important;
.previous {
padding-right: 20px;
@@ -68,9 +86,13 @@
th {
cursor: pointer;
border-left: 0px;
- text-align: center;
+ text-align: right;
border-bottom: 0px;
+ &#evolution {
+ text-align: center;
+ }
+
&.columnSorted {
font-weight: normal !important;
}
@@ -96,14 +118,6 @@
margin-right: 0px;
}
- tr.columnodd:hover td, tr.columnodd td {
- background: #F2F2F2 !important;
- }
-
- tr:hover td {
- background: @theme-color-background-base !important;
- }
-
tr.group {
font-weight: bold;
height: 30px;
@@ -112,7 +126,6 @@
padding-left: 50px;
}
td.multisites-label {
- padding-left: 15px;
text-align: left;
width: 250px;
}
@@ -171,6 +184,10 @@
margin: -6px 0 0 5px;
}
+ .label .arrow {
+ margin-left: 2px;
+ }
+
.multisites_asc,
.multisites_desc {
float: none;
diff --git a/plugins/MultiSites/angularjs/site/site.directive.html b/plugins/MultiSites/angularjs/site/site.directive.html
index dbca619b87..b415df3d3c 100644
--- a/plugins/MultiSites/angularjs/site/site.directive.html
+++ b/plugins/MultiSites/angularjs/site/site.directive.html
@@ -20,11 +20,11 @@
{{ website.revenue }}
</td>
- <td ng-if="period != 'range'" style="width:170px;">
+ <td ng-if="period != 'range'" class="multisites-evolution">
<div class="visits" ng-if="!website.isGroup">
- <span ng-show="website[evolutionMetric] > 0"><img src="plugins/MultiSites/images/arrow_up.png" alt="" /> <span style="color: green;">{{ website[evolutionMetric] }}%&nbsp;</span></span>
+ <span ng-show="website[evolutionMetric] > 0"><img src="plugins/MultiSites/images/arrow_up.png" alt="" /> <span style="color: green;">{{ website[evolutionMetric] }}%</span></span>
<span ng-show="website[evolutionMetric] == 0"><img src="plugins/MultiSites/images/stop.png" alt="" /> <span>{{ website[evolutionMetric] }}%</span></span>
- <span ng-show="website[evolutionMetric] < 0"><img src="plugins/MultiSites/images/arrow_down.png" alt="" /> <span style="color: red;">{{ website[evolutionMetric] }}%&nbsp;</span></span>
+ <span ng-show="website[evolutionMetric] < 0"><img src="plugins/MultiSites/images/arrow_down.png" alt="" /> <span style="color: red;">{{ website[evolutionMetric] }}%</span></span>
</div>
</td>
diff --git a/plugins/PrivacyManager/PrivacyManager.php b/plugins/PrivacyManager/PrivacyManager.php
index b8ff45e480..b04799a934 100644
--- a/plugins/PrivacyManager/PrivacyManager.php
+++ b/plugins/PrivacyManager/PrivacyManager.php
@@ -164,13 +164,11 @@ class PrivacyManager extends Plugin
{
$form->addElement('checkbox', 'do_not_track', null,
array(
- 'content' => '&nbsp;&nbsp;' . Piwik::translate('PrivacyManager_DoNotTrack_Enable') . '<br>'
- . Piwik::translate('PrivacyManager_DoNotTrack_EnabledMoreInfo'),
+ 'content' => '<div class="form-help">' . Piwik::translate('PrivacyManager_DoNotTrack_EnabledMoreInfo') . '</div> &nbsp;&nbsp;' . Piwik::translate('PrivacyManager_DoNotTrack_Enable')
));
$form->addElement('checkbox', 'anonymise_ip', null,
array(
- 'content' => '&nbsp;&nbsp;' . Piwik::translate('PrivacyManager_AnonymizeIpInlineHelp') . '<br>'
- . Piwik::translate('PrivacyManager_AnonymizeIpExtendedHelp', array('213.34.51.91', '213.34.0.0')),
+ 'content' => '<div class="form-help">' . Piwik::translate('PrivacyManager_AnonymizeIpExtendedHelp', array('213.34.51.91', '213.34.0.0')) . '</div> &nbsp;&nbsp;' . Piwik::translate('PrivacyManager_AnonymizeIpInlineHelp')
));
// default values
diff --git a/plugins/PrivacyManager/javascripts/privacySettings.js b/plugins/PrivacyManager/javascripts/privacySettings.js
index b948dc0171..92d0437636 100644
--- a/plugins/PrivacyManager/javascripts/privacySettings.js
+++ b/plugins/PrivacyManager/javascripts/privacySettings.js
@@ -18,6 +18,8 @@ $(document).ready(function () {
function toggleOtherDeleteSections() {
var showSection = isEitherDeleteSectionEnabled();
toggleBlock('deleteDataEstimateSect', showSection);
+ toggleBlock('scheduleSettingsHeadline', showSection);
+ toggleBlock('databaseSizeHeadline', showSection);
toggleBlock('deleteSchedulingSettings', showSection);
}
diff --git a/plugins/PrivacyManager/lang/en.json b/plugins/PrivacyManager/lang/en.json
index 31c7072993..d8946a4056 100644
--- a/plugins/PrivacyManager/lang/en.json
+++ b/plugins/PrivacyManager/lang/en.json
@@ -13,7 +13,8 @@
"DeleteDataDescription": "You can configure Piwik to regularly delete old visitor logs and\/or processed reports to keep your database size small.",
"DeleteDataDescription2": "If desired, pre-processed reports will not be deleted, only visit, pageview and conversion log data will be deleted. Or, the pre-processed reports can be deleted and the log data can be kept.",
"DeleteDataInterval": "Delete old data every",
- "DeleteDataSettings": "Delete old visitor logs and reports",
+ "DeleteOldVisitorLogs": "Delete old visitor logs",
+ "DeleteOldArchivedReports": "Delete old archived reports",
"DeleteLogDescription2": "When you enable automatic log deletion, you must ensure that all previous daily reports have been processed, so that no data is lost.",
"DeleteLogInfo": "Logs from the following tables will be deleted: %s",
"DeleteLogsConfirm": "You are about to enable log data deletion. If old log data is removed, and reports haven't already been created, you will not be able to see historical past analytics data. Are you sure you want to do this?",
@@ -26,7 +27,8 @@
"DeleteReportsInfo2": "If you have not enabled \"%s\", old reports will be recreated automatically when requested.",
"DeleteReportsInfo3": "If you have enabled \"%s\", the data will be permanently lost.",
"DeleteReportsOlderThan": "Delete reports older than",
- "DeleteSchedulingSettings": "Scheduling settings",
+ "DeleteSchedulingSettings": "Schedule old data deletion",
+ "DeleteDataSettings": "Delete old visitor logs and reports",
"DoNotTrack_Description": "Do Not Track is a technology and policy proposal that enables users to opt out of tracking by websites they do visit, including analytics services, advertising networks, and social platforms.",
"DoNotTrack_Disable": "Disable Do Not Track support",
"DoNotTrack_Disabled": "Piwik is currently tracking all visitors, even when they specified \"I do not want to be tracked\" in their web browsers.",
@@ -40,7 +42,7 @@
"GeolocationAnonymizeIpNote": "Note: Geolocation will have approximately the same results with 1 byte anonymized. With 2 bytes or more, Geolocation will be inaccurate.",
"GetPurgeEstimate": "Get purge estimate",
"KeepBasicMetrics": "Keep basic metrics (visits, page views, bounce rate, goal conversions, ecommerce conversions, etc.)",
- "KeepDataFor": "Keep all data for:",
+ "KeepDataFor": "Keep all data for",
"KeepReportSegments": "For kept data above, also keep segmented reports",
"LastDelete": "Last deletion was on",
"LeastDaysInput": "Please specify a number of days greater than %s.",
@@ -51,7 +53,7 @@
"PurgeNow": "Purge DB Now",
"PurgeNowConfirm": "You are about to permanently delete data from your database. Are you sure you want to continue?",
"PurgingData": "Purging data...",
- "RecommendedForPrivacy": "(recommended for privacy)",
+ "RecommendedForPrivacy": "Recommended for privacy",
"ReportsDataSavedEstimate": "Database size",
"SaveSettingsBeforePurge": "You have changed the data deletion settings. Please save them before starting a purge.",
"SeeAlsoOurOfficialGuidePrivacy": "See also our official guide: %sWeb Analytics Privacy%s",
diff --git a/plugins/PrivacyManager/templates/privacySettings.twig b/plugins/PrivacyManager/templates/privacySettings.twig
index 40f3a1a325..b36e204e6a 100644
--- a/plugins/PrivacyManager/templates/privacySettings.twig
+++ b/plugins/PrivacyManager/templates/privacySettings.twig
@@ -12,7 +12,7 @@
<form method="post" action="{{ {'action':'saveSettings', 'form':'formMaskLength', 'token_auth':token_auth} | urlRewriteWithParameters }}" id="formMaskLength">
<div id="anonymizeIpSettings" class="form-group">
<label>
- {{ 'PrivacyManager_UseAnonymizeIp'|translate }}<br/>
+ {{ 'PrivacyManager_UseAnonymizeIp'|translate }}
</label>
<div class="form-help">
{{ 'PrivacyManager_AnonymizeIpInlineHelp'|translate }}
@@ -93,7 +93,7 @@
<input role="yes" type="button" value="{{ 'General_Yes'|translate }}"/>
<input role="no" type="button" value="{{ 'General_No'|translate }}"/>
</div>
- <h2 id="deleteLogsAnchor">{{ 'PrivacyManager_DeleteDataSettings'|translate }}</h2>
+ <h2 id="deleteLogsAnchor">{{ 'PrivacyManager_DeleteOldVisitorLogs'|translate }}</h2>
<p>{{ 'PrivacyManager_DeleteDataDescription'|translate }} {{ 'PrivacyManager_DeleteDataDescription2'|translate }}</p>
<form method="post" action="{{ {'action':'saveSettings','form':'formDeleteSettings','token_auth':token_auth} | urlRewriteWithParameters }}" id="formDeleteSettings">
<div id="deleteLogSettingEnabled" class="form-group">
@@ -139,6 +139,8 @@
</div>
</div>
+ <h2 id="deleteReportsAnchor" class="secondary">{{ 'PrivacyManager_DeleteOldArchivedReports'|translate }}</h2>
+
<div id="deleteReportsSettingEnabled" class="form-group">
<label>
{{ 'PrivacyManager_UseDeleteReports'|translate }}
@@ -178,9 +180,6 @@
</div>
</div>
<div class="form-group">
- <label for="deleteReportsOlderThan">
- {{ 'PrivacyManager_DeleteReportsOlderThan'|translate }}
- </label>
<label class="checkbox">
<input id="deleteReportsKeepBasic" type="checkbox" name="deleteReportsKeepBasic" value="1"
{% if deleteData.config.delete_reports_keep_basic_metrics %}checked="checked"{% endif %}>
@@ -188,10 +187,10 @@
<span class="form-description">{{ 'General_Recommended'|translate }}</span>
</label>
</div>
+ <h3>
+ {{ 'PrivacyManager_KeepDataFor'|translate }}
+ </h3>
<div class="form-group">
- <label>
- {{ 'PrivacyManager_KeepDataFor'|translate }}
- </label>
<label class="checkbox">
<input id="deleteReportsKeepDay" type="checkbox" name="deleteReportsKeepDay" value="1"
{% if deleteData.config.delete_reports_keep_day_reports %}checked="checked"{% endif %}>
@@ -227,26 +226,11 @@
</div>
</div>
- <div {% if deleteData.config.delete_reports_enable == '0' and deleteData.config.delete_logs_enable == '0' %}style="display:none;"{% endif %}
- id="deleteDataEstimateSect" class="form-group">
- <label>
- {{ 'PrivacyManager_ReportsDataSavedEstimate'|translate }}
- </label>
- {% if deleteData.config.enable_auto_database_size_estimate == '0' %}
- <div class="form-help">
- <a id="getPurgeEstimateLink" href="#">{{ 'PrivacyManager_GetPurgeEstimate'|translate }}</a>
- </div>
- {% endif %}
- <div id="deleteDataEstimate"></div>
- <span class="loadingPiwik" style="display:none;">
- <img src="./plugins/Morpheus/images/loading-blue.gif"/> {{ 'General_LoadingData'|translate }}
- </span>
- </div>
+ <h2 for="deleteLowestInterval" id="scheduleSettingsHeadline">
+ {{ 'PrivacyManager_DeleteSchedulingSettings'|translate }}
+ </h2>
<div id="deleteSchedulingSettings" class="form-group">
- <label for="deleteLowestInterval">
- {{ 'PrivacyManager_DeleteSchedulingSettings'|translate }}
- </label>
<div class="form-help">
{% if deleteData.lastRun %}<strong>{{ 'PrivacyManager_LastDelete'|translate }}:</strong>
{{ deleteData.lastRunPretty }}
@@ -262,16 +246,32 @@
src="./plugins/Morpheus/images/loading-blue.gif"/> {{ 'PrivacyManager_PurgingData'|translate }}</span>
<span id="db-purged-message" style="display: none;"><em>{{ 'PrivacyManager_DBPurged'|translate }}</em></span>
</div>
- <p>{{ 'PrivacyManager_DeleteDataInterval'|translate }}
- <select id="deleteLowestInterval" name="deleteLowestInterval">
- <option {% if deleteData.config.delete_logs_schedule_lowest_interval == '1' %} selected="selected" {% endif %}
- value="1"> {{ 'CoreHome_PeriodDay'|translate }}</option>
- <option {% if deleteData.config.delete_logs_schedule_lowest_interval == '7' %} selected="selected" {% endif %}
- value="7">{{ 'CoreHome_PeriodWeek'|translate }}</option>
- <option {% if deleteData.config.delete_logs_schedule_lowest_interval == '30' %} selected="selected" {% endif %}
- value="30">{{ 'CoreHome_PeriodMonth'|translate }}</option>
- </select>
- </p>
+
+ <label>{{ 'PrivacyManager_DeleteDataInterval'|translate }}</label>
+ <select id="deleteLowestInterval" name="deleteLowestInterval">
+ <option {% if deleteData.config.delete_logs_schedule_lowest_interval == '1' %} selected="selected" {% endif %}
+ value="1"> {{ 'CoreHome_PeriodDay'|translate }}</option>
+ <option {% if deleteData.config.delete_logs_schedule_lowest_interval == '7' %} selected="selected" {% endif %}
+ value="7">{{ 'CoreHome_PeriodWeek'|translate }}</option>
+ <option {% if deleteData.config.delete_logs_schedule_lowest_interval == '30' %} selected="selected" {% endif %}
+ value="30">{{ 'CoreHome_PeriodMonth'|translate }}</option>
+ </select>
+ </div>
+
+ <h3 id="databaseSizeHeadline">
+ {{ 'PrivacyManager_ReportsDataSavedEstimate'|translate }}
+ </h3>
+ <div {% if deleteData.config.delete_reports_enable == '0' and deleteData.config.delete_logs_enable == '0' %}style="display:none;"{% endif %}
+ id="deleteDataEstimateSect" class="form-group">
+ {% if deleteData.config.enable_auto_database_size_estimate == '0' %}
+ <div class="form-help">
+ <a id="getPurgeEstimateLink" href="#">{{ 'PrivacyManager_GetPurgeEstimate'|translate }}</a>
+ </div>
+ {% endif %}
+ <div id="deleteDataEstimate"></div>
+ <span class="loadingPiwik" style="display:none;">
+ <img src="./plugins/Morpheus/images/loading-blue.gif"/> {{ 'General_LoadingData'|translate }}
+ </span>
</div>
<input type="button" value="{{ 'General_Save'|translate }}" id="deleteLogSettingsSubmit" class="submit"/>
@@ -305,10 +305,11 @@
{{ 'PrivacyManager_DoNotTrack_Enable'|translate }}
{% endif %}
</a>
+
{% if dntSupport %}
- {{ 'General_NotRecommended'|translate }}
+ ({{ 'General_NotRecommended'|translate }})
{% else %}
- {{ 'General_Recommended'|translate }}
+ ({{ 'General_Recommended'|translate }})
{% endif %}
</div>
{% endif %}
diff --git a/plugins/Provider/Provider.php b/plugins/Provider/Provider.php
index 6792d59a48..38707c5cb1 100644
--- a/plugins/Provider/Provider.php
+++ b/plugins/Provider/Provider.php
@@ -65,9 +65,8 @@ class Provider extends \Piwik\Plugin
public static function footerUserCountry(&$out)
{
- $out .= '<div><h2>' . Piwik::translate('Provider_WidgetProviders') . '</h2>';
+ $out .= '<h2 piwik-enriched-headline>' . Piwik::translate('Provider_WidgetProviders') . '</h2>';
$out .= FrontController::getInstance()->fetchDispatch('Provider', 'getProvider');
- $out .= '</div>';
}
/**
diff --git a/plugins/QueuedTracking b/plugins/QueuedTracking
-Subproject aedcbe9a6534fbd0941be4c4fab7f95539a8034
+Subproject 9bf35a146db0df45947b67ada98875717028177
diff --git a/plugins/ScheduledReports/ScheduledReports.php b/plugins/ScheduledReports/ScheduledReports.php
index a77d21ccf3..4290d201ca 100644
--- a/plugins/ScheduledReports/ScheduledReports.php
+++ b/plugins/ScheduledReports/ScheduledReports.php
@@ -76,6 +76,7 @@ class ScheduledReports extends \Piwik\Plugin
{
return array(
'AssetManager.getJavaScriptFiles' => 'getJsFiles',
+ 'AssetManager.getStylesheetFiles' => 'getStylesheetFiles',
'MobileMessaging.deletePhoneNumber' => 'deletePhoneNumber',
'ScheduledReports.getReportParameters' => 'getReportParameters',
'ScheduledReports.validateReportParameters' => 'validateReportParameters',
@@ -129,6 +130,11 @@ class ScheduledReports extends \Piwik\Plugin
$jsFiles[] = "plugins/ScheduledReports/javascripts/pdf.js";
}
+ public function getStylesheetFiles(&$stylesheets)
+ {
+ $stylesheets[] = 'plugins/ScheduledReports/stylesheets/scheduledreports.less';
+ }
+
public function validateReportParameters(&$parameters, $reportType)
{
if (! self::manageEvent($reportType)) {
diff --git a/plugins/ScheduledReports/stylesheets/scheduledreports.less b/plugins/ScheduledReports/stylesheets/scheduledreports.less
new file mode 100644
index 0000000000..4e46f952e1
--- /dev/null
+++ b/plugins/ScheduledReports/stylesheets/scheduledreports.less
@@ -0,0 +1,5 @@
+.emailReports {
+ .entityContainer {
+ padding-top: 16px;
+ }
+} \ No newline at end of file
diff --git a/plugins/SitesManager/angularjs/sites-manager/sites-manager.controller.js b/plugins/SitesManager/angularjs/sites-manager/sites-manager.controller.js
index 5c8f820bfc..d1013f1af4 100644
--- a/plugins/SitesManager/angularjs/sites-manager/sites-manager.controller.js
+++ b/plugins/SitesManager/angularjs/sites-manager/sites-manager.controller.js
@@ -105,6 +105,7 @@
$scope.totalNumberOfSites = siteIds.length;
}
});
+ $(piwik.broadcast).trigger('updateICheck', {});
});
};
diff --git a/plugins/SitesManager/stylesheets/SitesManager.less b/plugins/SitesManager/stylesheets/SitesManager.less
index 5f4314405a..41d1035bb1 100644
--- a/plugins/SitesManager/stylesheets/SitesManager.less
+++ b/plugins/SitesManager/stylesheets/SitesManager.less
@@ -19,14 +19,7 @@
.sitesManagerList {
.site {
- color: @theme-color-text-light;
- padding: 15px;
- margin: 7px 0;
- border-radius: 2px;
- background-color: #fff;
- -webkit-box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.3);
- -moz-box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.3);
- box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.3);
+ .card;
.title {
font-size: 11px;
text-transform: uppercase;
diff --git a/plugins/SitesManager/templates/global-settings.html b/plugins/SitesManager/templates/global-settings.html
index 4447d1fd20..04e049f9e2 100644
--- a/plugins/SitesManager/templates/global-settings.html
+++ b/plugins/SitesManager/templates/global-settings.html
@@ -1,6 +1,6 @@
<div ng-show="hasSuperUserAccess">
- <h2 id="globalSettings">{{ 'SitesManager_GlobalWebsitesSettings' | translate }}</h2>
+ <h2 id="globalSettings" class="secondary">{{ 'SitesManager_GlobalWebsitesSettings' | translate }}</h2>
<h3>{{ 'SitesManager_GlobalListExcludedIps'|translate }}</h3>
<p>{{ 'SitesManager_ListOfIpsToBeExcludedOnAllWebsites'|translate }}</p>
diff --git a/plugins/UserCountry/templates/index.twig b/plugins/UserCountry/templates/index.twig
index 70ac5f8ba7..fe1a6735dd 100644
--- a/plugins/UserCountry/templates/index.twig
+++ b/plugins/UserCountry/templates/index.twig
@@ -10,6 +10,7 @@
{{ sparkline(urlSparklineCountries) }}
{{ 'UserCountry_DistinctCountries'|translate("<strong>"~numberDistinctCountries~"</strong>")|raw }}
</div>
+ <div style="clear:left"></div>
{{ postEvent("Template.footerUserCountry") }}
</div>
diff --git a/plugins/UserLanguage/UserLanguage.php b/plugins/UserLanguage/UserLanguage.php
index 5e7d002989..a28bfa6eca 100644
--- a/plugins/UserLanguage/UserLanguage.php
+++ b/plugins/UserLanguage/UserLanguage.php
@@ -41,8 +41,7 @@ class UserLanguage extends \Piwik\Plugin
public static function footerUserCountry(&$out)
{
- $out .= '<div><h2>' . Piwik::translate('UserLanguage_BrowserLanguage') . '</h2>';
+ $out .= '<h2 piwik-enriched-headline>' . Piwik::translate('UserLanguage_BrowserLanguage') . '</h2>';
$out .= FrontController::getInstance()->fetchDispatch('UserLanguage', 'getLanguage');
- $out .= '</div>';
}
} \ No newline at end of file
diff --git a/plugins/UsersManager/stylesheets/usersManager.less b/plugins/UsersManager/stylesheets/usersManager.less
index c06212b7cd..949ea61d2d 100644
--- a/plugins/UsersManager/stylesheets/usersManager.less
+++ b/plugins/UsersManager/stylesheets/usersManager.less
@@ -9,6 +9,13 @@
cursor: pointer;
}
+#userSettingsTable {
+ .sites_autocomplete {
+ margin-left: 20px;
+ margin-top: 5px;
+ }
+}
+
#users .canceluser {
margin-top: 10px;
margin-bottom: 10px;
@@ -23,9 +30,14 @@
text-decoration: underline;
}
-#sites.usersManager .sites_selector_title {
- display:inline-block;
- margin-top:5px;
+#sites.usersManager {
+ .sites_selector_title {
+ display:inline-block;
+ margin-top:5px;
+ }
+ .sites_selector_container {
+ padding-top: 0px;
+ }
}
.old-ie #sites.usersManager .sites_selector_title {
diff --git a/plugins/UsersManager/templates/index.twig b/plugins/UsersManager/templates/index.twig
index 46ec6a27df..5342902335 100644
--- a/plugins/UsersManager/templates/index.twig
+++ b/plugins/UsersManager/templates/index.twig
@@ -31,7 +31,7 @@
{{ ajax.errorDiv }}
{{ ajax.loadingDiv }}
-<div class="entityContainer" style="width:600px;">
+<div class="entityContainer" style="width:600px;margin-top:16px;">
{% if anonymousHasViewAccess %}
<br/>
<div class="alert alert-warning">
diff --git a/plugins/Widgetize/stylesheets/widgetize.less b/plugins/Widgetize/stylesheets/widgetize.less
index b4d7769d39..26dc31498a 100644
--- a/plugins/Widgetize/stylesheets/widgetize.less
+++ b/plugins/Widgetize/stylesheets/widgetize.less
@@ -4,11 +4,12 @@
.top_controls {
padding-bottom: 16px;
+ margin-top: 16px;
}
-}
-.widgetize p {
- padding: 0 0 20px 0;
+ #widgetPreview {
+ margin-top: 16px;
+ }
}
.widgetize .formEmbedCode {
diff --git a/plugins/Widgetize/templates/index.twig b/plugins/Widgetize/templates/index.twig
index f5cbbcb10f..299e0282f9 100644
--- a/plugins/Widgetize/templates/index.twig
+++ b/plugins/Widgetize/templates/index.twig
@@ -33,7 +33,7 @@
<div class="widgetize">
<p>With Piwik, you can export your Web Analytics reports on your blog, website, or intranet dashboard... in one click.
- <h2>Authentication</h2>
+ <h2 class="secondary">Authentication</h2>
<p>
If you want your widgets to be viewable by everybody, you first have to set the 'view' permissions
to the anonymous user in the <a href='index.php?module=UsersManager' rel='noreferrer' target='_blank'>Users Management section</a>.