From 0e6780eb97e3de95f9dbb8412ee91a3a570696b4 Mon Sep 17 00:00:00 2001
From: Thomas Steur <tsteur@users.noreply.github.com>
Date: Wed, 4 Oct 2017 12:01:25 +1300
Subject: [PATCH] Improve promo widget (#12145)

* improve promo widget

* fix tests
---
 plugins/ProfessionalServices/Promo.php        |  13 +++++++++++++
 .../Widgets/PromoServices.php                 |   3 ++-
 plugins/ProfessionalServices/images/promo.png | Bin 2349 -> 8091 bytes
 plugins/ProfessionalServices/lang/en.json     |   2 +-
 .../stylesheets/widget.less                   |  11 +++++++++--
 .../templates/promoServicesWidget.twig        |   5 +++--
 ...tReportMetadata__API.getWidgetMetadata.xml |   2 +-
 .../DashboardManager_create_new.png           | Bin 131 -> 131 bytes
 .../expected-screenshots/Dashboard_reset.png  | Bin 131 -> 131 bytes
 .../UIIntegrationTest_dashboard2.png          | Bin 132 -> 132 bytes
 10 files changed, 29 insertions(+), 7 deletions(-)

diff --git a/plugins/ProfessionalServices/Promo.php b/plugins/ProfessionalServices/Promo.php
index d163843627..ee480776f6 100644
--- a/plugins/ProfessionalServices/Promo.php
+++ b/plugins/ProfessionalServices/Promo.php
@@ -22,11 +22,13 @@ class Promo
             // A/B Testing
             array(
                 'campaignContent' => 'abTesting',
+                'title' => 'A/B Testing',
                 'url' => 'https://piwik.org/recommends/ab-testing-learn-more',
                 'text' => 'Ever wondered what A/B testing is and why it is so important? Check out how you can increase conversions and sales on your website and app.'
             ),
             array(
                 'campaignContent' => 'abTesting',
+                'title' => 'A/B Testing',
                 'url' => ' https://piwik.org/recommends/ab-testing-website',
                 'text' => 'Increase revenue and conversions by comparing different versions of your websites or apps, ad detect the winning variation that will grow your business!'
             ),
@@ -34,11 +36,13 @@ class Promo
             // Media Analytics
             array(
                 'campaignContent' => 'mediaAnalytics',
+                'title' => 'Media Analytics',
                 'url' => 'https://piwik.org/recommends/media-analytics-website',
                 'text' => 'Ever wondered how people interact and engage with videos or audios on your website? Well now you can, and it integrates perfectly into your Piwik.',
             ),
             array(
                 'campaignContent' => 'mediaAnalytics',
+                'title' => 'Media Analytics',
                 'url' => 'https://piwik.org/recommends/media-analytics',
                 'text' => 'Get powerful insights into how your audience watches your videos and listens to your audio. Media Analytics is now available on the Marketplace.',
             ),
@@ -46,6 +50,7 @@ class Promo
             // Form
             array(
                 'campaignContent' => 'formAnalytics',
+                'title' => 'Form Analytics',
                 'url' => 'https://piwik.org/recommends/form-analytics',
                 'text' => 'Increase the conversions on your online forms, by learning everything about your users behavior and their pain points on your forms',
             ),
@@ -53,6 +58,7 @@ class Promo
             // Funnels
             array(
                 'campaignContent' => 'funnels',
+                'title' => 'Funnels',
                 'url' => 'https://piwik.org/recommends/conversion-funnels',
                 'text' => 'Increase your conversions, sales and revenue by understanding your conversion funnels and where your visitors drop off with Funnels for Piwik.'
             ),
@@ -60,40 +66,47 @@ class Promo
             // Piwik training
             array(
                 'campaignContent' => 'userTraining',
+                'title' => 'Training',
                 'url' => 'https://piwik.org/training/?pk_campaign=' . Advertising::CAMPAIGN_NAME_PROFESSIONAL_SERVICES . '&pk_source=Piwik_App',
                 'text' => 'Want to know how to use all the exciting features in Piwik? Try a User training to be up to speed with working with Piwik.'
             ),
             // Keywords performance
             array(
                 'campaignContent' => 'searchKeywords',
+                'title' => 'Search Keywords',
                 'url' => 'https://piwik.org/recommends/search-keywords-performance/',
                 'text' => 'Which queries caused your website to appear in search results? Improve your SEO efforts and monitor your position and performance for each Keyword directly in your Piwik reports.',
             ),
             // Roll-Up Reporting
             array(
                 'campaignContent' => 'rollUp',
+                'title' => 'Roll-Up Reporting',
                 'url' => 'https://piwik.org/recommends/roll-up-reporting/',
                 'text' => 'Did you know you can aggregate the collected data across hundreds of sites and display it in a single dashboard?',
             ),
             // White label
             array(
                 'campaignContent' => 'whiteLabel',
+                'title' => 'White Label',
                 'url' => 'https://piwik.org/recommends/white-label/',
                 'text' => 'Did you know you can give your clients access to their analytics reports where all Piwik-branded widgets are removed? Try the White Label product!',
             ),
             // Enterprise
             array(
                 'campaignContent' => 'bringEnterpriseLevel',
+                'title' => 'Enterprise',
                 'url' => 'https://piwik.org/recommends/enterprise/',
                 'text' => 'Bring your analytics to enterprise level. Upgrade your Piwik platform and receive access to numerous premium features and assistance from experts.'
             ),
             array(
                 'campaignContent' => 'slowingDown',
+                'title' => 'Enterprise',
                 'url' => 'https://piwik.org/recommends/enterprise/',
                 'text' => 'Is your Piwik slowing down? Piwik experts can help with your server setup!'
             ),
             array(
                 'campaignContent' => 'discoverPower',
+                'title' => 'Enterprise',
                 'url' => 'https://piwik.org/recommends/enterprise/',
                 'text' => 'Discover the power of open-source combined with enterprise-grade support and premium functionalities.'
             ),
diff --git a/plugins/ProfessionalServices/Widgets/PromoServices.php b/plugins/ProfessionalServices/Widgets/PromoServices.php
index 8a34d5500e..35eca8d35a 100644
--- a/plugins/ProfessionalServices/Widgets/PromoServices.php
+++ b/plugins/ProfessionalServices/Widgets/PromoServices.php
@@ -35,7 +35,7 @@ class PromoServices extends \Piwik\Widget\Widget
     public static function configure(WidgetConfig $config)
     {
         $config->setCategoryId('About Piwik');
-        $config->setName('ProfessionalServices_WidgetProfessionalServicesForPiwik');
+        $config->setName('ProfessionalServices_WidgetPremiumServicesForPiwik');
 
         $advertising = StaticContainer::get('Piwik\ProfessionalServices\Advertising');
         $config->setIsEnabled($advertising->areAdsForProfessionalServicesEnabled());
@@ -49,6 +49,7 @@ class PromoServices extends \Piwik\Widget\Widget
 
         $view->ctaLinkUrl = $promo['url'];
         $view->ctaText = $promo['text'];
+        $view->ctaTitle = $promo['title'];
         $view->ctaLinkTitle = $this->promo->getLinkTitle();
 
         return $view->render();
diff --git a/plugins/ProfessionalServices/images/promo.png b/plugins/ProfessionalServices/images/promo.png
index ac15b596df4d082573e2d36487c00d595b001182..1a2ecd4adb102569e779f7447844796140c61ede 100644
GIT binary patch
literal 8091
zcmXY$bx>Q~)5jCsz0d+JP$&+?wYa+%m*QGniWld>i@RGXUL?2&cXtWy?(p9J=FLoU
zXYL>8>~8k#clUF`l@+Bh(TLGNAP}aEw74qp^#AuoK>~ie1-}h}KxD=;;v(uE8OQo&
z9t4^s0=0yQcqoK_r0JL?;Cponq;qkWIfZjPHf-Y7D|$0G6|3Rw92*E_9nlC-sD7gK
za5sCkk=3S~4h;6VQ|$iOk>X;%ZMzk)IPuwCg`A>LDZ!USFnUMwP{x{?>&68S2Qt=T
z_KWU(lmn6R)*zh4iN&={9kc4;fIzsoxQ#Enu6ivls15dOl19one|4BZ!nv`OhO6GR
zh83hO)}Fae+k*~nZnK8=?RH54rf3~m<a`^WEBspR-{5b^c>F`L$v`>`LG;_S`WNhf
zzpoItdfteKZ+^OZt&*b9l48q-JL*LJcrH>ISY@;!%Bb5$dMeu8ll{gCC1ATbkSb>a
z4#8>XremB!>}+Md)4|=DJ0q@brx>;17GzYDQ+pn$UN)mw>xLQOrxO4|362bq6%i>U
zCty40?xxs_>1qEYXvmBMl1pal9?@-3E}NN;A}iR0-v^8LX7jk>;nOH|EvOZP!8i$<
zC{pEw<9H_@Aj-Ao3LZ0m!hd~|>td3^!V$K#q&-<_kBK1qygr%8fP#$*4}(L1=(Pwc
z!sA$8xthpltcU6t)LmUK)(cTlXgdwKn5BPxct*ZmXw}4~Crv<zg+-4Uj>of`kFLkl
zDE+BF>+D9(V3~-4T)+su5DN7e<qF9`d_4R$uN`3T3l2x^)Z@^ETaX()2sbyEBIAoI
zn)CKKi&zpq@*Nf|zF6r~Jq7rd?2A#1fk3H)aw>sF8{9pw#R+LhXz0=(zk&`dL}BYX
zo$m|viG@RnxZ%m@s0jPet3HMFv#wtBueJ>@?OQZTRo|aI&soL11=v^xORj#Hovbv>
z?RZnYaiap^?ta!Y+A31`g_nmtKbXKU#I#heS~inby`b*JSf@g!RiSIcSA~F*+L5$Y
zzj-ZGxs*@|?216XIWSdBy3QYqHL935rSWiLKt}`G8H`VlFIN0!X<72l3v>I+Mh3)r
zz9^HsZ0`2}ab4?tg_sxfgB9-cv!PZC7cFg=P~`K^g_V`aP|{Y+(FJ{8?;ezg_NxZe
zY?+^!=)&S29z46F=|kR#7wIjJ1X!{+do%I3WXs$p#bFKh-8?=!7&`;mb9dFBCscAA
zD44bW#>U0P5e_xE9uh9O9|?<4aK9rXcqu?hX4D<rOWBjZ&Lo&G0f`?yn~^bS-s`Q6
zd>r60Z15Gx;`z}P;8UPjycM0vuU#P;Om*J%h-_*M(fF;o{WB1mF-h)MsGq>_0jCXB
zosywqln&<)*j}9cWj4Wl3P@b<^^#Aw?uAQm-18NS;l&EILc1Z!x^6L2|0A;@WZ0Z3
z4T|1JdM*<L!f|@H^!IuvDxG`yuc5e$3jxt*{b5lFwDhA~Q(0bqmxF%4@2~M2z6o$7
zxc(@w$uFd=P6+xn&1s}2wav}vq18exw6y(^3Lmos{Q5e@kfsJ^7D_T;q#=B@5VPG|
z6G?XR^~7F2!@KtN@r~}ijFG>`yiQGyM~&6q&x;wyWQ8Dcaj3ZS{)HK%-rul+W@+XA
zg*Gwd)h5@WNT!b;DJdam#lcsM>MSz6bOIQyiW8f?jZQPNeSLjee>WEEY@UiVhVH(t
zKRd}LJS7~?R+{K#Kvoa)as9(6rDAH#nLgKUSzf1cdfd%*6WZc9uCIf?mK!k1@LIXP
z4T)QHZCkhZd-^_;wc_PgYrHLMzDsxDv*1solqs*dCM!aXBHVM#->^{aOf#5(7Vj>b
z`!N{eF<>kyA(dKc*aHOZUn)@~f3nF?s>T5gYRJ0n&nCK`uGCpBHJ`a>a9VI(dhRH(
z5rA_hReB9tz0NnfL-#jL==z1hVII#9oX}`8C@JrXf{>hr^EMElyRJd@AHu?*b~5&~
z1t(LbbDnHt+&w$j+kTmL8D9)6ta{7CEt;5p_8cJ%#pnlKj4h`x7dt!C`%`ZT&A(%H
zpCAhN^_D_>yFHWc{uHDxaGa$lG5xq+)L_334~vT09-Jw=lQ}oG;u<a1LU~w#j>#r(
z_Kl>MOr+>C6FQze@p9QN_a8BuFI;Rl+Ckk8Tz1S^j}<{56|?wy9}Kxzmd?-;860o3
zR>CV-^+)a7Uq?S5_{J4v3=3jxJ!nReTnsPN5<W>-a}a-DYzZ$MOi&~y+grMJtu1Qt
z*f;+D%#64XoNsJ00pm)+)>0Q2mJhqv`i2H$Pya%-7TnIR78=%kdr~8JTai$f@Q&@D
znIOQ^qr<6~S3zIfY6S`kiVU6~c+NYcW=^y&E{;W~>mpC53x0Gr?F0qYAn~B!V8_KP
ztE>KWD2%Oqa3D_b+2`&q+>8b>6k*E#7ukw{llk5MqKY~kFGOZBn$_!mx~gNl)#`OS
zU+&dFwW;WloC^X<P)AsQnCT@sq7^MjwRp<$G5VNMH@9U0njI2Fa()DHCLAPa9sp9{
zyq2x-kK)?m0j^Ms#_xXpW_MlN&oVE*PuRXH4bkCd78CZ_nq`BAH>b(N!RiG+fzt``
z3^wGpPcvQQ6jY{HOG~fU!cG{?;vWK5UR(x@qu7IACS+>gNGzL$U)CtothEf^EP^+K
zM3%QMot^6X$!&_GsnUVi6!D=}>_t<(EQk-QY<7w<dKo-cAH_sP8M$80<Do}OYcww^
zbhY7fYPfGdIO^;3n9eJ=d3?La<z``t&41+%Sy*;TiNs!ZYI2^~l$h2=O)DgS1Ba7r
z&F^+%s#@-p7yvj^E2w>O^4?-3E3r!626@Z-zu+9QIdnqip6nz>bM=I6nTmA3wF39%
zdKqd6MyvJOi(q7UIICAHL4h)8^QqPSv7Q?9G4K2Pmlr6RIdQVldWAr<c4v>veyH!;
zzH4hvo3rr^v9HfAXX7GY%T-49B-yW!S|6@iS^vmN{fEe6dZ%o10dDewZEhCI{b5c4
zVwcFI;~Q_<2{YmE31)t`<YsB{O^*oo-J1bzXY(meshgmA>CbTOGWhXllyB&8KoB3O
z8yefsfN!>NS}m~RuNLP9KrxE_Cbpk3vK@GO@+qRDYWg@S(8TwS3_cK!>EY}ub&65B
z#Ha-&Csrj_^?a{7Uy@Wtf(?;;beo7yh0(VclkI0#FdDVaZv|@?b#($iothNH2!g?@
zeO+AvjB}A{yk3a;F>&8-6NNjqtNmU%qFz+0=PFeHZF&vU#)%*uK2)QNX*$%EdR4{3
ze6hUk#R3=^pY20k>7VXM9E{55nX)0F==6yEen9z@i(*NxyX2BTD;R=<f`Y1)tCdi+
z11=sOu~@9uFNwy0;#5raS<(DGUNA^GSGC6C)WG}tpiqXa;c%K_wE?H2=FJd0J^il%
zks5?5v!&S}v^Q)`KVYye=xdt=>HXNTA08opP2YV&gfJOd0<&RK<))#G+}S0N*?X{q
zk65L$ycEgj{neDGQ|7n>gE&s>>zzSD9DIMR7tkak2;n!mWzakxxiIvbTzgyj-6={4
zzBZUxbbdj2rXJHVFz8QWBEfsY0Ezday_u*|5fjdbM*xo>IIOSdn$A#Yg8+GKbbHq6
zdcy`@wbP;DwZC5EY`ovaMEQ-)b1N?CkFdqD$K8R<ki;AsQ5!KZ)uP)Vb0-F3)^7{q
zQOJN<Q=xaf777`(c_Q|k<|raJ=<%vRRJX+~P{N|4yP7abe%0~wq8D}YFnQh{Mwmq;
zi{>hK+?^;1Ut7<tuOBc{*T<rIoNpqEigi=XQEG$iR}m=r=+R;aK;>BX7dwGc6?&4p
z%YJ7dpk~1lI1M0~QqYym<^Vy~s-9-M2gQE2H;6;d<iRMJaSRI&Ptr>^1@~BOf-)6b
zAgGOvJl&n0oqHJ_9m1Bz#<hLV>i*W4P1i?16NfZ~OVvB^?m_G8>mUmvB4L`W;(TVo
z`$U2Qt27?-Pwy4p0NVg%P^;DWlREt&j3hQ~iHSieCkj}B&uu@Fv+V1k*K8ytwFbcm
zK1V0;CX>%-<$%+{#X(#$4%-x!d`hGaY4v#N+jE+$gOih}<gb4()qt1fOP*W1*N4}s
zGUaif$;-2=j}1UK#2%{UB15y~RgT?A&r~t47h9XtDA<0<MQ-zTppq#t-}{o;FbL=v
zLEUCNZ-#rm#SvdmUyma33EbA!=y*vzSwmE%3s%k#uB~O~vRe)dSEKG`3Qea)AUVYa
z9MO*0nXj>8uYt4)wcDe?aS&r7VSNa4wV4$yRWB+PaH9iR*Eu-3^^F~J=h*C4oRM&U
z*d5K1fR1L82kx2bBFqqTSj`gXa@&jC*e*~6dzXI=>=bM3UevIeH1p{_K@ct{RE$>C
zYXAOzvHl$CiZ^R8i7vuUw|?_1SFA*PNbU%eqn;AsH|M{8*><hw4X+c-pX$O@$D7-h
z_A9d?n07Lhz8Mcxr^Ca?V|=_=w>MrPuxj`L(Z7<!FDf3YWVByXNUPTvMvIWitacRD
zAYa~@97SRbojrDNb`B)CaOHa+67@EETP_JK3u#<V$EqR$E0+Za$_8`Ve9c!2jb=F(
zujY1eaS1vVHq>i!!0ncb_K&EQE9ym7w^4pA`&{k3gw@#GEQWVK{jH}YPOHX}HRo^E
zrXXh(`oD!_OS^t+l#Lgv5ox*S(FQ%;Uz)ru|KM>xAke9MAsjzo;}8ULpb7K9WbWpD
ze<C|gL97y9zNBA_1UjLpw8aIO9|v%b_KoZxt!lWHW;dw|^FeV6Z-aa1ry6&%o8y%T
zSq;Il*gGJ(+DbH$o86E6Lqm}Z6fST8nLt9{8C9D5F2ri91Df8?iDjtrzGu5Sn82sY
zrhZfTSU=Oi<MqI?GnyXZeJ?P@^v@C<S8J28QT_f*e(Zuc?8y6b<l#&Knw93~o+@py
za&e$2HFVNUZlYL|tiU%~?+6pfC03^%X+1taFuXT%m&i6b8U>~;lK6$q^hH;eesdg+
zl7aN6SE!>2t5@G2j89}$DnM8Q^<p=QdxbiSm4ph8;lgQyK1%#&bU$gva}IUnxNkzu
znGG{Ul2I72#{B(brek%bIqtK)p!6rdmNkUo6fS}80c2Zcz$0>e1V){|DDXZ=(k-&W
z7eun+6w?<MU6rBOCWrOqwEFe({}m^e&gRHoThBMxV1K#v5~aWQji)g_fYGIj3L2Tf
z0fpxs0;5(VC=ls^*tgCp(VyS_)Ckz-?y+51Hi$faV4~E7Mvuqq12Bq+ROo#e@U$(^
z2^`cYGg`|MpjFQCr%DI^lZ2EbZn~*{WY7SKm|`YxW)&HZQ6llos+@)72VPIAUTpzD
zkz$7$jV1zaxrDV8gD=)M;FIVXzKhZ+H{uX6z3jKHu&NHSu8vasGE?t!hYcUEm)`x@
z79Yqcm|=B&;BX{K>4{<wxx}jp4L6gJl&msMRW;T|dsn;dlJ9u(X{ZVnEKHG4j?d%%
z(jv~O;||OBBdeCbuR(22#CSZhQQz$pOS)N+qujp>$N!_--nQVv>7N2my8*8{Ihe_6
z6Ow`|@Gjj{NDEkn(iF~OBs0E*>oD5;>5g?sgVFv1E7%v=Y3b(J<MK3pfR@`zz`8EY
zX0F_<`c{w#9#F@G-7RR$rz9rh*^C9xi}(h!lRyFx0h=fekIC$?IH$HdY^qpEyG>Oh
zVx{)V=XNp--P7&~lESt<bTQE$L$xIT%XxRKkUYN7((4JC21L6Z1X9doWl~|9eSg2^
z_gX!<oA~LJN3rG9_d0Ec@Sh{+KsV()zTO$`L?+Yx{iO?$07ggo8i?=z^GQaHhURx?
z6J<6q*Z}`jfn_t~+nUe&h{uycbdld9R1nK^rA@ATb*et;&tTI#6LJ}HMfCP?eAaJA
z9^I8+EAZA|C&~U5+e(``wJYPG9Ccx3I)|I9cmGP+iq}oYGctDU<UM?8yc(eHy=NQU
zA~*rVMOjT?)3YzY{*Jy|td0TM8=4H7s2*?5(Ck`T9iJ~|)Z5=smJo~|xXfQ&N=`rI
zaZxL!Mvjjw7d(?Rz$I1c{LB>#6|u;N!M~#g!QTr-KH{oTD{?(qZ_|T;kLA{J6hks|
z@dATN06Aa}4jvvxJF0JqMln~t?GjwMV#HtEpZ*#)UrqYm#c~Qq%?FU#q(Mj*(5E{g
z`E0h4v$Di81Oz0+u4a8*ppLQXuZH5ooKWZyPgWoi6`9R>R<-6lej8s@=SWbrYQHlf
zVG<)meYKea%pnKN$?x-yNu4Sp`QI6tt2E5Fd%S6MIPq?xNykY*6E5sHh5B}DMiJ)$
zD8l1mO^wPB1#b4W1rV9GaZ64dSiOQ^>?j;dtdQ}vv}38->tvuAiU<A^k{$nFC}hfl
zjd3ar#3~r3QC4l;E9)`yJDB%!=i`@;q?1A9Mq4{kZ&{2$n;gU_PLKU@vETo#<I=+d
zR3_c_`EQv|v9U&f568h4idlmR9P9z|NFs&8!bTv;n1>Ip2Q%HPhBv)S7CZE|t4;3&
z1)p=H)s}iQ?S&t-e$)7!ji0jkjebE1!1&dVjVbY{_}=m0E?j<$)iezI`^!C1OY2h3
zOvBpdL-t(UUv8W#*GI0a!`(nF*FP)E_ece;AQTow^tH~wDu-3Le$&Z*Y;<%nK>Qq@
z8id#~pL%fA(S(_yKc62}Dt&!0$avvC8@2|CpzymLi)Rb^;Np{*xWnLu(>&8W^L)IK
z*NcPEDUydMf}a3xmS>VYdiT7?n*MPOB!UA<go~R{(c<v~-yE$3o|`~BInx;)u8u=f
z<}I74$fQlcJ-xlTQm0v3O_r=Mr=fu;aTE`t7p%-C*UoCgn0c!EaEg9Yf7y`Tv8+xg
zR7yTXVv*@yI1SCeM8AwHjl<fOvo;Y0yn(y1H(5>+P5Q<55=Ik}gJbu}&OJnlescN{
z;zT^zr%faDkqvI8$sL;ejC}OpQ_mevO>SZJZXshVN?2s1_-&RzmEYQDH@TP40F0A%
z1aS!|z$k<H1}}TUdoF(r0)PL#6w9lFDH1QYlfjQ`lCdIiI5_zDfr37d#=G_JwP8y*
zY{DQoV-u5!xni<<yM;6fU;1zKXYwO$bOUh8^a;jA4j>%=k`l|38EfEt0cdWIJ4dMA
zb}>W3*IKx1U_hpQiU$l}tn40Lf)H|)*r9?kIcY-S(G1>R@enHVWC|8qP$xwvVFeBj
z5mD$%8+?^j_n0=Um{8~aU;=YgS1{VUXVSL>LF?;AtP%XEiK?hlQc?rGvV_8&aEP(o
zhJwNjZ5wzGd~dm5+st-s!H#J>7^JWWOq)3|<;7F^)DeH-)2!BCra0|x&wP2^l)bqk
zQXZa!{^`xlFyl|?9Wyg;H0U*>mE;uPSAX_Roqh}8(zh%Q<g*pC7WEGxYI!z%ptGnm
zcXc^k<Q#atq2BQqjyjmhk(H!}m?HjM`)e6@7OEHG^XS_dK{R&$a$#v?1j2fKDC;a@
zEWn`x`b1!Q@9VoJSvO8lSMA93a(6hIw?}=~V;aCJg%`^R=CE1B$O=Xe&|yM=VA#V2
zve<6~+>S_|Z+>#PxO3#NTg3>QnzvmQ)J2*h7A^~Pe{{P$o@Y&9)*wDzQ)IUolY}j~
z<CwCsC<gv2l+6`sMH=`+n|kN?q?NA(<!$0Q?<tL^=8}!o$xK?Rw>L?>*zO_P7s|sH
zFZO^B^9?-Q)hKgVdojfOu{z)IcypRBTFCL>0Bb?KjF+>xXeWKRn33}&WKKCdmj*NH
z<h>;m^t7B*{)K^wzMWvDwjW31KHGpWf?K)PmDKJ}vpbRv4GVLqg{?LI2)zGtN#dwn
zBTp9+99+}@5{I9))1tY73!m1kFh*Q$b6)y0L3O{rAqJeF2sC7k**S5{p0XZ=KheyJ
zq&)rHDp}wu!4|h?;)q1XxN&rb?F2g5a)Vzsu9RwA-Wc@Ih41Ek-$wi+Xoq1Pzz1Ay
z4Hhg`l!_T&Iz2ImPn%!0u*4qIIiAyqm<?FOTJ{<mc{r0R^*Z$+0>AEjV0$X3`pKhk
z<O6464qR5N)AMgr=W~ii($6=y<p@a%zLr70Kl2fOzAv3<dyLue*9%)SZnJyjvaU<A
zPf;sYs_xV@qz=yqRrwTSMMgypSc1b65ke7ae+=12;?wlFTa8{le`f&{&-}(y^@;R3
zW~+}a)OYPUl$7kP6QKueV1#a}h;7<(Sn(iTD&|AA``W5HAK%+G%Lk8KlU>DdV?<~E
z6edalA~5_H9le=C_9B(|j#2>q&3ZsE`di$0->Rz{ULd_#nS9<=h9t<s!GZq?cwWN-
zL$MhjHjkHB6w_HVA(uNcPHLc>_%e2Y!*u~eRBem21U;hBmx{TH$6(8<qt<U=qeN>B
z$m=>7-7Ng>y1(*|N}2gDr=x2Y*r$@Y9Ko3EFW;)4`7)CLkYNNt+m3g;eQ+Y?vbOwW
z(C+}IQYR)M=}s)uJdfY({S|o_f>dX9IMV+8$*f2ocVa?Cuf~NA-A8r)`xd+ywpNQN
zYK4A#^gnotEuq)s9j=hh9YMp_M(WdYroFGa-1q~ZlQ@csx!@xvVyv<wAQ=A-@3;@T
zFiec<Nf&snuWm6=P*~LJ|Hn_cjCu5HAd3p#MwTX6?%XddH&RHgST*x~7Gv3t<L-g`
zdz*~)DrQFv?lBox>3dLMLi`_wVg#AMe_w9t<T`Fag$$c|pUIr(=|QYNnHU=nPg86z
zUfbB-+cB^<Ct*U7LA10m+qG(V`)B7N<Me+N6}a9Yq*Wg`wWrghTPW0>6NiNTI`yNI
zrUAbt0Y>_NRCL7FTe*3Z=;`=&jd7aNcx<)x95v6@N@rm_n%IEz$6bHr*QNgf)KUY^
zQlX%pmpg$O-{b%nLjUSbB4!<FCHDW4O9}EePt(*|!p;Ev$?lE?;LowEyN>brH}tA0
za!JhJ)LjxJmh6`sJGtyyx1iSr0>-Qrdad*m&OQg;%!u#E{coWyyQE)W{Cp6;bbw6>
zI5~ES3n7K3kX(v?`SB3+jC@rbSR3zqG%UP%UEgHtyj}GVo35?pm4m^vCV8jO$a)-n
z9~?Lqu9J(zA=}wJ$aabQl%zFBQnu?@rVvz8f!JdHZ_T_NI)IMl44QpMBJIU{diorC
ze<w0p-;_%C0hav$ngy5hY68;$5MJc83iLg{dtb3P=k@ZVMt;Z_=bK1G66x}<z@<)o
zmHGnPJ|WrLAno%@+2vaI7zr=wi-t8nlVd)@9f{w%=|uPIh_ObN^FVTE^9DjL-;H^T
z_!XCAkj?|j^y>3e`A%0H;5rVQFqz?0e$6xiF5<r3maKaouTk4JbU%xU5MY+5k!z?(
zIJEO?Cmj<-gcwbTN~UGLdoDpRvOW9Pp}ViO$?UdWo0w%i-Sar#Ft&MFqy|0Sp4RHd
zoT!)lDfZ%)YsnHurjdHU*c*c?Woi9k=iy1gr+%1Np-didTpj354P>l{@}35w_H?yB
zg<57PI(e7lU5K_^=SAdtK9|D08?)tCrP$gu5RHw|t&~q4^#h>A=*KjiX*@42R+K^v
z`hzg*_Xt&15#}u}_f8>?DrmOyAXLn-sUFAfzU+Ie(y?K_`g?9BkL`mu>^I?I8c-*o
z31|G8*Ej=}4D66iWEvUK<x(r-<UXd~1TgZ`ZxyjxQ6|mYFYZUnBAKHZ%C!hab-4Dc
zEgOxfTl+~vD=u>f2VE51A!qjyyXHp(xNqO~vkFCibGs!q=JlM!aOVf@3?Fxf$J4O(
z3{vj3$Gn;eW&5i0rhfSCv^&(j&tA-aWT#d1ponIx1?r1}INxINyY9=UPP#Z~u)H|4
zCefI@K%TMxA$m{DgIbsS8b-A?(stXsH#7>Vwyvo+E6oiVyf)OAurUj#)UW${9jiW%
zXA}8S=7R%x!oNveujW-eeN={ywlwO9XMXHe6^`{%kyBHrv9eBlU6ej3*{WD+*2+~y
ztc@wdY<u`ste9O-XDIXYJt}$bH&#|wy?SHb2!iJx7(ztOtKKj$zu0xU+1TMbZXalH
z*)Mb*1<e!}$~rxdk-W8V>!Ozf?ay{3R~k6MN>p4%vPMk3V{68G!#rL#c|$QsWN9>s
z;?0`3opyoX-9L=jq+iDn%$I^9Ngj3${VtZc%14-M2p<0;Br_TIb#(NIvS9l8`Hkwb
zWCLK6t<|zny-F>4l+fU3L$DYhg6ifRF4(8aHUj6C`o+mes7O9FK&Vn5*))6-V#VQ)
zb;hWU<9ayzQ&Zuyw@w~Hjl~$&FOSC?rVoOiVVAp~*M}jsD4y?(E<7t2>(;qDu@#89
zXXk8|USfkx2R=<D+UZ{d-AqP<k>DlKmAohNp;y?Q7+uWi<W@`%II9hrPW1|(S+{z*
zD}tfkO&W?!1={KpdOoE?#=0oX{|1@wfr}FX$@tC*sWh67^~L2&UTl{oyY0i%-3f<)
z)Nq<R%QP#EXVPYPoUTxwvRh+awBz!!b0lha_U0<d=)abfyoNs4=})GTRe=0^qCGBm
zIGOcY!Y+xJ*H@n(!@^LcG9;JlE7WOY1-#r6==6!}Y-U0LR~w-g3sntV@cXp>jNX=2
yr}9v3Y0iIl+LZq;w@pE#ruDem{TvzhLO;indv=i2{{t@FK{67G;uWGs0sjZuXUzBj

literal 2349
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
TThWoC00000NkvXXu0mjfd+cTr

diff --git a/plugins/ProfessionalServices/lang/en.json b/plugins/ProfessionalServices/lang/en.json
index 86d44f4d0a..9b390d0a4d 100644
--- a/plugins/ProfessionalServices/lang/en.json
+++ b/plugins/ProfessionalServices/lang/en.json
@@ -1,5 +1,5 @@
 {
     "ProfessionalServices": {
-        "WidgetProfessionalServicesForPiwik": "Premium Products & Services for Piwik"
+        "WidgetPremiumServicesForPiwik": "Premium Features & Services for Piwik"
     }
 }
\ No newline at end of file
diff --git a/plugins/ProfessionalServices/stylesheets/widget.less b/plugins/ProfessionalServices/stylesheets/widget.less
index fdb9cb1eae..ab99bd4f16 100644
--- a/plugins/ProfessionalServices/stylesheets/widget.less
+++ b/plugins/ProfessionalServices/stylesheets/widget.less
@@ -3,22 +3,29 @@
   background-color: white;
 
   .promo {
-    padding: 20px;
+    padding: 10px;
     &:after {
       content: '';
       clear: both;
       visibility: hidden;
     }
+
+    h2 {
+      font-size: 20px;
+    }
   }
   .text {
     overflow: hidden;
   }
   hr {
-    margin: 0px;
+    margin: 0;
   }
   .link {
     padding: 20px;
   }
+  .btn {
+    background: @theme-color-link;
+  }
   .icon {
     margin-top:20px;
     width: 64px;
diff --git a/plugins/ProfessionalServices/templates/promoServicesWidget.twig b/plugins/ProfessionalServices/templates/promoServicesWidget.twig
index 67f87df40a..29edd9358f 100644
--- a/plugins/ProfessionalServices/templates/promoServicesWidget.twig
+++ b/plugins/ProfessionalServices/templates/promoServicesWidget.twig
@@ -1,8 +1,9 @@
 <div class="promoWidget">
     <div class="promo">
-        <img class="icon" src="plugins/ProfessionalServices/images/promo.png">
+        <a href="{{ ctaLinkUrl|e('html_attr') }}" target="_blank" rel="noreferrer"><img class="icon" src="plugins/ProfessionalServices/images/promo.png"></a>
+        <h2>{{ ctaTitle }}</h2>
         <p class="text">
-            {{ ctaText }}
+            <span>{{ ctaText }}</span>
             <br /><br />
             <a class="btn" href="{{ ctaLinkUrl|e('html_attr') }}" target="_blank" rel="noreferrer">
                 {{ ctaLinkTitle }}
diff --git a/tests/PHPUnit/System/expected/test_apiGetReportMetadata__API.getWidgetMetadata.xml b/tests/PHPUnit/System/expected/test_apiGetReportMetadata__API.getWidgetMetadata.xml
index c064ffd441..3bf0a56ac3 100755
--- a/tests/PHPUnit/System/expected/test_apiGetReportMetadata__API.getWidgetMetadata.xml
+++ b/tests/PHPUnit/System/expected/test_apiGetReportMetadata__API.getWidgetMetadata.xml
@@ -3364,7 +3364,7 @@
 		<isWide>0</isWide>
 	</row>
 	<row>
-		<name>Premium Products &amp; Services for Piwik</name>
+		<name>Premium Features &amp; Services for Piwik</name>
 		<category>
 			<id>About Piwik</id>
 			<name>About Piwik</name>
diff --git a/tests/UI/expected-screenshots/DashboardManager_create_new.png b/tests/UI/expected-screenshots/DashboardManager_create_new.png
index dc4b931886d3181dded27d1069519054276d317c..c2bbc138951e0b1926334492be741d66180fe6a7 100644
GIT binary patch
delta 84
zcmV~$u?>JQ3<N;YW(r2ge;i{E!4M7@iJFc!3otTwbD7JhI}?Vhb**q8U9d%TJEKN6
e+SxSC5ROB&+J)BXX=9@Zc)(en`^}Z&MwTC|&=q+A

delta 84
zcmV~$u?>JQ3<N->%@m9fY$s+3hTvnrL`_GV1sIvTRaW`N*(?}I?Uqn@4_A}OtC4wt
cHgj)s5rk?343o&&%^~JNuh0GFCN@O8{yS?J#Q*>R

diff --git a/tests/UI/expected-screenshots/Dashboard_reset.png b/tests/UI/expected-screenshots/Dashboard_reset.png
index aa6004a698d6faf90c8b3f4bb1a8c02fe345a360..22398b788c287faf377cf1bb349705a3b47445b3 100644
GIT binary patch
delta 84
zcmV~$yAgmO3;@uxWeP_iKL|rOL?FqXwVf>sII{2UV;^6;cqUXNo-UlE*`){9wPbj+
eP^~=8(7<{`raGx1v}GQ&unsHF{l<yH1X6zcc^9Ps

delta 84
zcmV~$u@S%^2mruK>l7IQP!NX55F&V&I$c^9$jJHM$38x}Vn%vh-Eu*fu2yY0r^?ho
e1#APAlcNO>ok|i4M&f4TvWUuazj+b^p_L!@Cl<T_

diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_dashboard2.png b/tests/UI/expected-screenshots/UIIntegrationTest_dashboard2.png
index ea7f3b4a76b18f3c38fdcc63bd9843de55774543..390ad437df41f7afebed8769eacba73c2e3e9548 100644
GIT binary patch
delta 84
zcmV~$yAgmO3;@uhWeP`tU`QCkA@aSmwzFmcNA|s4cKPTM%akM}Pd*nyNY2&Sd(iY@
e%Z1WZL)g%Dkpgh*4Y7?-_WIm!9DM=+QvCrhG8g#(

delta 84
zcmWN^u@S%^2mrvdb&8CDqJTqW2m!fEoi4QlWaQ+#-)X0pPeN+QFe^qxSwv=_u2aCf
fRgf0eb%N5E(#L;yW>#yiO$X=ude%{>h+xkj@0k}Z

-- 
GitLab