From 6bc22107fbd09ad6c85be41d6a30df5c4ec544ef Mon Sep 17 00:00:00 2001 From: Thomas Steur <thomas.steur@gmail.com> Date: Mon, 15 Jun 2015 04:40:09 +0000 Subject: [PATCH] refs #7090 #4789 Improve the look of data tables, entity tables, forms, ... --- lang/en.json | 9 +- plugins/API/templates/listAllAPI.twig | 2 +- .../Actions/javascripts/actionsDataTable.js | 18 +-- plugins/CoreAdminHome/lang/en.json | 4 +- .../stylesheets/generalSettings.less | 23 ++- .../templates/generalSettings.twig | 22 +-- .../templates/pluginSettings.twig | 4 +- plugins/CoreHome/javascripts/dataTable.js | 22 ++- .../stylesheets/dataTable/_dataTable.less | 45 +----- .../stylesheets/dataTable/_rowActions.less | 1 + .../stylesheets/dataTable/_subDataTable.less | 4 +- plugins/CoreHome/stylesheets/zen-mode.less | 27 ++-- .../CoreHome/templates/_dataTableCell.twig | 30 ++-- .../stylesheets/plugins_admin.less | 4 + .../CorePluginsAdmin/templates/plugins.twig | 2 +- plugins/DBStats/stylesheets/dbStatsTable.less | 9 ++ plugins/DBStats/templates/index.twig | 12 +- .../DevicesDetection/templates/detection.twig | 3 + plugins/Feedback/stylesheets/feedback.less | 8 +- plugins/Feedback/templates/index.twig | 5 +- plugins/Insights/templates/table_header.twig | 4 +- plugins/Installation/lang/en.json | 14 +- .../Installation/stylesheets/installation.css | 4 + plugins/Installation/templates/finished.twig | 8 +- plugins/LeftMenu/Settings.php | 3 +- plugins/Live/stylesheets/live.less | 107 +++++++------ plugins/Live/templates/_actionsList.twig | 4 +- .../templates/_dataTableViz_visitorLog.twig | 96 +++++------- plugins/Live/templates/_totalVisitors.twig | 14 +- .../Live/templates/getLastVisitsStart.twig | 33 +++-- plugins/MobileMessaging/templates/index.twig | 12 +- plugins/Morpheus/images/minus.png | Bin 176 -> 208 bytes plugins/Morpheus/images/plus.png | Bin 174 -> 214 bytes plugins/Morpheus/javascripts/morpheus.js | 1 + plugins/Morpheus/stylesheets/base.less | 1 + plugins/Morpheus/stylesheets/base/colors.less | 1 + .../Morpheus/stylesheets/general/_form.less | 26 ++-- .../Morpheus/stylesheets/general/_forms.less | 32 +++- plugins/Morpheus/stylesheets/main.less | 140 +++++++++++------- plugins/Morpheus/stylesheets/ui/_cards.less | 15 ++ .../Morpheus/stylesheets/ui/_components.less | 7 - plugins/Morpheus/stylesheets/ui/_navs.less | 4 +- plugins/Morpheus/stylesheets/ui/_panels.less | 8 +- plugins/Morpheus/stylesheets/ui/_tables.less | 6 +- .../Morpheus/templates/settingsMacros.twig | 17 ++- .../dashboard/dashboard.directive.html | 7 +- .../dashboard/dashboard.directive.less | 39 +++-- .../angularjs/site/site.directive.html | 6 +- plugins/PrivacyManager/PrivacyManager.php | 6 +- .../javascripts/privacySettings.js | 2 + plugins/PrivacyManager/lang/en.json | 10 +- .../templates/privacySettings.twig | 77 +++++----- plugins/Provider/Provider.php | 3 +- plugins/QueuedTracking | 2 +- plugins/ScheduledReports/ScheduledReports.php | 6 + .../stylesheets/scheduledreports.less | 5 + .../sites-manager/sites-manager.controller.js | 1 + .../stylesheets/SitesManager.less | 9 +- .../templates/global-settings.html | 2 +- plugins/UserCountry/templates/index.twig | 1 + plugins/UserLanguage/UserLanguage.php | 3 +- .../stylesheets/usersManager.less | 18 ++- plugins/UsersManager/templates/index.twig | 2 +- plugins/Widgetize/stylesheets/widgetize.less | 7 +- plugins/Widgetize/templates/index.twig | 2 +- tests/UI/specs/ActionsDataTable_spec.js | 4 +- 66 files changed, 571 insertions(+), 452 deletions(-) create mode 100644 plugins/Morpheus/stylesheets/ui/_cards.less create mode 100644 plugins/ScheduledReports/stylesheets/scheduledreports.less diff --git a/lang/en.json b/lang/en.json index 0742bb0444..12215f7d7a 100644 --- a/lang/en.json +++ b/lang/en.json @@ -7,7 +7,7 @@ "Add": "Add", "AfterEntry": "after entering here", "All": "All", - "AllowPiwikArchivingToTriggerBrowser": "Allow Piwik archiving to trigger when reports are viewed from the browser", + "AllowPiwikArchivingToTriggerBrowser": "Archive reports when viewed from the browser", "AllWebsitesDashboard": "All Websites dashboard", "And": "and", "API": "API", @@ -244,7 +244,7 @@ "NotDefined": "%s not defined", "Note": "Note", "NotInstalled": "Not Installed", - "NotRecommended": "(not recommended)", + "NotRecommended": "not recommended", "NotValid": "%s is not valid", "NSeconds": "%s seconds", "NumberOfVisits": "Number of visits", @@ -305,7 +305,7 @@ "Quantity": "Quantity", "RangeReports": "Custom date ranges", "ReadThisToLearnMore": "%1$sRead this to learn more.%2$s", - "Recommended": "(recommended)", + "Recommended": "Recommended", "RecordsToPlot": "Records to plot", "Refresh": "Refresh", "RefreshPage": "Refresh the page", @@ -316,7 +316,8 @@ "ReportGeneratedFrom": "This report was generated using data from %s.", "ReportRatioTooltip": "'%1$s' represents %2$s of %3$s %4$s with %5$s.", "Reports": "Reports", - "ReportsContainingTodayWillBeProcessedAtMostEvery": "Reports for today (or any other Date Range including today) will be processed at most every", + "ReportsContainingTodayWillBeProcessedAtMostEvery": "Archive reports at most every X seconds", + "RearchiveTimeIntervalOnlyForTodayReports": "This affects only reports for today (or any other Date Range including today)", "ReportsWillBeProcessedAtMostEveryHour": "Reports will therefore be processed at most every hour.", "RequestTimedOut": "A data request to %s timed out. Please try again.", "Required": "%s required", 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 }} </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') }}"> {{ 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 }} </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> </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> </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> • {{ 'Feedback_ViewUserGuides'|translate("<a target='_blank' href='?module=Proxy&action=redirect&url=http://piwik.org/docs/'>","</a>")|raw }}.</p> <p> • {{ 'Feedback_ViewAnswersToFAQ'|translate("<a target='_blank' href='?module=Proxy&action=redirect&url=http://piwik.org/faq/'>","</a>")|raw }}.</p> <p> • {{ '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> • {{ 'Feedback_PiwikProPremiumFeatures'|translate }}</p> <p> • {{ 'Feedback_PiwikProCustomDevelopment'|translate }}</p> <p> • {{ '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 %} - - - <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 %} + + <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 %} + <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 %} <img src="{{ visitor.countryFlag }}" title="{{ visitor.location }}, {{ 'Provider_ColumnProvider'|translate }} {% if visitor.providerName is defined %}{{ visitor.providerName }}{% endif %}"/>{% endif %} {% if visitor.browserIcon is defined %} <img src="{{ visitor.browserIcon }}" title="{{ visitor.browser }}{% if visitor.plugins is defined %}, {{ 'General_Plugins'|translate }}: {{ visitor.plugins }}{% endif %}"/>{% endif %} {% if visitor.operatingSystemIcon is defined %} <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 %} - - + <img src="{{ visitor.visitEcommerceStatusIcon }}" title="{{ visitor.visitEcommerceStatus }}"/> {% endif %} </span> {% endif %} {% if visitor.visitorTypeIcon %} - - <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> + <span class="pagesTitle" title="{{ visitor.actionDetails|length }} {{ 'General_Actions'|translate }}">{{ 'General_Actions'|translate }}:</span> {% 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 48a507df9b4f9a43a6cbec2e982be7e863e52de4..edb9c1f548c89f120d32babea6982654ee80a0eb 100644 GIT binary patch delta 191 zcmdnMc!6<(WIY=L14CG8%yR|?hUuOzjv*Qok51gkd)R=7<^NNk<ZUaB+r$lQ9E}*n zFR)!?xTIBfHdknwk-}-Npl6I`|1CZ-3Qa9KXFf^rfN1*KcmFuHIvY)@nRU~^SNOZ( z=Ef8y$w=m<BIcVNL+`(>3gvxlvF`%YT&?y$m$-wx)C=aNGdWm@-#9$aDSO4MldJ!l y-Em3DR1D=++QbmSzr6lWV)6Ii+gH_JVYlhDXj-^!(;Wr|1_n=8KbLh*2~7Y)K~FjW delta 159 zcmcb>xPftkWIZzj14H8KHCGuJ7$i$vBT9nv(@M${i&7aJQ}UBi6+Ckj(^G>|6H_V+ zPo~;1Ffi~3_=LFr|NsB%m-lyXU)s54-t(vTW`}F@GcYhPmIV0)GdMiEk;cHlpylb} z7*cU7DZzo&M}Q%5vq2LB_l)C5I2dnOoKZO7;UT#xQ{&qMCJ6>cHU_QZ3=QgUDij$Q P7#KWV{an^LB{Ts5jbAy= diff --git a/plugins/Morpheus/images/plus.png b/plugins/Morpheus/images/plus.png index 7216c7d7a99d6f69780a006ad68454a3a07077cc..318c4153998693a263f5b9a138a2d4283a424b5b 100644 GIT binary patch delta 197 zcmZ3-c#Uy_WIY=L14CG8%yR|?hPj?Djv*Qok4`)&cvyjlrPSi?i`nJ78rUSlCx|Ry zyW^<Aur+DFruwPl78VAR)8DD)JuES9ka{{NpFvD%SJ3*aXXMtEGUzbOTRKIvh2gzz zt3ZI)Ook=4Z<Iq#1udO|yu#823s+?==e4fjeI@fRmF4ymtK)VO7h^+0v(LXhe9C>Q z)%vgdA09hX+`6@`!y;{7XNK+9Umy8r&%En?`~MnqIc4Wx{r4`gFfcGMc)I$ztaD0e F0su^{Q?dX6 delta 157 zcmcb{xQ=mxWIZzj14H8KHCGuJ7$i$vBT9nv(@M${i&7aJQ}UBi6+Ckj(^G>|6H_V+ zPo~;1Ffi~0_=LFr|NnpImU(w?UpjYsueSN?M+^)Mj3q&S!3+-1Zlp0VFlc+aIEGZ* zN=k5G^$}o5G&XKxFrIOoCB=}z(2Os_R9P|g#Il7qnz<QR#3UG$RTwfo=9ES-FfcH9 My85}Sb4q9e06+&d6#xJL 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] }}% </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] }}% </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' => ' ' . Piwik::translate('PrivacyManager_DoNotTrack_Enable') . '<br>' - . Piwik::translate('PrivacyManager_DoNotTrack_EnabledMoreInfo'), + 'content' => '<div class="form-help">' . Piwik::translate('PrivacyManager_DoNotTrack_EnabledMoreInfo') . '</div> ' . Piwik::translate('PrivacyManager_DoNotTrack_Enable') )); $form->addElement('checkbox', 'anonymise_ip', null, array( - 'content' => ' ' . 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> ' . 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 index aedcbe9a65..9bf35a146d 160000 --- a/plugins/QueuedTracking +++ b/plugins/QueuedTracking @@ -1 +1 @@ -Subproject commit aedcbe9a6534fbd0941be4c4fab7f95539a80342 +Subproject commit 9bf35a146db0df45947b67ada98875717028177f 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>. diff --git a/tests/UI/specs/ActionsDataTable_spec.js b/tests/UI/specs/ActionsDataTable_spec.js index b4a4deecb1..2456e59397 100644 --- a/tests/UI/specs/ActionsDataTable_spec.js +++ b/tests/UI/specs/ActionsDataTable_spec.js @@ -59,7 +59,7 @@ describe("ActionsDataTable", function () { it("should display pageview percentages when hovering over pageviews column", function (done) { expect.screenshot('pageview_percentages').to.be.capture(function (page) { - page.mouseMove('tr:eq(2) td.column:first'); + page.mouseMove('tr:eq(2) td.column:eq(1)'); }, done); }); @@ -81,7 +81,7 @@ describe("ActionsDataTable", function () { expect.screenshot('unique_pageview_percentages').to.be.capture(function (page) { page.click('.ui-widget .ui-dialog-titlebar-close'); - page.mouseMove('tr:eq(2) td.column:eq(1)'); + page.mouseMove('tr:eq(2) td.column:eq(2)'); }, done); }); -- GitLab