Changeset 3309522
- Timestamp:
- 06/11/2025 05:33:49 AM (8 months ago)
- Location:
- matomo/trunk/app/plugins
- Files:
-
- 1 added
- 46 edited
-
API/API.php (modified) (2 diffs)
-
API/Controller.php (modified) (1 diff)
-
Actions/API.php (modified) (1 diff)
-
Actions/ArchivingHelper.php (modified) (2 diffs)
-
Actions/Columns/ActionType.php (modified) (1 diff)
-
BulkTracking/Tracker/Requests.php (modified) (1 diff)
-
Contents/Reports/GetContentNames.php (modified) (1 diff)
-
Contents/Reports/GetContentPieces.php (modified) (1 diff)
-
CoreHome/CoreHome.php (modified) (2 diffs)
-
CoreHome/stylesheets/a11y.less (added)
-
CoreHome/templates/ReportRenderer/_htmlReportBody.twig (modified) (1 diff)
-
CoreHome/templates/ReportRenderer/_htmlReportHeader.twig (modified) (2 diffs)
-
CoreHome/vue/dist/CoreHome.umd.min.js (modified) (1 diff)
-
CorePluginsAdmin/CorePluginsAdmin.php (modified) (1 diff)
-
CoreVisualizations/JqplotDataGenerator/Chart.php (modified) (2 diffs)
-
CustomDimensions/Dimension/Extraction.php (modified) (1 diff)
-
CustomDimensions/GetCustomDimension.php (modified) (1 diff)
-
CustomDimensions/Menu.php (modified) (1 diff)
-
DBStats/API.php (modified) (1 diff)
-
DBStats/MySQLMetadataProvider.php (modified) (7 diffs)
-
Dashboard/API.php (modified) (1 diff)
-
Diagnostics/Diagnostic/DbAdapterCheck.php (modified) (1 diff)
-
Diagnostics/Diagnostic/TimezoneCheck.php (modified) (1 diff)
-
Diagnostics/Menu.php (modified) (1 diff)
-
Events/API.php (modified) (1 diff)
-
GeoIp2/LocationProvider/GeoIp2.php (modified) (1 diff)
-
GeoIp2/data/regionMapping.php (modified) (1 diff)
-
Goals/API.php (modified) (2 diffs)
-
Live/API.php (modified) (3 diffs)
-
Live/templates/index.twig (modified) (1 diff)
-
Login/Login.php (modified) (1 diff)
-
Marketplace/Api/Service.php (modified) (1 diff)
-
Marketplace/Emails/RequestTrialNotificationEmail.php (modified) (1 diff)
-
Marketplace/PluginTrial/Notification.php (modified) (1 diff)
-
Marketplace/PluginTrial/Request.php (modified) (1 diff)
-
Marketplace/PluginTrial/Service.php (modified) (1 diff)
-
Marketplace/PluginTrial/Storage.php (modified) (1 diff)
-
PagePerformance/JqplotDataGenerator/Chart.php (modified) (2 diffs)
-
Referrers/Columns/Base.php (modified) (1 diff)
-
Referrers/SearchEngine.php (modified) (2 diffs)
-
ScheduledReports/API.php (modified) (2 diffs)
-
ScheduledReports/Controller.php (modified) (1 diff)
-
ScheduledReports/ScheduledReports.php (modified) (1 diff)
-
SitesManager/API.php (modified) (4 diffs)
-
UsersManager/API.php (modified) (1 diff)
-
UsersManager/Controller.php (modified) (1 diff)
-
UsersManager/Model.php (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
matomo/trunk/app/plugins/API/API.php
r3258786 r3309522 35 35 require_once PIWIK_INCLUDE_PATH . '/core/Config.php'; 36 36 /** 37 * This API is the <a href='http ://matomo.org/docs/analytics-api/metadata/' rel='noreferrer' target='_blank'>Metadata API</a>: it gives information about all other available APIs methods, as well as providing37 * This API is the <a href='https://matomo.org/docs/analytics-api/metadata/' rel='noreferrer' target='_blank'>Metadata API</a>: it gives information about all other available APIs methods, as well as providing 38 38 * human readable and more complete outputs than normal API methods. 39 39 * … … 48 48 * </ul> 49 49 * The Metadata API is for example used by the Matomo Mobile App to automatically display all Matomo reports, with translated report & columns names and nicely formatted values. 50 * More information on the <a href='http ://matomo.org/docs/analytics-api/metadata/' rel='noreferrer' target='_blank'>Metadata API documentation page</a>50 * More information on the <a href='https://matomo.org/docs/analytics-api/metadata/' rel='noreferrer' target='_blank'>Metadata API documentation page</a> 51 51 * 52 52 * @method static \Piwik\Plugins\API\API getInstance() -
matomo/trunk/app/plugins/API/Controller.php
r3221935 r3309522 53 53 $ApiDocumentation = new DocumentationGenerator(); 54 54 $prefixUrls = Common::getRequestVar('prefixUrl', 'https://demo.matomo.org/', 'string'); 55 $ hostname = parse_url($prefixUrls, \PHP_URL_HOST);56 if (empty($ hostname) || !UrlHelper::isLookLikeUrl($prefixUrls) || strpos($prefixUrls, 'http') !== 0 || !Url::isValidHost($hostname)) {55 $parsedUrl = parse_url($prefixUrls); 56 if (empty($parsedUrl['host']) || !UrlHelper::isLookLikeUrl($prefixUrls) || strpos($prefixUrls, 'http') !== 0 || !Url::isValidHost($parsedUrl['host'])) { 57 57 $prefixUrls = ''; 58 } else { 59 // We put together the url based on the parsed parameters manually to ensure it might not contain unexpected locations 60 // unescaped slashes in username or password part for example have unexpected results in browsers 61 $prefixUrls = UrlHelper::getParseUrlReverse($parsedUrl); 58 62 } 59 63 return $ApiDocumentation->getApiDocumentationAsStringForDeveloperReference($outputExampleUrls = \true, $prefixUrls); -
matomo/trunk/app/plugins/Actions/API.php
r3221935 r3309522 27 27 * File Downloads and Clicks on external websites. 28 28 * 29 * For example, "getPageTitles" will return all your page titles along with standard <a href='http ://matomo.org/docs/analytics-api/reference/#toc-metric-definitions' rel='noreferrer' target='_blank'>Actions metrics</a> for each row.29 * For example, "getPageTitles" will return all your page titles along with standard <a href='https://matomo.org/docs/analytics-api/reference/#toc-metric-definitions' rel='noreferrer' target='_blank'>Actions metrics</a> for each row. 30 30 * 31 31 * It is also possible to request data for a specific Page Title with "getPageTitle" -
matomo/trunk/app/plugins/Actions/ArchivingHelper.php
r3221935 r3309522 94 94 // Here we do ensure that, the Metadata URL set for a given row, is the one from the Pageview with the most hits. 95 95 // This is to ensure that when, different URLs are loaded with the same page name. 96 // For example http ://piwik.org and http://id.piwik.org are reported in Piwik > Actions > Pages with /index97 // But, we must make sure http ://piwik.org is used to link & for transitions96 // For example https://piwik.org and https://id.piwik.org are reported in Piwik > Actions > Pages with /index 97 // But, we must make sure https://piwik.org is used to link & for transitions 98 98 // Note: this code is partly duplicated from Row->sumRowMetadata() 99 99 if (!is_null($url) && !$actionRow->isSummaryRow()) { … … 492 492 * 493 493 * for downloads: 494 * we explode link http ://piwik.org/some/path/piwik.zip into an array( 'piwik.org', '/some/path/piwik.zip' );494 * we explode link https://piwik.org/some/path/piwik.zip into an array( 'piwik.org', '/some/path/piwik.zip' ); 495 495 * 496 496 * for outlinks: 497 * we explode link http ://dev.piwik.org/some/path into an array( 'dev.piwik.org', '/some/path' );497 * we explode link https://dev.piwik.org/some/path into an array( 'dev.piwik.org', '/some/path' ); 498 498 * 499 499 * for action urls: 500 * we explode link http ://piwik.org/some/path into an array( 'some', 'path' );500 * we explode link https://piwik.org/some/path into an array( 'some', 'path' ); 501 501 * 502 502 * for action names: -
matomo/trunk/app/plugins/Actions/Columns/ActionType.php
r3221935 r3309522 18 18 * This example dimension only defines a name and does not track any data. It's supposed to be only used in reports. 19 19 * 20 * See {@link http ://developer.piwik.org/api-reference/Piwik/Columns\Dimension} for more information.20 * See {@link https://developer.matomo.org/api-reference/Piwik/Columns\Dimension} for more information. 21 21 */ 22 22 class ActionType extends ActionDimension -
matomo/trunk/app/plugins/BulkTracking/Tracker/Requests.php
r3221935 r3309522 37 37 { 38 38 if (empty($token)) { 39 throw new Exception("token_auth must be specified when using Bulk Tracking Import. " . " See <a href='https://developer. piwik.org/api-reference/tracking-api'>Tracking Doc</a>");39 throw new Exception("token_auth must be specified when using Bulk Tracking Import. " . " See <a href='https://developer.matomo.org/api-reference/tracking-api'>Tracking Doc</a>"); 40 40 } 41 41 } -
matomo/trunk/app/plugins/Contents/Reports/GetContentNames.php
r3103858 r3309522 15 15 * This class defines a new report. 16 16 * 17 * See {@link http ://developer.piwik.org/api-reference/Piwik/Plugin/Report} for more information.17 * See {@link https://developer.matomo.org/api-reference/Piwik/Plugin/Report} for more information. 18 18 */ 19 19 class GetContentNames extends \Piwik\Plugins\Contents\Reports\Base -
matomo/trunk/app/plugins/Contents/Reports/GetContentPieces.php
r3103858 r3309522 15 15 * This class defines a new report. 16 16 * 17 * See {@link http ://developer.piwik.org/api-reference/Piwik/Plugin/Report} for more information.17 * See {@link https://developer.matomo.org/api-reference/Piwik/Plugin/Report} for more information. 18 18 */ 19 19 class GetContentPieces extends \Piwik\Plugins\Contents\Reports\Base -
matomo/trunk/app/plugins/CoreHome/CoreHome.php
r3258786 r3309522 103 103 $stylesheets[] = "plugins/Morpheus/stylesheets/base.less"; 104 104 $stylesheets[] = "plugins/Morpheus/stylesheets/main.less"; 105 $stylesheets[] = "plugins/CoreHome/stylesheets/a11y.less"; 105 106 $stylesheets[] = "plugins/CoreHome/stylesheets/coreHome.less"; 106 107 $stylesheets[] = "plugins/CoreHome/stylesheets/dataTable.less"; … … 366 367 $translationKeys[] = 'General_Copy'; 367 368 $translationKeys[] = 'General_CopiedToClipboard'; 369 $translationKeys[] = 'CoreHome_ReportConfiguration'; 368 370 // add admin menu translations 369 371 if (SettingsPiwik::isMatomoInstalled() && Common::getRequestVar('module', '') != 'CoreUpdater' && Piwik::isUserHasSomeViewAccess()) { -
matomo/trunk/app/plugins/CoreHome/templates/ReportRenderer/_htmlReportBody.twig
r2243632 r3309522 3 3 {% set styleTableCell = "border-bottom:1px solid rgb(231,231,231);font-size: 15px;font-variant-numeric: tabular-nums;padding:17px 15px;" ~ fontStyle %} 4 4 5 <h2 id="{{ reportId }}" style=" {{ fontStyle}} font-size: {{ emailStyles.reportTitleTextSize }}pt; font-weight:normal; margin:45px 0 30px 0;">6 {{ reportName }}5 <h2 id="{{ reportId }}" style=" {{ fontStyle }} font-size: {{ emailStyles.reportTitleTextSize }}pt; font-weight:normal; margin:45px 0 30px 0;"> 6 {{ reportName|escape|preventLinking }} 7 7 </h2> 8 8 -
matomo/trunk/app/plugins/CoreHome/templates/ReportRenderer/_htmlReportHeader.twig
r2243632 r3309522 7 7 <p style='{{styleParagraph}}{{fontStyle}}'> 8 8 {% if isAttachedFile is defined and isAttachedFile %} 9 {{ 'ScheduledReports_PleaseFindAttachedFile'|translate(frequency, reportTitle )}}9 {{ 'ScheduledReports_PleaseFindAttachedFile'|translate(frequency, reportTitle|escape|preventLinking)|raw }} 10 10 {% else %} 11 {{ 'ScheduledReports_PleaseFindBelow'|translate(period,reportTitle)}}11 {{ 'ScheduledReports_PleaseFindBelow'|translate(period, reportTitle|escape|preventLinking)|raw }} 12 12 {% endif %} 13 <br />{{ description }}13 <br />{{ description|escape|preventLinking }} 14 14 <br />{{ 'General_DateRange'|translate }} {{ prettyDate }} 15 15 <br />{{ 'ScheduledReports_SentFromX'|translate(piwikUrl) }} … … 18 18 {% if displaySegment %} 19 19 <p style="{{styleParagraph}}{{fontStyle}}"> 20 {{ 'ScheduledReports_CustomVisitorSegment'|translate }} {{ segmentName }}20 {{ 'ScheduledReports_CustomVisitorSegment'|translate }} {{ segmentName|escape|preventLinking }} 21 21 </p> 22 22 {% endif %} -
matomo/trunk/app/plugins/CoreHome/vue/dist/CoreHome.umd.min.js
r3258786 r3309522 288 288 * @link https://matomo.org 289 289 * @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later 290 */function td(e,t,n,r,o,a){return Object(X["openBlock"])(),Object(X["createElementBlock"])("div",ed,[Object(X["renderSlot"])(e.$slots,"default",{formData:e.formData,submitApiMethod:e.submitApiMethod,sendJsonPayload:e.sendJsonPayload,noErrorNotification:e.noErrorNotification,noSuccessNotification:e.noSuccessNotification,submitForm:e.submitForm,isSubmitting:e.isSubmitting,successfulPostResponse:e.successfulPostResponse,errorPostResponse:e.errorPostResponse})],512)}var nd=window,rd=nd.$,od=Object(X["defineComponent"])({props:{formData:{type:Object,required:!0},submitApiMethod:{type:String,required:!0},sendJsonPayload:Boolean,noErrorNotification:Boolean,noSuccessNotification:Boolean},data:function(){return{isSubmitting:!1,successfulPostResponse:null,errorPostResponse:null}},emits:["update:modelValue"],mounted:function(){var e=this;rd(this.$refs.root).on("click","input[type=submit]",(function(){e.submitForm()}))},methods:{submitForm:function(){var e=this;this.successfulPostResponse=null,this.errorPostResponse=null;var t=this.formData;this.sendJsonPayload&&(t={data:JSON.stringify(this.formData)}),this.isSubmitting=!0,Ze.post({module:"API",method:this.submitApiMethod},t,{createErrorNotification:!this.noErrorNotification}).then((function(t){if(e.successfulPostResponse=t,!e.noSuccessNotification){var n=ga.show({message:a("General_YourChangesHaveBeenSaved"),context:"success",type:"toast",id:"ajaxHelper"});ga.scrollToNotification(n)}})).catch((function(t){e.errorPostResponse=t.message})).finally((function(){e.isSubmitting=!1}))}}});od.render=td;var ad=od;function id(e,t,n,r,o,a){return Object(X["renderSlot"])(e.$slots,"default")}var ld=Object(X["defineComponent"])({});ld.render=id;var cd=ld,sd={key:0},ud=["data-target"],dd=Object(X["createElementVNode"])("span",{class:"icon-configure"},null,-1),md= [dd],pd=["data-target"],fd=["title"],hd=["title","src"],bd=["id"],vd=["data-footer-icon-id"],gd=["title"],yd=["title","src"],Od={key:2},jd=Object(X["createElementVNode"])("li",{class:"divider"},null,-1),wd=Object(X["createElementVNode"])("li",{class:"divider"},null,-1),kd=["title"],Sd=Object(X["createElementVNode"])("span",{class:"icon-export"},null,-1),Cd=[Sd],Ed=["title"],Dd=Object(X["createElementVNode"])("span",{class:"icon-image"},null,-1),Pd=[Dd],Td=["title"],Vd=Object(X["createElementVNode"])("span",{class:"icon-annotation"},null,-1),Nd=[Vd],Id=["title"],xd=Object(X["createElementVNode"])("span",{class:"icon-search",draggable:"false"},null,-1),Bd=["title"],Ad=["id","title"],Md=["title"],Ld=["title","src"],Fd=["id"],_d={key:0},Rd=["innerHTML"],Hd={key:1},Ud=["innerHTML"],$d={key:2},qd=["innerHTML"],Wd={key:3},zd=["innerHTML"],Gd={key:4},Yd=["innerHTML"],Jd={key:5},Kd=["innerHTML"],Qd=["title","data-target"],Xd=Object(X["createElementVNode"])("span",{class:"icon-calendar"},null,-1),Zd={class:"periodName"},em=["id"],tm=["data-period"];function nm(e,t,n,r,o,a){var i=Object(X["resolveComponent"])("Passthrough"),l=Object(X["resolveDirective"])("dropdown-button"),c=Object(X["resolveDirective"])("report-export");return e.showFooter&&e.showFooterIcons?(Object(X["openBlock"])(),Object(X["createElementBlock"])("div",sd,[e.hasConfigItems&&(e.isAnyConfigureIconHighlighted||e.isTableView)?Object(X["withDirectives"])((Object(X["openBlock"])(),Object(X["createElementBlock"])("a",{key:0,class:Object(X["normalizeClass"])(["dropdown-button dropdownConfigureIcon dataTableAction",{highlighted:e.isAnyConfigureIconHighlighted}]),href:"",onClick:t[0]||(t[0]=Object(X["withModifiers"])((function(){}),["prevent"])),"data-target":"dropdownConfigure".concat(e.randomIdForDropdown),style:{"margin-right":"3.5px"}},md,10,ud)),[[l]]):Object(X["createCommentVNode"])("",!0),e.hasFooterIconsToShow?Object(X["withDirectives"])((Object(X["openBlock"])(),Object(X["createElementBlock"])("a",{key:1,class:"dropdown-button dataTableAction activateVisualizationSelection",href:"","data-target":"dropdownVisualizations".concat(e.randomIdForDropdown),style:{"margin-right":"3.5px"},onClick:t[1]||(t[1]=Object(X["withModifiers"])((function(){}),["prevent"]))},[/^icon-/.test(e.activeFooterIcon||"")?(Object(X["openBlock"])(),Object(X["createElementBlock"])("span",{key:0,title:e.translate("CoreHome_ChangeVisualization"),class:Object(X["normalizeClass"])(e.activeFooterIcon)},null,10,fd)):(Object(X["openBlock"])(),Object(X["createElementBlock"])("img",{key:1,title:e.translate("CoreHome_ChangeVisualization"),width:"16",height:"16",src:e.activeFooterIcon},null,8,hd))],8,pd)),[[l]]):Object(X["createCommentVNode"])("",!0),e.showFooterIcons?(Object(X["openBlock"])(),Object(X["createElementBlock"])("ul",{key:2,id:"dropdownVisualizations".concat(e.randomIdForDropdown),class:"dropdown-content dataTableFooterIcons"},[(Object(X["openBlock"])(!0),Object(X["createElementBlock"])(X["Fragment"],null,Object(X["renderList"])(e.footerIcons,(function(t,n){return Object(X["openBlock"])(),Object(X["createBlock"])(i,{key:n},{default:Object(X["withCtx"])((function(){return[(Object(X["openBlock"])(!0),Object(X["createElementBlock"])(X["Fragment"],null,Object(X["renderList"])(t.buttons.filter((function(e){return!!e.icon})),(function(n){return Object(X["openBlock"])(),Object(X["createElementBlock"])("li",{key:n.id},[Object(X["createElementVNode"])("a",{class:Object(X["normalizeClass"])("".concat(t.class," tableIcon\n ").concat(-1!==e.activeFooterIconIds.indexOf(n.id)?"activeIcon":"")),"data-footer-icon-id":n.id},[/^icon-/.test(n.icon||"")?(Object(X["openBlock"])(),Object(X["createElementBlock"])("span",{key:0,title:n.title,class:Object(X["normalizeClass"])(n.icon),style:{"margin-right":"5.5px"}},null,10,gd)):(Object(X["openBlock"])(),Object(X["createElementBlock"])("img",{key:1,width:"16",height:"16",title:n.title,src:n.icon,style:{"margin-right":"5.5px"}},null,8,yd)),n.title?(Object(X["openBlock"])(),Object(X["createElementBlock"])("span",Od,Object(X["toDisplayString"])(n.title),1)):Object(X["createCommentVNode"])("",!0)],10,vd)])})),128)),jd]})),_:2},1024)})),128)),wd],8,bd)):Object(X["createCommentVNode"])("",!0),e.showExport?Object(X["withDirectives"])((Object(X["openBlock"])(),Object(X["createElementBlock"])("a",{key:3,class:"dataTableAction activateExportSelection",title:e.translate("General_ExportThisReport"),href:"",style:{"margin-right":"3.5px"},onClick:t[2]||(t[2]=Object(X["withModifiers"])((function(){}),["prevent"]))},Cd,8,kd)),[[c,{reportTitle:e.reportTitle,requestParams:e.requestParams,apiMethod:e.apiMethodToRequestDataTable,reportFormats:e.reportFormats,maxFilterLimit:e.maxFilterLimit}]]):Object(X["createCommentVNode"])("",!0),e.showExportAsImageIcon?(Object(X["openBlock"])(),Object(X["createElementBlock"])("a",{key:4,class:"dataTableAction tableIcon",href:"",id:"dataTableFooterExportAsImageIcon",onClick:t[3]||(t[3]=Object(X["withModifiers"])((function(t){return e.showExportImage(t)}),["prevent"])),title:e.translate("General_ExportAsImage"),style:{"margin-right":"3.5px"}},Pd,8,Ed)):Object(X["createCommentVNode"])("",!0),e.showAnnotations?(Object(X["openBlock"])(),Object(X["createElementBlock"])("a",{key:5,class:"dataTableAction annotationView",href:"",title:e.translate("Annotations_Annotations"),onClick:t[4]||(t[4]=Object(X["withModifiers"])((function(){}),["prevent"])),style:{"margin-right":"3.5px"}},Nd,8,Td)):Object(X["createCommentVNode"])("",!0),e.showSearch?(Object(X["openBlock"])(),Object(X["createElementBlock"])("a",{key:6,class:"dropdown-button dataTableAction searchAction",href:"",title:e.translate("General_Search"),style:{"margin-right":"3.5px"},draggable:"false",onClick:t[5]||(t[5]=Object(X["withModifiers"])((function(){}),["prevent"]))},[xd,Object(X["createElementVNode"])("span",{class:"icon-close",draggable:"false",title:e.translate("CoreHome_CloseSearch")},null,8,Bd),Object(X["createElementVNode"])("input",{id:"widgetSearch_".concat(e.reportId,"_").concat(e.placement),title:e.translate("CoreHome_DataTableHowToSearch"),type:"text",class:"dataTableSearchInput"},null,8,Ad)],8,Id)):Object(X["createCommentVNode"])("",!0),(Object(X["openBlock"])(!0),Object(X["createElementBlock"])(X["Fragment"],null,Object(X["renderList"])(e.dataTableActions,(function(e){return Object(X["openBlock"])(),Object(X["createElementBlock"])("a",{key:e.id,class:Object(X["normalizeClass"])("dataTableAction ".concat(e.id)),href:"",onClick:t[6]||(t[6]=Object(X["withModifiers"])((function(){}),["prevent"])),title:e.title,style:{"margin-right":"3.5px"}},[/^icon-/.test(e.icon||"")?(Object(X["openBlock"])(),Object(X["createElementBlock"])("span",{key:0,class:Object(X["normalizeClass"])(e.icon)},null,2)):(Object(X["openBlock"])(),Object(X["createElementBlock"])("img",{key:1,width:"16",height:"16",title:e.title,src:e.icon},null,8,Ld))],10,Md)})),128)),Object(X["createElementVNode"])("ul",{id:"dropdownConfigure".concat(e.randomIdForDropdown),class:"dropdown-content tableConfiguration"},[e.showFlattenTable?(Object(X["openBlock"])(),Object(X["createElementBlock"])("li",_d,[Object(X["createElementVNode"])("div",{class:"configItem dataTableFlatten",innerHTML:e.$sanitize(e.flattenItemText)},null,8,Rd)])):Object(X["createCommentVNode"])("",!0),e.showDimensionsConfigItem?(Object(X["openBlock"])(),Object(X["createElementBlock"])("li",Hd,[Object(X["createElementVNode"])("div",{class:"configItem dataTableShowDimensions",innerHTML:e.$sanitize(e.showDimensionsText)},null,8,Ud)])):Object(X["createCommentVNode"])("",!0),e.showFlatConfigItem?(Object(X["openBlock"])(),Object(X["createElementBlock"])("li",$d,[Object(X["createElementVNode"])("div",{class:"configItem dataTableIncludeAggregateRows",innerHTML:e.$sanitize(e.includeAggregateRowsText)},null,8,qd)])):Object(X["createCommentVNode"])("",!0),e.showTotalsConfigItem?(Object(X["openBlock"])(),Object(X["createElementBlock"])("li",Wd,[Object(X["createElementVNode"])("div",{class:"configItem dataTableShowTotalsRow",innerHTML:e.$sanitize(e.keepTotalsRowText)},null,8,zd)])):Object(X["createCommentVNode"])("",!0),e.showExcludeLowPopulation?(Object(X["openBlock"])(),Object(X["createElementBlock"])("li",Gd,[Object(X["createElementVNode"])("div",{class:"configItem dataTableExcludeLowPopulation",innerHTML:e.$sanitize(e.excludeLowPopText)},null,8,Yd)])):Object(X["createCommentVNode"])("",!0),e.showPivotBySubtable?(Object(X["openBlock"])(),Object(X["createElementBlock"])("li",Jd,[Object(X["createElementVNode"])("div",{class:"configItem dataTablePivotBySubtable",innerHTML:e.$sanitize(e.pivotByText)},null,8,Kd)])):Object(X["createCommentVNode"])("",!0)],8,Fd),e.showPeriods?Object(X["withDirectives"])((Object(X["openBlock"])(),Object(X["createElementBlock"])("a",{key:7,class:"dropdown-button dataTableAction activatePeriodsSelection",href:"",onClick:t[7]||(t[7]=Object(X["withModifiers"])((function(){}),["prevent"])),title:e.translate("CoreHome_ChangePeriod"),"data-target":"dropdownPeriods".concat(e.randomIdForDropdown)},[Object(X["createElementVNode"])("div",null,[Xd,Object(X["createElementVNode"])("span",Zd,Object(X["toDisplayString"])(e.translations[e.clientSideParameters.period]||e.clientSideParameters.period),1)])],8,Qd)),[[l]]):Object(X["createCommentVNode"])("",!0),e.showPeriods?(Object(X["openBlock"])(),Object(X["createElementBlock"])("ul",{key:8,id:"dropdownPeriods".concat(e.randomIdForDropdown),class:"dropdown-content dataTablePeriods"},[(Object(X["openBlock"])(!0),Object(X["createElementBlock"])(X["Fragment"],null,Object(X["renderList"])(e.selectablePeriods,(function(t){return Object(X["openBlock"])(),Object(X["createElementBlock"])("li",{key:t},[Object(X["createElementVNode"])("a",{"data-period":t,class:Object(X["normalizeClass"])("tableIcon ".concat(e.clientSideParameters.period===t?"activeIcon":""))},[Object(X["createElementVNode"])("span",null,Object(X["toDisplayString"])(e.translations[t]||t),1)],10,tm)])})),128))],8,em)):Object(X["createCommentVNode"])("",!0)])):Object(X["createCommentVNode"])("",!0)}function rm(e){return lm(e)||im(e)||am(e)||om()}function om(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function am(e,t){if(e){if("string"===typeof e)return cm(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?cm(e,t):void 0}}function im(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function lm(e){if(Array.isArray(e))return cm(e)}function cm(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var sm=window,um=sm.$;function dm(e,t,n){if(/(%(.\$)?s+)/g.test(a(e))){var r=['<br /><span class="action">'];n&&r.push(n);var o=a.apply(void 0,[e].concat(r));return t&&(o+=" (".concat(a("CoreHome_Default"),")")),o+="</span>",o}return a(e)}function mm(e,t,n){return e?dm(t,!0):dm(n)}function pm(e){return!!e&&"0"!==e}var fm=Object(X["defineComponent"])({props:{showPeriods:Boolean,showFooter:Boolean,showFooterIcons:Boolean,showSearch:Boolean,showFlattenTable:Boolean,footerIcons:{type:Array,required:!0},viewDataTable:{type:String,required:!0},reportTitle:String,requestParams:{type:Object,required:!0},apiMethodToRequestDataTable:{type:String,required:!0},maxFilterLimit:{type:Number,required:!0},showExport:Boolean,showExportAsImageIcon:Boolean,showAnnotations:Boolean,reportId:{type:String,required:!0},dataTableActions:{type:Array,required:!0},clientSideParameters:{type:Object,required:!0},hasMultipleDimensions:Boolean,isDataTableEmpty:Boolean,showTotalsRow:Boolean,showExcludeLowPopulation:Boolean,showPivotBySubtable:Boolean,selectablePeriods:Array,translations:{type:Object,required:!0},pivotDimensionName:String,placement:{type:String,default:"footer"}},components:{Passthrough:cd},directives:{DropdownButton:Kn,ReportExport:_u},methods:{showExportImage:function(e){um(e.target).closest(".dataTable").find("div.jqplot-target").trigger("piwikExportAsImage")}},computed:{randomIdForDropdown:function(){return Math.floor(999999*Math.random())},allFooterIcons:function(){return this.footerIcons.reduce((function(e,t){return e.push.apply(e,rm(t.buttons)),e}),[])},activeFooterIcons:function(){var e=this,t=this.clientSideParameters,n=[this.viewDataTable];return 0===t.abandonedCarts||"0"===t.abandonedCarts?n.push("ecommerceOrder"):1!==t.abandonedCarts&&"1"!==t.abandonedCarts||n.push("ecommerceAbandonedCart"),n.map((function(t){return e.allFooterIcons.find((function(e){return e.id===t}))})).filter((function(e){return!!e}))},activeFooterIcon:function(){var e;return null===(e=this.activeFooterIcons[0])||void 0===e?void 0:e.icon},activeFooterIconIds:function(){return this.activeFooterIcons.map((function(e){return e.id}))},numIcons:function(){return this.allFooterIcons.length},hasFooterIconsToShow:function(){return!!this.activeFooterIcons.length&&this.numIcons>1},reportFormats:function(){var e={CSV:"CSV",TSV:"TSV (Excel)",XML:"XML",JSON:"Json",HTML:"HTML",RSS:"RSS"};return e},showDimensionsConfigItem:function(){return this.showFlattenTable&&"1"==="".concat(this.clientSideParameters.flat)&&this.hasMultipleDimensions},showFlatConfigItem:function(){return this.showFlattenTable&&"1"==="".concat(this.clientSideParameters.flat)},showTotalsConfigItem:function(){return!this.isDataTableEmpty&&this.showTotalsRow},hasConfigItems:function(){return this.showFlattenTable||this.showDimensionsConfigItem||this.showFlatConfigItem||this.showTotalsConfigItem||this.showExcludeLowPopulation||this.showPivotBySubtable},flattenItemText:function(){var e=this.clientSideParameters;return mm(pm(e.flat),"CoreHome_UnFlattenDataTable","CoreHome_FlattenDataTable")},keepTotalsRowText:function(){var e=this.clientSideParameters;return mm(pm(e.keep_totals_row),"CoreHome_RemoveTotalsRowDataTable","CoreHome_AddTotalsRowDataTable")},includeAggregateRowsText:function(){var e=this.clientSideParameters;return mm(pm(e.include_aggregate_rows),"CoreHome_DataTableExcludeAggregateRows","CoreHome_DataTableIncludeAggregateRows")},showDimensionsText:function(){var e=this.clientSideParameters;return mm(pm(e.show_dimensions),"CoreHome_DataTableCombineDimensions","CoreHome_DataTableShowDimensions")},pivotByText:function(){var e=this.clientSideParameters;return pm(e.pivotBy)?dm("CoreHome_UndoPivotBySubtable",!0):dm("CoreHome_PivotBySubtable",!1,this.pivotDimensionName)},excludeLowPopText:function(){var e=this.clientSideParameters;return mm(pm(e.enable_filter_excludelowpop),"CoreHome_IncludeRowsWithLowPopulation","CoreHome_ExcludeRowsWithLowPopulation")},isAnyConfigureIconHighlighted:function(){var e=this.clientSideParameters;return pm(e.flat)||pm(e.keep_totals_row)||pm(e.include_aggregate_rows)||pm(e.show_dimensions)||pm(e.pivotBy)||pm(e.enable_filter_excludelowpop)},isTableView:function(){return"table"===this.viewDataTable||"tableAllColumns"===this.viewDataTable||"tableGoals"===this.viewDataTable}}});fm.render=nm;var hm=fm,bm={key:0,class:"title",style:{cursor:"pointer"},ref:"expander"},vm=Object(X["createElementVNode"])("span",{class:"icon-warning"},null,-1),gm={key:1,class:"title",href:"?module=CoreUpdater&action=newVersionAvailable",style:{cursor:"pointer"},ref:"expander"},ym=Object(X["createElementVNode"])("span",{class:"icon-warning"},null,-1),Om=["innerHTML"],jm=["href"],wm={id:"updateCheckLinkContainer"},km={class:"dropdown positionInViewport"},Sm=["innerHTML"],Cm=["innerHTML"];function Em(e,t,n,r,o,a){var i=Object(X["resolveComponent"])("Passthrough"),l=Object(X["resolveDirective"])("expand-on-hover");return Object(X["withDirectives"])((Object(X["openBlock"])(),Object(X["createElementBlock"])("div",{id:"header_message",class:Object(X["normalizeClass"])(["piwikSelector",{header_info:!e.latestVersionAvailable||e.lastUpdateCheckFailed,update_available:e.latestVersionAvailable}])},[e.latestVersionAvailable&&!e.isPiwikDemo?(Object(X["openBlock"])(),Object(X["createBlock"])(i,{key:0},{default:Object(X["withCtx"])((function(){return[e.isMultiServerEnvironment?(Object(X["openBlock"])(),Object(X["createElementBlock"])("span",bm,[Object(X["createTextVNode"])(Object(X["toDisplayString"])(e.translate("General_NewUpdatePiwikX",e.latestVersionAvailable))+" ",1),vm],512)):(Object(X["openBlock"])(),Object(X["createElementBlock"])("a",gm,[Object(X["createTextVNode"])(Object(X["toDisplayString"])(e.translate("General_NewUpdatePiwikX",e.latestVersionAvailable))+" ",1),ym],512))]})),_:1})):e.isSuperUser&&(e.isAdminArea||e.lastUpdateCheckFailed)?(Object(X["openBlock"])(),Object(X["createBlock"])(i,{key:1},{default:Object(X["withCtx"])((function(){return[e.isInternetEnabled?(Object(X["openBlock"])(),Object(X["createElementBlock"])("a",{key:0,class:"title",innerHTML:e.$sanitize(e.updateCheck)},null,8,Om)):(Object(X["openBlock"])(),Object(X["createElementBlock"])("a",{key:1,class:"title",href:e.externalRawLink("https://matomo.org/changelog/"),target:"_blank",rel:"noreferrer noopener"},[Object(X["createElementVNode"])("span",wm,Object(X["toDisplayString"])(e.translate("CoreHome_SeeAvailableVersions")),1)],8,jm))]})),_:1})):Object(X["createCommentVNode"])("",!0),Object(X["createElementVNode"])("div",km,[e.latestVersionAvailable&&e.isSuperUser?(Object(X["openBlock"])(),Object(X["createElementBlock"])("span",{key:0,innerHTML:e.$sanitize(e.updateNowText)},null,8,Sm)):e.latestVersionAvailable&&!e.isPiwikDemo&&e.hasSomeViewAccess&&!e.isAnonymous?(Object(X["openBlock"])(),Object(X["createElementBlock"])("span",{key:1,innerHTML:e.$sanitize(e.updateAvailableText)},null,8,Cm)):Object(X["createCommentVNode"])("",!0),Object(X["createTextVNode"])(" "+Object(X["toDisplayString"])(e.translate("General_YouAreCurrentlyUsing",e.piwikVersion)),1)])],2)),[[l,{expander:"expander"}]])}var Dm=Object(X["defineComponent"])({props:{isMultiServerEnvironment:Boolean,lastUpdateCheckFailed:Boolean,latestVersionAvailable:String,isPiwikDemo:Boolean,isSuperUser:Boolean,isAdminArea:Boolean,isInternetEnabled:Boolean,updateCheck:String,isAnonymous:Boolean,hasSomeViewAccess:Boolean,contactEmail:String,piwikVersion:String},components:{Passthrough:cd},directives:{ExpandOnHover:qn},computed:{updateNowText:function(){var e="";if(this.isMultiServerEnvironment){var t=Et("https://builds.matomo.org/matomo-".concat(this.latestVersionAvailable,".zip"));e=a("CoreHome_OneClickUpdateNotPossibleAsMultiServerEnvironment",'<a rel="noreferrer noopener" href="'.concat(t,'">builds.matomo.org</a>'))}else e=a("General_PiwikXIsAvailablePleaseUpdateNow",this.latestVersionAvailable||"",'<br /><a href="index.php?module=CoreUpdater&action=newVersionAvailable">',"</a>",Dt("https://matomo.org/changelog/"),"</a>");return"".concat(e,"<br/>")},updateAvailableText:function(){var e=a("General_NewUpdatePiwikX",this.latestVersionAvailable||""),t=Dt("https://matomo.org/")+"Matomo</a>",n=Dt("https://matomo.org/changelog/"),r=a("General_PiwikXIsAvailablePleaseNotifyPiwikAdmin","".concat(t," ").concat(n).concat(this.latestVersionAvailable,"</a>"),'<a href="mailto:'.concat(this.contactEmail,"?subject=").concat(encodeURIComponent(e),'">'),"</a>");return"".concat(r,"<br />")}}});Dm.render=Em;var Pm=Dm;function Tm(e,t){return Bm(e)||xm(e,t)||Nm(e,t)||Vm()}function Vm(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function Nm(e,t){if(e){if("string"===typeof e)return Im(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Im(e,t):void 0}}function Im(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function xm(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,a=[],i=!0,l=!1;try{for(n=n.call(e);!(i=(r=n.next()).done);i=!0)if(a.push(r.value),t&&a.length===t)break}catch(c){l=!0,o=c}finally{try{i||null==n["return"]||n["return"]()}finally{if(l)throw o}}return a}}function Bm(e){if(Array.isArray(e))return e}var Am={id:"mobile-left-menu",class:"sidenav hide-on-large-only"},Mm={class:"collapsible collapsible-accordion"},Lm={class:"collapsible-header"},Fm={class:"collapsible-body"},_m=["title","href"];function Rm(e,t,n,r,o,a){var i=Object(X["resolveDirective"])("side-nav");return Object(X["openBlock"])(),Object(X["createElementBlock"])("ul",Am,[(Object(X["openBlock"])(!0),Object(X["createElementBlock"])(X["Fragment"],null,Object(X["renderList"])(e.menuWithSubmenuItems,(function(t,n){return Object(X["openBlock"])(),Object(X["createElementBlock"])("li",{class:"no-padding",key:n},[Object(X["withDirectives"])(Object(X["createElementVNode"])("ul",Mm,[Object(X["createElementVNode"])("li",null,[Object(X["createElementVNode"])("a",Lm,[Object(X["createTextVNode"])(Object(X["toDisplayString"])(e.translateOrDefault(n)),1),Object(X["createElementVNode"])("i",{class:Object(X["normalizeClass"])(t._icon||"icon-chevron-down")},null,2)]),Object(X["createElementVNode"])("div",Fm,[Object(X["createElementVNode"])("ul",null,[(Object(X["openBlock"])(!0),Object(X["createElementBlock"])(X["Fragment"],null,Object(X["renderList"])(Object.entries(t).filter((function(e){var t=Tm(e,1),n=t[0];return"_"!==n[0]})),(function(t){var n=Tm(t,2),r=n[0],o=n[1];return Object(X["openBlock"])(),Object(X["createElementBlock"])("li",{key:r},[Object(X["createElementVNode"])("a",{title:o._tooltip?e.translateIfNecessary(o._tooltip):"",target:"_self",href:e.getMenuUrl(o._url)},Object(X["toDisplayString"])(e.translateIfNecessary(r)),9,_m)])})),128))])])])],512),[[i,{activator:e.activateLeftMenu}]])])})),128))])}function Hm(e,t){return zm(e)||Wm(e,t)||$m(e,t)||Um()}function Um(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function $m(e,t){if(e){if("string"===typeof e)return qm(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?qm(e,t):void 0}}function qm(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Wm(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,a=[],i=!0,l=!1;try{for(n=n.call(e);!(i=(r=n.next()).done);i=!0)if(a.push(r.value),t&&a.length===t)break}catch(c){l=!0,o=c}finally{try{i||null==n["return"]||n["return"]()}finally{if(l)throw o}}return a}}function zm(e){if(Array.isArray(e))return e}var Gm=window,Ym=Gm.$,Jm=Object(X["defineComponent"])({props:{menu:{type:Object,required:!0}},directives:{SideNav:ir},methods:{getMenuUrl:function(e){return"?".concat(De.stringify(Object.assign(Object.assign({},De.urlParsed.value),e)))},translateIfNecessary:function(e){return e.includes("_")?a(e):e}},computed:{menuWithSubmenuItems:function(){var e=this.menu||{};return Object.fromEntries(Object.entries(e).filter((function(e){var t=Hm(e,2),n=t[1],r=Object.entries(n).filter((function(e){var t=Hm(e,1),n=t[0];return"_"!==n[0]}));return Object.keys(r).length})))},activateLeftMenu:function(){return Ym("nav .activateLeftMenu")[0]}}});Jm.render=Rm;var Km=Jm,Qm=window,Xm=Qm.$;290 */function td(e,t,n,r,o,a){return Object(X["openBlock"])(),Object(X["createElementBlock"])("div",ed,[Object(X["renderSlot"])(e.$slots,"default",{formData:e.formData,submitApiMethod:e.submitApiMethod,sendJsonPayload:e.sendJsonPayload,noErrorNotification:e.noErrorNotification,noSuccessNotification:e.noSuccessNotification,submitForm:e.submitForm,isSubmitting:e.isSubmitting,successfulPostResponse:e.successfulPostResponse,errorPostResponse:e.errorPostResponse})],512)}var nd=window,rd=nd.$,od=Object(X["defineComponent"])({props:{formData:{type:Object,required:!0},submitApiMethod:{type:String,required:!0},sendJsonPayload:Boolean,noErrorNotification:Boolean,noSuccessNotification:Boolean},data:function(){return{isSubmitting:!1,successfulPostResponse:null,errorPostResponse:null}},emits:["update:modelValue"],mounted:function(){var e=this;rd(this.$refs.root).on("click","input[type=submit]",(function(){e.submitForm()}))},methods:{submitForm:function(){var e=this;this.successfulPostResponse=null,this.errorPostResponse=null;var t=this.formData;this.sendJsonPayload&&(t={data:JSON.stringify(this.formData)}),this.isSubmitting=!0,Ze.post({module:"API",method:this.submitApiMethod},t,{createErrorNotification:!this.noErrorNotification}).then((function(t){if(e.successfulPostResponse=t,!e.noSuccessNotification){var n=ga.show({message:a("General_YourChangesHaveBeenSaved"),context:"success",type:"toast",id:"ajaxHelper"});ga.scrollToNotification(n)}})).catch((function(t){e.errorPostResponse=t.message})).finally((function(){e.isSubmitting=!1}))}}});od.render=td;var ad=od;function id(e,t,n,r,o,a){return Object(X["renderSlot"])(e.$slots,"default")}var ld=Object(X["defineComponent"])({});ld.render=id;var cd=ld,sd={key:0},ud=["data-target"],dd=Object(X["createElementVNode"])("span",{class:"icon-configure"},null,-1),md={class:"visually-hidden"},pd=["data-target"],fd=["title"],hd=["title","src"],bd=["id"],vd=["data-footer-icon-id"],gd=["title"],yd=["title","src"],Od={key:2},jd=Object(X["createElementVNode"])("li",{class:"divider"},null,-1),wd=Object(X["createElementVNode"])("li",{class:"divider"},null,-1),kd=["title"],Sd=Object(X["createElementVNode"])("span",{class:"icon-export"},null,-1),Cd={class:"visually-hidden"},Ed=["title"],Dd=Object(X["createElementVNode"])("span",{class:"icon-image"},null,-1),Pd=[Dd],Td=["title"],Vd=Object(X["createElementVNode"])("span",{class:"icon-annotation"},null,-1),Nd=[Vd],Id=["title"],xd=Object(X["createElementVNode"])("span",{class:"icon-search",draggable:"false"},null,-1),Bd=["title"],Ad=["id","title"],Md=["title"],Ld=["title","src"],Fd=["id"],_d={key:0},Rd=["innerHTML"],Hd={key:1},Ud=["innerHTML"],$d={key:2},qd=["innerHTML"],Wd={key:3},zd=["innerHTML"],Gd={key:4},Yd=["innerHTML"],Jd={key:5},Kd=["innerHTML"],Qd=["title","data-target"],Xd=Object(X["createElementVNode"])("span",{class:"icon-calendar"},null,-1),Zd={class:"periodName"},em=["id"],tm=["data-period"];function nm(e,t,n,r,o,a){var i=Object(X["resolveComponent"])("Passthrough"),l=Object(X["resolveDirective"])("dropdown-button"),c=Object(X["resolveDirective"])("report-export");return e.showFooter&&e.showFooterIcons?(Object(X["openBlock"])(),Object(X["createElementBlock"])("div",sd,[e.hasConfigItems&&(e.isAnyConfigureIconHighlighted||e.isTableView)?Object(X["withDirectives"])((Object(X["openBlock"])(),Object(X["createElementBlock"])("a",{key:0,class:Object(X["normalizeClass"])(["dropdown-button dropdownConfigureIcon dataTableAction",{highlighted:e.isAnyConfigureIconHighlighted}]),href:"",onClick:t[0]||(t[0]=Object(X["withModifiers"])((function(){}),["prevent"])),"data-target":"dropdownConfigure".concat(e.randomIdForDropdown),style:{"margin-right":"3.5px"}},[dd,Object(X["createElementVNode"])("span",md,Object(X["toDisplayString"])(e.translate("CoreHome_ReportConfiguration")),1)],10,ud)),[[l]]):Object(X["createCommentVNode"])("",!0),e.hasFooterIconsToShow?Object(X["withDirectives"])((Object(X["openBlock"])(),Object(X["createElementBlock"])("a",{key:1,class:"dropdown-button dataTableAction activateVisualizationSelection",href:"","data-target":"dropdownVisualizations".concat(e.randomIdForDropdown),style:{"margin-right":"3.5px"},onClick:t[1]||(t[1]=Object(X["withModifiers"])((function(){}),["prevent"]))},[/^icon-/.test(e.activeFooterIcon||"")?(Object(X["openBlock"])(),Object(X["createElementBlock"])("span",{key:0,title:e.translate("CoreHome_ChangeVisualization"),class:Object(X["normalizeClass"])(e.activeFooterIcon)},null,10,fd)):(Object(X["openBlock"])(),Object(X["createElementBlock"])("img",{key:1,title:e.translate("CoreHome_ChangeVisualization"),width:"16",height:"16",src:e.activeFooterIcon},null,8,hd))],8,pd)),[[l]]):Object(X["createCommentVNode"])("",!0),e.showFooterIcons?(Object(X["openBlock"])(),Object(X["createElementBlock"])("ul",{key:2,id:"dropdownVisualizations".concat(e.randomIdForDropdown),class:"dropdown-content dataTableFooterIcons"},[(Object(X["openBlock"])(!0),Object(X["createElementBlock"])(X["Fragment"],null,Object(X["renderList"])(e.footerIcons,(function(t,n){return Object(X["openBlock"])(),Object(X["createBlock"])(i,{key:n},{default:Object(X["withCtx"])((function(){return[(Object(X["openBlock"])(!0),Object(X["createElementBlock"])(X["Fragment"],null,Object(X["renderList"])(t.buttons.filter((function(e){return!!e.icon})),(function(n){return Object(X["openBlock"])(),Object(X["createElementBlock"])("li",{key:n.id},[Object(X["createElementVNode"])("a",{class:Object(X["normalizeClass"])("".concat(t.class," tableIcon\n ").concat(-1!==e.activeFooterIconIds.indexOf(n.id)?"activeIcon":"")),"data-footer-icon-id":n.id},[/^icon-/.test(n.icon||"")?(Object(X["openBlock"])(),Object(X["createElementBlock"])("span",{key:0,title:n.title,class:Object(X["normalizeClass"])(n.icon),style:{"margin-right":"5.5px"}},null,10,gd)):(Object(X["openBlock"])(),Object(X["createElementBlock"])("img",{key:1,width:"16",height:"16",title:n.title,src:n.icon,style:{"margin-right":"5.5px"}},null,8,yd)),n.title?(Object(X["openBlock"])(),Object(X["createElementBlock"])("span",Od,Object(X["toDisplayString"])(n.title),1)):Object(X["createCommentVNode"])("",!0)],10,vd)])})),128)),jd]})),_:2},1024)})),128)),wd],8,bd)):Object(X["createCommentVNode"])("",!0),e.showExport?Object(X["withDirectives"])((Object(X["openBlock"])(),Object(X["createElementBlock"])("a",{key:3,class:"dataTableAction activateExportSelection",title:e.translate("General_ExportThisReport"),href:"",style:{"margin-right":"3.5px"},onClick:t[2]||(t[2]=Object(X["withModifiers"])((function(){}),["prevent"]))},[Sd,Object(X["createElementVNode"])("span",Cd,Object(X["toDisplayString"])(e.translate("General_ExportThisReport")),1)],8,kd)),[[c,{reportTitle:e.reportTitle,requestParams:e.requestParams,apiMethod:e.apiMethodToRequestDataTable,reportFormats:e.reportFormats,maxFilterLimit:e.maxFilterLimit}]]):Object(X["createCommentVNode"])("",!0),e.showExportAsImageIcon?(Object(X["openBlock"])(),Object(X["createElementBlock"])("a",{key:4,class:"dataTableAction tableIcon",href:"",id:"dataTableFooterExportAsImageIcon",onClick:t[3]||(t[3]=Object(X["withModifiers"])((function(t){return e.showExportImage(t)}),["prevent"])),title:e.translate("General_ExportAsImage"),style:{"margin-right":"3.5px"}},Pd,8,Ed)):Object(X["createCommentVNode"])("",!0),e.showAnnotations?(Object(X["openBlock"])(),Object(X["createElementBlock"])("a",{key:5,class:"dataTableAction annotationView",href:"",title:e.translate("Annotations_Annotations"),onClick:t[4]||(t[4]=Object(X["withModifiers"])((function(){}),["prevent"])),style:{"margin-right":"3.5px"}},Nd,8,Td)):Object(X["createCommentVNode"])("",!0),e.showSearch?(Object(X["openBlock"])(),Object(X["createElementBlock"])("a",{key:6,class:"dropdown-button dataTableAction searchAction",href:"",title:e.translate("General_Search"),style:{"margin-right":"3.5px"},draggable:"false",onClick:t[5]||(t[5]=Object(X["withModifiers"])((function(){}),["prevent"]))},[xd,Object(X["createElementVNode"])("span",{class:"icon-close",draggable:"false",title:e.translate("CoreHome_CloseSearch")},null,8,Bd),Object(X["createElementVNode"])("input",{id:"widgetSearch_".concat(e.reportId,"_").concat(e.placement),title:e.translate("CoreHome_DataTableHowToSearch"),type:"text",class:"dataTableSearchInput"},null,8,Ad)],8,Id)):Object(X["createCommentVNode"])("",!0),(Object(X["openBlock"])(!0),Object(X["createElementBlock"])(X["Fragment"],null,Object(X["renderList"])(e.dataTableActions,(function(e){return Object(X["openBlock"])(),Object(X["createElementBlock"])("a",{key:e.id,class:Object(X["normalizeClass"])("dataTableAction ".concat(e.id)),href:"",onClick:t[6]||(t[6]=Object(X["withModifiers"])((function(){}),["prevent"])),title:e.title,style:{"margin-right":"3.5px"}},[/^icon-/.test(e.icon||"")?(Object(X["openBlock"])(),Object(X["createElementBlock"])("span",{key:0,class:Object(X["normalizeClass"])(e.icon)},null,2)):(Object(X["openBlock"])(),Object(X["createElementBlock"])("img",{key:1,width:"16",height:"16",title:e.title,src:e.icon},null,8,Ld))],10,Md)})),128)),Object(X["createElementVNode"])("ul",{id:"dropdownConfigure".concat(e.randomIdForDropdown),class:"dropdown-content tableConfiguration"},[e.showFlattenTable?(Object(X["openBlock"])(),Object(X["createElementBlock"])("li",_d,[Object(X["createElementVNode"])("div",{class:"configItem dataTableFlatten",innerHTML:e.$sanitize(e.flattenItemText)},null,8,Rd)])):Object(X["createCommentVNode"])("",!0),e.showDimensionsConfigItem?(Object(X["openBlock"])(),Object(X["createElementBlock"])("li",Hd,[Object(X["createElementVNode"])("div",{class:"configItem dataTableShowDimensions",innerHTML:e.$sanitize(e.showDimensionsText)},null,8,Ud)])):Object(X["createCommentVNode"])("",!0),e.showFlatConfigItem?(Object(X["openBlock"])(),Object(X["createElementBlock"])("li",$d,[Object(X["createElementVNode"])("div",{class:"configItem dataTableIncludeAggregateRows",innerHTML:e.$sanitize(e.includeAggregateRowsText)},null,8,qd)])):Object(X["createCommentVNode"])("",!0),e.showTotalsConfigItem?(Object(X["openBlock"])(),Object(X["createElementBlock"])("li",Wd,[Object(X["createElementVNode"])("div",{class:"configItem dataTableShowTotalsRow",innerHTML:e.$sanitize(e.keepTotalsRowText)},null,8,zd)])):Object(X["createCommentVNode"])("",!0),e.showExcludeLowPopulation?(Object(X["openBlock"])(),Object(X["createElementBlock"])("li",Gd,[Object(X["createElementVNode"])("div",{class:"configItem dataTableExcludeLowPopulation",innerHTML:e.$sanitize(e.excludeLowPopText)},null,8,Yd)])):Object(X["createCommentVNode"])("",!0),e.showPivotBySubtable?(Object(X["openBlock"])(),Object(X["createElementBlock"])("li",Jd,[Object(X["createElementVNode"])("div",{class:"configItem dataTablePivotBySubtable",innerHTML:e.$sanitize(e.pivotByText)},null,8,Kd)])):Object(X["createCommentVNode"])("",!0)],8,Fd),e.showPeriods?Object(X["withDirectives"])((Object(X["openBlock"])(),Object(X["createElementBlock"])("a",{key:7,class:"dropdown-button dataTableAction activatePeriodsSelection",href:"",onClick:t[7]||(t[7]=Object(X["withModifiers"])((function(){}),["prevent"])),title:e.translate("CoreHome_ChangePeriod"),"data-target":"dropdownPeriods".concat(e.randomIdForDropdown)},[Object(X["createElementVNode"])("div",null,[Xd,Object(X["createElementVNode"])("span",Zd,Object(X["toDisplayString"])(e.translations[e.clientSideParameters.period]||e.clientSideParameters.period),1)])],8,Qd)),[[l]]):Object(X["createCommentVNode"])("",!0),e.showPeriods?(Object(X["openBlock"])(),Object(X["createElementBlock"])("ul",{key:8,id:"dropdownPeriods".concat(e.randomIdForDropdown),class:"dropdown-content dataTablePeriods"},[(Object(X["openBlock"])(!0),Object(X["createElementBlock"])(X["Fragment"],null,Object(X["renderList"])(e.selectablePeriods,(function(t){return Object(X["openBlock"])(),Object(X["createElementBlock"])("li",{key:t},[Object(X["createElementVNode"])("a",{"data-period":t,class:Object(X["normalizeClass"])("tableIcon ".concat(e.clientSideParameters.period===t?"activeIcon":""))},[Object(X["createElementVNode"])("span",null,Object(X["toDisplayString"])(e.translations[t]||t),1)],10,tm)])})),128))],8,em)):Object(X["createCommentVNode"])("",!0)])):Object(X["createCommentVNode"])("",!0)}function rm(e){return lm(e)||im(e)||am(e)||om()}function om(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function am(e,t){if(e){if("string"===typeof e)return cm(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?cm(e,t):void 0}}function im(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function lm(e){if(Array.isArray(e))return cm(e)}function cm(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var sm=window,um=sm.$;function dm(e,t,n){if(/(%(.\$)?s+)/g.test(a(e))){var r=['<br /><span class="action">'];n&&r.push(n);var o=a.apply(void 0,[e].concat(r));return t&&(o+=" (".concat(a("CoreHome_Default"),")")),o+="</span>",o}return a(e)}function mm(e,t,n){return e?dm(t,!0):dm(n)}function pm(e){return!!e&&"0"!==e}var fm=Object(X["defineComponent"])({props:{showPeriods:Boolean,showFooter:Boolean,showFooterIcons:Boolean,showSearch:Boolean,showFlattenTable:Boolean,footerIcons:{type:Array,required:!0},viewDataTable:{type:String,required:!0},reportTitle:String,requestParams:{type:Object,required:!0},apiMethodToRequestDataTable:{type:String,required:!0},maxFilterLimit:{type:Number,required:!0},showExport:Boolean,showExportAsImageIcon:Boolean,showAnnotations:Boolean,reportId:{type:String,required:!0},dataTableActions:{type:Array,required:!0},clientSideParameters:{type:Object,required:!0},hasMultipleDimensions:Boolean,isDataTableEmpty:Boolean,showTotalsRow:Boolean,showExcludeLowPopulation:Boolean,showPivotBySubtable:Boolean,selectablePeriods:Array,translations:{type:Object,required:!0},pivotDimensionName:String,placement:{type:String,default:"footer"}},components:{Passthrough:cd},directives:{DropdownButton:Kn,ReportExport:_u},methods:{showExportImage:function(e){um(e.target).closest(".dataTable").find("div.jqplot-target").trigger("piwikExportAsImage")}},computed:{randomIdForDropdown:function(){return Math.floor(999999*Math.random())},allFooterIcons:function(){return this.footerIcons.reduce((function(e,t){return e.push.apply(e,rm(t.buttons)),e}),[])},activeFooterIcons:function(){var e=this,t=this.clientSideParameters,n=[this.viewDataTable];return 0===t.abandonedCarts||"0"===t.abandonedCarts?n.push("ecommerceOrder"):1!==t.abandonedCarts&&"1"!==t.abandonedCarts||n.push("ecommerceAbandonedCart"),n.map((function(t){return e.allFooterIcons.find((function(e){return e.id===t}))})).filter((function(e){return!!e}))},activeFooterIcon:function(){var e;return null===(e=this.activeFooterIcons[0])||void 0===e?void 0:e.icon},activeFooterIconIds:function(){return this.activeFooterIcons.map((function(e){return e.id}))},numIcons:function(){return this.allFooterIcons.length},hasFooterIconsToShow:function(){return!!this.activeFooterIcons.length&&this.numIcons>1},reportFormats:function(){var e={CSV:"CSV",TSV:"TSV (Excel)",XML:"XML",JSON:"Json",HTML:"HTML",RSS:"RSS"};return e},showDimensionsConfigItem:function(){return this.showFlattenTable&&"1"==="".concat(this.clientSideParameters.flat)&&this.hasMultipleDimensions},showFlatConfigItem:function(){return this.showFlattenTable&&"1"==="".concat(this.clientSideParameters.flat)},showTotalsConfigItem:function(){return!this.isDataTableEmpty&&this.showTotalsRow},hasConfigItems:function(){return this.showFlattenTable||this.showDimensionsConfigItem||this.showFlatConfigItem||this.showTotalsConfigItem||this.showExcludeLowPopulation||this.showPivotBySubtable},flattenItemText:function(){var e=this.clientSideParameters;return mm(pm(e.flat),"CoreHome_UnFlattenDataTable","CoreHome_FlattenDataTable")},keepTotalsRowText:function(){var e=this.clientSideParameters;return mm(pm(e.keep_totals_row),"CoreHome_RemoveTotalsRowDataTable","CoreHome_AddTotalsRowDataTable")},includeAggregateRowsText:function(){var e=this.clientSideParameters;return mm(pm(e.include_aggregate_rows),"CoreHome_DataTableExcludeAggregateRows","CoreHome_DataTableIncludeAggregateRows")},showDimensionsText:function(){var e=this.clientSideParameters;return mm(pm(e.show_dimensions),"CoreHome_DataTableCombineDimensions","CoreHome_DataTableShowDimensions")},pivotByText:function(){var e=this.clientSideParameters;return pm(e.pivotBy)?dm("CoreHome_UndoPivotBySubtable",!0):dm("CoreHome_PivotBySubtable",!1,this.pivotDimensionName)},excludeLowPopText:function(){var e=this.clientSideParameters;return mm(pm(e.enable_filter_excludelowpop),"CoreHome_IncludeRowsWithLowPopulation","CoreHome_ExcludeRowsWithLowPopulation")},isAnyConfigureIconHighlighted:function(){var e=this.clientSideParameters;return pm(e.flat)||pm(e.keep_totals_row)||pm(e.include_aggregate_rows)||pm(e.show_dimensions)||pm(e.pivotBy)||pm(e.enable_filter_excludelowpop)},isTableView:function(){return"table"===this.viewDataTable||"tableAllColumns"===this.viewDataTable||"tableGoals"===this.viewDataTable}}});fm.render=nm;var hm=fm,bm={key:0,class:"title",style:{cursor:"pointer"},ref:"expander"},vm=Object(X["createElementVNode"])("span",{class:"icon-warning"},null,-1),gm={key:1,class:"title",href:"?module=CoreUpdater&action=newVersionAvailable",style:{cursor:"pointer"},ref:"expander"},ym=Object(X["createElementVNode"])("span",{class:"icon-warning"},null,-1),Om=["innerHTML"],jm=["href"],wm={id:"updateCheckLinkContainer"},km={class:"dropdown positionInViewport"},Sm=["innerHTML"],Cm=["innerHTML"];function Em(e,t,n,r,o,a){var i=Object(X["resolveComponent"])("Passthrough"),l=Object(X["resolveDirective"])("expand-on-hover");return Object(X["withDirectives"])((Object(X["openBlock"])(),Object(X["createElementBlock"])("div",{id:"header_message",class:Object(X["normalizeClass"])(["piwikSelector",{header_info:!e.latestVersionAvailable||e.lastUpdateCheckFailed,update_available:e.latestVersionAvailable}])},[e.latestVersionAvailable&&!e.isPiwikDemo?(Object(X["openBlock"])(),Object(X["createBlock"])(i,{key:0},{default:Object(X["withCtx"])((function(){return[e.isMultiServerEnvironment?(Object(X["openBlock"])(),Object(X["createElementBlock"])("span",bm,[Object(X["createTextVNode"])(Object(X["toDisplayString"])(e.translate("General_NewUpdatePiwikX",e.latestVersionAvailable))+" ",1),vm],512)):(Object(X["openBlock"])(),Object(X["createElementBlock"])("a",gm,[Object(X["createTextVNode"])(Object(X["toDisplayString"])(e.translate("General_NewUpdatePiwikX",e.latestVersionAvailable))+" ",1),ym],512))]})),_:1})):e.isSuperUser&&(e.isAdminArea||e.lastUpdateCheckFailed)?(Object(X["openBlock"])(),Object(X["createBlock"])(i,{key:1},{default:Object(X["withCtx"])((function(){return[e.isInternetEnabled?(Object(X["openBlock"])(),Object(X["createElementBlock"])("a",{key:0,class:"title",innerHTML:e.$sanitize(e.updateCheck)},null,8,Om)):(Object(X["openBlock"])(),Object(X["createElementBlock"])("a",{key:1,class:"title",href:e.externalRawLink("https://matomo.org/changelog/"),target:"_blank",rel:"noreferrer noopener"},[Object(X["createElementVNode"])("span",wm,Object(X["toDisplayString"])(e.translate("CoreHome_SeeAvailableVersions")),1)],8,jm))]})),_:1})):Object(X["createCommentVNode"])("",!0),Object(X["createElementVNode"])("div",km,[e.latestVersionAvailable&&e.isSuperUser?(Object(X["openBlock"])(),Object(X["createElementBlock"])("span",{key:0,innerHTML:e.$sanitize(e.updateNowText)},null,8,Sm)):e.latestVersionAvailable&&!e.isPiwikDemo&&e.hasSomeViewAccess&&!e.isAnonymous?(Object(X["openBlock"])(),Object(X["createElementBlock"])("span",{key:1,innerHTML:e.$sanitize(e.updateAvailableText)},null,8,Cm)):Object(X["createCommentVNode"])("",!0),Object(X["createTextVNode"])(" "+Object(X["toDisplayString"])(e.translate("General_YouAreCurrentlyUsing",e.piwikVersion)),1)])],2)),[[l,{expander:"expander"}]])}var Dm=Object(X["defineComponent"])({props:{isMultiServerEnvironment:Boolean,lastUpdateCheckFailed:Boolean,latestVersionAvailable:String,isPiwikDemo:Boolean,isSuperUser:Boolean,isAdminArea:Boolean,isInternetEnabled:Boolean,updateCheck:String,isAnonymous:Boolean,hasSomeViewAccess:Boolean,contactEmail:String,piwikVersion:String},components:{Passthrough:cd},directives:{ExpandOnHover:qn},computed:{updateNowText:function(){var e="";if(this.isMultiServerEnvironment){var t=Et("https://builds.matomo.org/matomo-".concat(this.latestVersionAvailable,".zip"));e=a("CoreHome_OneClickUpdateNotPossibleAsMultiServerEnvironment",'<a rel="noreferrer noopener" href="'.concat(t,'">builds.matomo.org</a>'))}else e=a("General_PiwikXIsAvailablePleaseUpdateNow",this.latestVersionAvailable||"",'<br /><a href="index.php?module=CoreUpdater&action=newVersionAvailable">',"</a>",Dt("https://matomo.org/changelog/"),"</a>");return"".concat(e,"<br/>")},updateAvailableText:function(){var e=a("General_NewUpdatePiwikX",this.latestVersionAvailable||""),t=Dt("https://matomo.org/")+"Matomo</a>",n=Dt("https://matomo.org/changelog/"),r=a("General_PiwikXIsAvailablePleaseNotifyPiwikAdmin","".concat(t," ").concat(n).concat(this.latestVersionAvailable,"</a>"),'<a href="mailto:'.concat(this.contactEmail,"?subject=").concat(encodeURIComponent(e),'">'),"</a>");return"".concat(r,"<br />")}}});Dm.render=Em;var Pm=Dm;function Tm(e,t){return Bm(e)||xm(e,t)||Nm(e,t)||Vm()}function Vm(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function Nm(e,t){if(e){if("string"===typeof e)return Im(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Im(e,t):void 0}}function Im(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function xm(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,a=[],i=!0,l=!1;try{for(n=n.call(e);!(i=(r=n.next()).done);i=!0)if(a.push(r.value),t&&a.length===t)break}catch(c){l=!0,o=c}finally{try{i||null==n["return"]||n["return"]()}finally{if(l)throw o}}return a}}function Bm(e){if(Array.isArray(e))return e}var Am={id:"mobile-left-menu",class:"sidenav hide-on-large-only"},Mm={class:"collapsible collapsible-accordion"},Lm={class:"collapsible-header"},Fm={class:"collapsible-body"},_m=["title","href"];function Rm(e,t,n,r,o,a){var i=Object(X["resolveDirective"])("side-nav");return Object(X["openBlock"])(),Object(X["createElementBlock"])("ul",Am,[(Object(X["openBlock"])(!0),Object(X["createElementBlock"])(X["Fragment"],null,Object(X["renderList"])(e.menuWithSubmenuItems,(function(t,n){return Object(X["openBlock"])(),Object(X["createElementBlock"])("li",{class:"no-padding",key:n},[Object(X["withDirectives"])(Object(X["createElementVNode"])("ul",Mm,[Object(X["createElementVNode"])("li",null,[Object(X["createElementVNode"])("a",Lm,[Object(X["createTextVNode"])(Object(X["toDisplayString"])(e.translateOrDefault(n)),1),Object(X["createElementVNode"])("i",{class:Object(X["normalizeClass"])(t._icon||"icon-chevron-down")},null,2)]),Object(X["createElementVNode"])("div",Fm,[Object(X["createElementVNode"])("ul",null,[(Object(X["openBlock"])(!0),Object(X["createElementBlock"])(X["Fragment"],null,Object(X["renderList"])(Object.entries(t).filter((function(e){var t=Tm(e,1),n=t[0];return"_"!==n[0]})),(function(t){var n=Tm(t,2),r=n[0],o=n[1];return Object(X["openBlock"])(),Object(X["createElementBlock"])("li",{key:r},[Object(X["createElementVNode"])("a",{title:o._tooltip?e.translateIfNecessary(o._tooltip):"",target:"_self",href:e.getMenuUrl(o._url)},Object(X["toDisplayString"])(e.translateIfNecessary(r)),9,_m)])})),128))])])])],512),[[i,{activator:e.activateLeftMenu}]])])})),128))])}function Hm(e,t){return zm(e)||Wm(e,t)||$m(e,t)||Um()}function Um(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function $m(e,t){if(e){if("string"===typeof e)return qm(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?qm(e,t):void 0}}function qm(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Wm(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,a=[],i=!0,l=!1;try{for(n=n.call(e);!(i=(r=n.next()).done);i=!0)if(a.push(r.value),t&&a.length===t)break}catch(c){l=!0,o=c}finally{try{i||null==n["return"]||n["return"]()}finally{if(l)throw o}}return a}}function zm(e){if(Array.isArray(e))return e}var Gm=window,Ym=Gm.$,Jm=Object(X["defineComponent"])({props:{menu:{type:Object,required:!0}},directives:{SideNav:ir},methods:{getMenuUrl:function(e){return"?".concat(De.stringify(Object.assign(Object.assign({},De.urlParsed.value),e)))},translateIfNecessary:function(e){return e.includes("_")?a(e):e}},computed:{menuWithSubmenuItems:function(){var e=this.menu||{};return Object.fromEntries(Object.entries(e).filter((function(e){var t=Hm(e,2),n=t[1],r=Object.entries(n).filter((function(e){var t=Hm(e,1),n=t[0];return"_"!==n[0]}));return Object.keys(r).length})))},activateLeftMenu:function(){return Ym("nav .activateLeftMenu")[0]}}});Jm.render=Rm;var Km=Jm,Qm=window,Xm=Qm.$; 291 291 /*! 292 292 * Matomo - free/libre analytics platform -
matomo/trunk/app/plugins/CorePluginsAdmin/CorePluginsAdmin.php
r3103858 r3309522 146 146 $translations[] = 'CorePluginsAdmin_PluginFreeTrialStartedAccountCreatedMessage'; 147 147 $translations[] = 'CorePluginsAdmin_PluginFreeTrialStartedAccountCreatedTitle'; 148 $translations[] = 'General_Confirm'; 149 $translations[] = 'General_Cancel'; 150 $translations[] = 'UsersManager_ConfirmThisChange'; 151 $translations[] = 'UsersManager_ConfirmWithPassword'; 152 $translations[] = 'UsersManager_YourCurrentPassword'; 148 153 } 149 154 } -
matomo/trunk/app/plugins/CoreVisualizations/JqplotDataGenerator/Chart.php
r3221935 r3309522 20 20 public $properties; 21 21 // the data kept here conforms to the jqplot data layout 22 // @see http ://www.jqplot.com/docs/files/jqPlotOptions-txt.html22 // @see https://www.jqplot.com/docs/files/jqPlotOptions-txt.html 23 23 protected $series = []; 24 24 protected $data = []; … … 132 132 ProxyHttp::overrideCacheControlHeaders(); 133 133 $this->checkDataStateAvailableForAllTicks(); 134 // See http ://www.jqplot.com/docs/files/jqPlotOptions-txt.html134 // See https://www.jqplot.com/docs/files/jqPlotOptions-txt.html 135 135 $data = ['params' => ['axes' => &$this->axes, 'series' => &$this->series], 'data' => &$this->data, 'dataStates' => &$this->dataStates]; 136 136 return $data; -
matomo/trunk/app/plugins/CustomDimensions/Dimension/Extraction.php
r3221935 r3309522 89 89 $regex = $this->formatPattern(); 90 90 if (preg_match($regex, (string) $value, $matches)) { 91 // we could improve performance here I reckon by combining all patterns of all configs see eg http ://nikic.github.io/2014/02/18/Fast-request-routing-using-regular-expressions.html91 // we could improve performance here I reckon by combining all patterns of all configs see eg https://nikic.github.io/2014/02/18/Fast-request-routing-using-regular-expressions.html 92 92 if (array_key_exists(1, $matches)) { 93 93 return $matches[1]; -
matomo/trunk/app/plugins/CustomDimensions/GetCustomDimension.php
r3221935 r3309522 30 30 * This class defines a new report. 31 31 * 32 * See {@link http ://developer.piwik.org/api-reference/Piwik/Plugin/Report} for more information.32 * See {@link https://developer.matomo.org/api-reference/Piwik/Plugin/Report} for more information. 33 33 */ 34 34 class GetCustomDimension extends Report -
matomo/trunk/app/plugins/CustomDimensions/Menu.php
r3103858 r3309522 16 16 * This class allows you to add, remove or rename menu items. 17 17 * To configure a menu (such as Admin Menu, Reporting Menu, User Menu...) simply call the corresponding methods as 18 * described in the API-Reference http ://developer.piwik.org/api-reference/Piwik/Menu/MenuAbstract18 * described in the API-Reference https://developer.matomo.org/api-reference/Piwik/Menu/MenuAbstract 19 19 */ 20 20 class Menu extends \Piwik\Plugin\Menu -
matomo/trunk/app/plugins/DBStats/API.php
r3221935 r3309522 51 51 * Gets general database info that is not specific to any table. 52 52 * 53 * @return array See http ://dev.mysql.com/doc/refman/5.1/en/show-status.html .53 * @return array See https://dev.mysql.com/doc/refman/5.1/en/show-status.html . 54 54 */ 55 55 public function getDBStatus() -
matomo/trunk/app/plugins/DBStats/MySQLMetadataProvider.php
r3221935 r3309522 43 43 * 44 44 * @throws Exception 45 * @return array See http ://dev.mysql.com/doc/refman/5.1/en/show-status.html .45 * @return array See https://dev.mysql.com/doc/refman/5.1/en/show-status.html . 46 46 */ 47 47 public function getDBStatus() … … 54 54 * @param string $table The name of the table. Should not be prefixed (ie, 'log_visit' is 55 55 * correct, 'matomo_log_visit' is not). 56 * @return array See http ://dev.mysql.com/doc/refman/5.1/en/show-table-status.html .56 * @return array See https://dev.mysql.com/doc/refman/5.1/en/show-table-status.html . 57 57 */ 58 58 public function getTableStatus($table) … … 72 72 * @param string $matchingRegex Regex used to filter out tables whose name doesn't 73 73 * match it. 74 * @return array The table information. See http ://dev.mysql.com/doc/refman/5.5/en/show-table-status.html74 * @return array The table information. See https://dev.mysql.com/doc/refman/5.5/en/show-table-status.html 75 75 * for specifics. 76 76 */ … … 100 100 * Returns table statuses for every log table. 101 101 * 102 * @return array An array of status arrays. See http ://dev.mysql.com/doc/refman/5.5/en/show-table-status.html.102 * @return array An array of status arrays. See https://dev.mysql.com/doc/refman/5.5/en/show-table-status.html. 103 103 */ 104 104 public function getAllLogTableStatus() … … 110 110 * Returns table statuses for every numeric archive table. 111 111 * 112 * @return array An array of status arrays. See http ://dev.mysql.com/doc/refman/5.5/en/show-table-status.html.112 * @return array An array of status arrays. See https://dev.mysql.com/doc/refman/5.5/en/show-table-status.html. 113 113 */ 114 114 public function getAllNumericArchiveStatus() … … 120 120 * Returns table statuses for every blob archive table. 121 121 * 122 * @return array An array of status arrays. See http ://dev.mysql.com/doc/refman/5.5/en/show-table-status.html.122 * @return array An array of status arrays. See https://dev.mysql.com/doc/refman/5.5/en/show-table-status.html. 123 123 */ 124 124 public function getAllBlobArchiveStatus() … … 130 130 * Returns table statuses for every admin table. 131 131 * 132 * @return array An array of status arrays. See http ://dev.mysql.com/doc/refman/5.5/en/show-table-status.html.132 * @return array An array of status arrays. See https://dev.mysql.com/doc/refman/5.5/en/show-table-status.html. 133 133 */ 134 134 public function getAllAdminTableStatus() -
matomo/trunk/app/plugins/Dashboard/API.php
r3221935 r3309522 12 12 use Piwik\Piwik; 13 13 /** 14 * This API is the <a href='http ://matomo.org/docs/analytics-api/reference/' rel='noreferrer' target='_blank'>Dashboard API</a>: it gives information about dashboards.14 * This API is the <a href='https://matomo.org/docs/analytics-api/reference/' rel='noreferrer' target='_blank'>Dashboard API</a>: it gives information about dashboards. 15 15 * 16 16 * @method static \Piwik\Plugins\Dashboard\API getInstance() -
matomo/trunk/app/plugins/Diagnostics/Diagnostic/DbAdapterCheck.php
r3103858 r3309522 68 68 } 69 69 $message .= $this->translator->translate('Installation_RestartWebServer') . '<br/><br/>'; 70 $message .= $this->translator->translate('Installation_SystemCheckPhpPdoAndMysqli', array('<a style="color:red" href="http ://php.net/pdo">', '</a>', '<a style="color:red" href="http://php.net/mysqli">', '</a>'));70 $message .= $this->translator->translate('Installation_SystemCheckPhpPdoAndMysqli', array('<a style="color:red" href="https://php.net/pdo">', '</a>', '<a style="color:red" href="https://php.net/mysqli">', '</a>')); 71 71 $message .= '</p>'; 72 72 return $message; -
matomo/trunk/app/plugins/Diagnostics/Diagnostic/TimezoneCheck.php
r3103858 r3309522 30 30 return array(\Piwik\Plugins\Diagnostics\Diagnostic\DiagnosticResult::singleResult($label, \Piwik\Plugins\Diagnostics\Diagnostic\DiagnosticResult::STATUS_OK)); 31 31 } 32 $comment = sprintf('%s<br />%s.', $this->translator->translate('SitesManager_AdvancedTimezoneSupportNotFound'), '<a href="http ://php.net/manual/en/datetime.installation.php" rel="noreferrer noopener" target="_blank">Timezone PHP documentation</a>');32 $comment = sprintf('%s<br />%s.', $this->translator->translate('SitesManager_AdvancedTimezoneSupportNotFound'), '<a href="https://php.net/manual/en/datetime.installation.php" rel="noreferrer noopener" target="_blank">Timezone PHP documentation</a>'); 33 33 return array(\Piwik\Plugins\Diagnostics\Diagnostic\DiagnosticResult::singleResult($label, \Piwik\Plugins\Diagnostics\Diagnostic\DiagnosticResult::STATUS_WARNING, $comment)); 34 34 } -
matomo/trunk/app/plugins/Diagnostics/Menu.php
r3103858 r3309522 14 14 * This class allows you to add, remove or rename menu items. 15 15 * To configure a menu (such as Admin Menu, Reporting Menu, User Menu...) simply call the corresponding methods as 16 * described in the API-Reference http ://developer.piwik.org/api-reference/Piwik/Menu/MenuAbstract16 * described in the API-Reference https://developer.matomo.org/api-reference/Piwik/Menu/MenuAbstract 17 17 */ 18 18 class Menu extends \Piwik\Plugin\Menu -
matomo/trunk/app/plugins/Events/API.php
r3221935 r3309522 16 16 * The Events API lets you request reports about your users' Custom Events. 17 17 * 18 * Events are tracked using the Javascript Tracker trackEvent() function, or using the [Tracking HTTP API](http ://developer.matomo.org/api-reference/tracking-api).18 * Events are tracked using the Javascript Tracker trackEvent() function, or using the [Tracking HTTP API](https://developer.matomo.org/api-reference/tracking-api). 19 19 * 20 20 * <br/>An event is defined by an event category (Videos, Music, Games...), -
matomo/trunk/app/plugins/GeoIp2/LocationProvider/GeoIp2.php
r3221935 r3309522 136 136 public static function getRegionNameFromCodes($countryCode, $regionCode) 137 137 { 138 $regionNames = self::getRegion Names();138 $regionNames = self::getRegions(); 139 139 $countryCode = strtoupper($countryCode); 140 140 $regionCode = strtoupper($regionCode); 141 if (isset($regionNames[$countryCode][$regionCode] )) {142 return $regionNames[$countryCode][$regionCode] ;141 if (isset($regionNames[$countryCode][$regionCode]['name'])) { 142 return $regionNames[$countryCode][$regionCode]['name']; 143 143 } else { 144 144 return Piwik::translate('General_Unknown'); -
matomo/trunk/app/plugins/GeoIp2/data/regionMapping.php
r3031513 r3309522 478 478 // Governor's Harbour [is now roughly Central Eleuthera] 479 479 '28' => 'HT', 480 // Green Turtle Cay - mapped to GT by wikidata, but removed in 2010 - now HT according to geonames (http ://www.geonames.org/maps/google_26.758_-77.325.html)480 // Green Turtle Cay - mapped to GT by wikidata, but removed in 2010 - now HT according to geonames (https://www.geonames.org/maps/google_26.758_-77.325.html) 481 481 '29' => 'EG', 482 482 // High Rock [is now roughly East Grand Bahama] -
matomo/trunk/app/plugins/Goals/API.php
r3258786 r3309522 37 37 * or list existing Goals for one or several websites via "getGoals" 38 38 * 39 * If you are <a href='http ://matomo.org/docs/ecommerce-analytics/' target='_blank'>tracking Ecommerce orders and products</a> on your site, the functions "getItemsSku", "getItemsName" and "getItemsCategory"39 * If you are <a href='https://matomo.org/docs/ecommerce-analytics/' target='_blank'>tracking Ecommerce orders and products</a> on your site, the functions "getItemsSku", "getItemsName" and "getItemsCategory" 40 40 * will return the list of products purchased on your site, either grouped by Product SKU, Product Name or Product Category. For each name, SKU or category, the following 41 41 * metrics are returned: Total revenue, Total quantity, average price, average quantity, number of orders (or abandoned carts) containing this product, number of visits on the Product page, … … 49 49 * or &idGoal=ecommerceOrder to get metrics about Ecommerce orders (number of orders, visits with an order, subtotal, tax, shipping, discount, revenue, items ordered) 50 50 * 51 * See also the documentation about <a href='http ://matomo.org/docs/tracking-goals-web-analytics/' rel='noreferrer' target='_blank'>Tracking Goals</a> in Matomo.51 * See also the documentation about <a href='https://matomo.org/docs/tracking-goals-web-analytics/' rel='noreferrer' target='_blank'>Tracking Goals</a> in Matomo. 52 52 * 53 53 * @method static \Piwik\Plugins\Goals\API getInstance() -
matomo/trunk/app/plugins/Live/API.php
r3258786 r3309522 24 24 require_once PIWIK_INCLUDE_PATH . '/plugins/UserCountry/functions.php'; 25 25 /** 26 * The Live! API lets you access complete visit level information about your visitors. Combined with the power of <a href='http ://matomo.org/docs/analytics-api/segmentation/' target='_blank'>Segmentation</a>,26 * The Live! API lets you access complete visit level information about your visitors. Combined with the power of <a href='https://matomo.org/docs/analytics-api/segmentation/' target='_blank'>Segmentation</a>, 27 27 * you will be able to request visits filtered by any criteria. 28 28 * … … 36 36 * it easier for API users... and more! 37 37 * 38 * With the parameter <a href='http ://matomo.org/docs/analytics-api/segmentation/' rel='noreferrer' target='_blank'>'&segment='</a> you can filter the38 * With the parameter <a href='https://matomo.org/docs/analytics-api/segmentation/' rel='noreferrer' target='_blank'>'&segment='</a> you can filter the 39 39 * returned visits by any criteria (visitor IP, visitor ID, country, keyword used, time of day, etc.). 40 40 * 41 41 * The method "getCounters" is used to return a simple counter: visits, number of actions, number of converted visits, in the last N minutes. 42 42 * 43 * See also the documentation about <a href='http ://matomo.org/docs/real-time/' rel='noreferrer' target='_blank'>Real time widget and visitor level reports</a> in Matomo.43 * See also the documentation about <a href='https://matomo.org/docs/real-time/' rel='noreferrer' target='_blank'>Real time widget and visitor level reports</a> in Matomo. 44 44 * You may also be interested in steps to <a href='https://matomo.org/faq/how-to/faq_24536/'>export your RAW data to a data warehouse</a>. 45 45 * @method static \Piwik\Plugins\Live\API getInstance() … … 320 320 $visitorDetailsArray['actionDetails'] = array(); 321 321 if (!$doNotFetchActions) { 322 $bulkFetchedActions = isset($actionsByVisitId[$visitorDetailsArray['idVisit']]) ? $actionsByVisitId[$visitorDetailsArray['idVisit']] : array(); 322 $bulkFetchedActions = []; 323 if (isset($actionsByVisitId[$visitorDetailsArray['idVisit']])) { 324 $bulkFetchedActions = $actionsByVisitId[$visitorDetailsArray['idVisit']]; 325 unset($actionsByVisitId[$visitorDetailsArray['idVisit']]); 326 } 323 327 $visitorDetailsArray = \Piwik\Plugins\Live\Visitor::enrichVisitorArrayWithActions($visitorDetailsArray, $bulkFetchedActions); 324 328 } -
matomo/trunk/app/plugins/Live/templates/index.twig
r3031513 r3309522 2 2 vue-entry="Live.LivePage" 3 3 disable-link="{{ (disableLink == 1)|default(null)|json_encode }}" 4 visitors="{{ visitors|default(null)| json_encode }}"4 visitors="{{ visitors|default(null)|replace({'{{': '{{'})|json_encode }}" 5 5 initial-total-visitors="{{ initialTotalVisitors|default(null)|json_encode }}" 6 6 live-refresh-after-ms="{{ liveRefreshAfterMs|default(null)|json_encode }}" -
matomo/trunk/app/plugins/Login/Login.php
r3221935 r3309522 230 230 $login = StaticContainer::get(\Piwik\Auth::class)->getLogin(); 231 231 if (empty($login) || $login == 'anonymous') { 232 $login = Common::getRequestVar('form_login', \false);232 $login = \Piwik\Request::fromRequest()->getStringParameter('form_login', ''); 233 233 if (Piwik::getAction() === 'logme') { 234 $login = Common::getRequestVar('login', $login);234 $login = \Piwik\Request::fromRequest()->getStringParameter('login', $login); 235 235 } 236 236 } -
matomo/trunk/app/plugins/Marketplace/Api/Service.php
r3221935 r3309522 131 131 } 132 132 /** 133 * Get the domain that is used in order to access the Marketplace. Eg http ://plugins.piwik.org133 * Get the domain that is used in order to access the Marketplace. Eg https://plugins.matomo.org 134 134 * @return string 135 135 */ -
matomo/trunk/app/plugins/Marketplace/Emails/RequestTrialNotificationEmail.php
r3103858 r3309522 5 5 * 6 6 * @link https://matomo.org 7 * @license http ://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later7 * @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later 8 8 */ 9 9 declare (strict_types=1); -
matomo/trunk/app/plugins/Marketplace/PluginTrial/Notification.php
r3221935 r3309522 5 5 * 6 6 * @link https://matomo.org 7 * @license http ://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later7 * @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later 8 8 */ 9 9 namespace Piwik\Plugins\Marketplace\PluginTrial; -
matomo/trunk/app/plugins/Marketplace/PluginTrial/Request.php
r3103858 r3309522 5 5 * 6 6 * @link https://matomo.org 7 * @license http ://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later7 * @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later 8 8 */ 9 9 namespace Piwik\Plugins\Marketplace\PluginTrial; -
matomo/trunk/app/plugins/Marketplace/PluginTrial/Service.php
r3221935 r3309522 5 5 * 6 6 * @link https://matomo.org 7 * @license http ://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later7 * @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later 8 8 */ 9 9 namespace Piwik\Plugins\Marketplace\PluginTrial; -
matomo/trunk/app/plugins/Marketplace/PluginTrial/Storage.php
r3221935 r3309522 5 5 * 6 6 * @link https://matomo.org 7 * @license http ://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later7 * @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later 8 8 */ 9 9 namespace Piwik\Plugins\Marketplace\PluginTrial; -
matomo/trunk/app/plugins/PagePerformance/JqplotDataGenerator/Chart.php
r3103858 r3309522 16 16 { 17 17 // the data kept here conforms to the jqplot data layout 18 // @see http ://www.jqplot.com/docs/files/jqPlotOptions-txt.html18 // @see https://www.jqplot.com/docs/files/jqPlotOptions-txt.html 19 19 protected $series = []; 20 20 protected $data = []; … … 76 76 { 77 77 ProxyHttp::overrideCacheControlHeaders(); 78 // See http ://www.jqplot.com/docs/files/jqPlotOptions-txt.html78 // See https://www.jqplot.com/docs/files/jqPlotOptions-txt.html 79 79 $data = ['params' => ['axes' => &$this->axes, 'series' => &$this->series], 'data' => &$this->data]; 80 80 return $data; -
matomo/trunk/app/plugins/Referrers/Columns/Base.php
r3221935 r3309522 310 310 } 311 311 } 312 if (empty($campaignName) ) {312 if (empty($campaignName) || !is_string($campaignName)) { 313 313 return \false; 314 314 } -
matomo/trunk/app/plugins/Referrers/SearchEngine.php
r3221935 r3309522 155 155 * 156 156 * The function returns false when a keyword couldn't be found. 157 * eg. if the url is "http ://www.google.com/partners.html" this will return false,157 * eg. if the url is "https://www.google.com/partners.html" this will return false, 158 158 * as the google keyword parameter couldn't be found. 159 159 * … … 414 414 * @param string $url Domain name, e.g., search.piwik.org 415 415 * @param string $keyword Keyword, e.g., web+analytics 416 * @return string URL, e.g., http ://search.piwik.org/q=web+analytics416 * @return string URL, e.g., https://search.matomo.org/q=web+analytics 417 417 */ 418 418 public function getBackLinkFromUrlAndKeyword($url, $keyword) -
matomo/trunk/app/plugins/ScheduledReports/API.php
r3258786 r3309522 42 42 * You can also get the list of all existing reports via "getReports", create new reports via "addReport", 43 43 * or manage existing reports with "updateReport" and "deleteReport". 44 * See also the documentation about <a href='http ://matomo.org/docs/email-reports/' rel='noreferrer' target='_blank'>Scheduled Email reports</a> in Matomo.44 * See also the documentation about <a href='https://matomo.org/docs/email-reports/' rel='noreferrer' target='_blank'>Scheduled Email reports</a> in Matomo. 45 45 * 46 46 * @method static \Piwik\Plugins\ScheduledReports\API getInstance() … … 758 758 $segment = APISegmentEditor::getInstance()->get($idSegment); 759 759 if ($segment) { 760 // segment name is returned sanitized 761 $segment['name'] = Common::unsanitizeInputValue($segment['name']); 760 762 return $segment; 761 763 } -
matomo/trunk/app/plugins/ScheduledReports/Controller.php
r3258786 r3309522 101 101 $allSegments = SegmentEditor::getAllSegmentsForSite($this->idSite); 102 102 foreach ($allSegments as $savedSegment) { 103 $savedSegmentsById[$savedSegment['idsegment']] = $savedSegment['name'];103 $savedSegmentsById[$savedSegment['idsegment']] = Common::unsanitizeInputValue($savedSegment['name']); 104 104 } 105 105 $view->savedSegmentsById = $savedSegmentsById; -
matomo/trunk/app/plugins/ScheduledReports/ScheduledReports.php
r3221935 r3309522 162 162 } 163 163 } 164 // based on http ://www.php.net/manual/en/filter.filters.validate.php -> FILTER_VALIDATE_BOOLEAN164 // based on https://www.php.net/manual/en/filter.filters.validate.php -> FILTER_VALIDATE_BOOLEAN 165 165 private static function valueIsTrue($value) 166 166 { -
matomo/trunk/app/plugins/SitesManager/API.php
r3258786 r3309522 14 14 use Piwik\Access; 15 15 use Piwik\Common; 16 use Piwik\Concurrency\Lock; 17 use Piwik\Concurrency\LockBackend; 16 18 use Piwik\Config; 17 19 use Piwik\Container\StaticContainer; … … 55 57 * "setGlobalExcludedQueryParameters" will set the list of URL parameters to remove from URLs for all websites. 56 58 * The existing values can be fetched via "getExcludedIpsGlobal" and "getExcludedQueryParametersGlobal". 57 * See also the documentation about <a href='http ://matomo.org/docs/manage-websites/' rel='noreferrer' target='_blank'>Managing Websites</a> in Matomo.59 * See also the documentation about <a href='https://matomo.org/docs/manage-websites/' rel='noreferrer' target='_blank'>Managing Websites</a> in Matomo. 58 60 * @method static \Piwik\Plugins\SitesManager\API getInstance() 59 61 */ … … 666 668 * Delete a website from the database, given its Id. The method deletes the actual site as well as some associated 667 669 * data. However, it does not delete any logs or archives that belong to this website. You can delete logs and 668 * archives for a site manually as described in this FAQ: http ://matomo.org/faq/how-to/faq_73/ .670 * archives for a site manually as described in this FAQ: https://matomo.org/faq/how-to/faq_73/ . 669 671 * 670 672 * Requires Super User access. … … 681 683 $this->confirmCurrentUserPassword($passwordConfirmation); 682 684 } 683 $idSites = $this->getSitesId(); 684 if (!in_array($idSite, $idSites)) { 685 throw new Exception("website id = {$idSite} not found"); 686 } 687 $nbSites = count($idSites); 688 if ($nbSites == 1) { 689 throw new Exception($this->translator->translate("SitesManager_ExceptionDeleteSite")); 690 } 691 $this->getModel()->deleteSite($idSite); 692 $coreModel = new CoreModel(); 693 $coreModel->deleteInvalidationsForSites([$idSite]); 694 /** 695 * Triggered after a site has been deleted. 696 * 697 * Plugins can use this event to remove site specific values or settings, such as removing all 698 * goals that belong to a specific website. If you store any data related to a website you 699 * should clean up that information here. 700 * 701 * @param int $idSite The ID of the site being deleted. 702 */ 703 Piwik::postEvent('SitesManager.deleteSite.end', [$idSite]); 685 $lock = new Lock(StaticContainer::get(LockBackend::class), 'SitesManager.deleteSite'); 686 // we use the same lock id for all requests to ensure only one site is removed at a time and the check for one remaining site can't be bypassed 687 $lock->execute('delete', function () use($idSite) { 688 $idSites = $this->getSitesId(); 689 if (!in_array($idSite, $idSites)) { 690 throw new Exception("website id = {$idSite} not found"); 691 } 692 $nbSites = count($idSites); 693 if ($nbSites == 1) { 694 throw new Exception($this->translator->translate("SitesManager_ExceptionDeleteSite")); 695 } 696 $this->getModel()->deleteSite($idSite); 697 $coreModel = new CoreModel(); 698 $coreModel->deleteInvalidationsForSites([$idSite]); 699 /** 700 * Triggered after a site has been deleted. 701 * 702 * Plugins can use this event to remove site specific values or settings, such as removing all 703 * goals that belong to a specific website. If you store any data related to a website you 704 * should clean up that information here. 705 * 706 * @param int $idSite The ID of the site being deleted. 707 */ 708 Piwik::postEvent('SitesManager.deleteSite.end', [$idSite]); 709 }); 704 710 } 705 711 private function checkValidTimezone($timezone) -
matomo/trunk/app/plugins/UsersManager/API.php
r3250095 r3309522 47 47 * or you can list all users and websites for a given permission via "getUsersSitesFromAccess". Permissions are set and updated 48 48 * via the method "setUserAccess". 49 * See also the documentation about <a href='http ://matomo.org/docs/manage-users/' rel='noreferrer' target='_blank'>Managing Users</a> in Matomo.49 * See also the documentation about <a href='https://matomo.org/docs/manage-users/' rel='noreferrer' target='_blank'>Managing Users</a> in Matomo. 50 50 */ 51 51 class API extends \Piwik\Plugin\API -
matomo/trunk/app/plugins/UsersManager/Controller.php
r3258786 r3309522 163 163 $userLogin = Piwik::getCurrentUserLogin(); 164 164 $user = Request::processRequest('UsersManager.getUser', array('userLogin' => $userLogin)); 165 $view->userEmail = $user['email'] ;165 $view->userEmail = $user['email'] ?? ''; 166 166 $view->userTokenAuth = Piwik::getCurrentUserTokenAuth(); 167 167 $view->setIgnoreCookieNonce = Nonce::getNonce(self::NONCE_SET_IGNORE_COOKIE); -
matomo/trunk/app/plugins/UsersManager/Model.php
r3258786 r3309522 32 32 * or you can list all users and websites for a given permission via "getUsersSitesFromAccess". Permissions are set and updated 33 33 * via the method "setUserAccess". 34 * See also the documentation about <a href='http ://piwik.org/docs/manage-users/' rel='noreferrer' target='_blank'>Managing Users</a> in Piwik.34 * See also the documentation about <a href='https://matomo.org/docs/manage-users/' rel='noreferrer' target='_blank'>Managing Users</a> in Piwik. 35 35 */ 36 36 class Model
Note: See TracChangeset
for help on using the changeset viewer.