Plugin Directory

Changeset 3309522


Ignore:
Timestamp:
06/11/2025 05:33:49 AM (8 months ago)
Author:
matomoteam
Message:

Update to version 5.3.1 from GitHub (app/plugins)

Location:
matomo/trunk/app/plugins
Files:
1 added
46 edited

Legend:

Unmodified
Added
Removed
  • matomo/trunk/app/plugins/API/API.php

    r3258786 r3309522  
    3535require_once PIWIK_INCLUDE_PATH . '/core/Config.php';
    3636/**
    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 providing
     37 * 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
    3838 * human readable and more complete outputs than normal API methods.
    3939 *
     
    4848 * </ul>
    4949 * 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>
    5151 *
    5252 * @method static \Piwik\Plugins\API\API getInstance()
  • matomo/trunk/app/plugins/API/Controller.php

    r3221935 r3309522  
    5353        $ApiDocumentation = new DocumentationGenerator();
    5454        $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'])) {
    5757            $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);
    5862        }
    5963        return $ApiDocumentation->getApiDocumentationAsStringForDeveloperReference($outputExampleUrls = \true, $prefixUrls);
  • matomo/trunk/app/plugins/Actions/API.php

    r3221935 r3309522  
    2727 * File Downloads and Clicks on external websites.
    2828 *
    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.
    3030 *
    3131 * It is also possible to request data for a specific Page Title with "getPageTitle"
  • matomo/trunk/app/plugins/Actions/ArchivingHelper.php

    r3221935 r3309522  
    9494            // Here we do ensure that, the Metadata URL set for a given row, is the one from the Pageview with the most hits.
    9595            // 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 /index
    97             // But, we must make sure http://piwik.org is used to link & for transitions
     96            // 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
    9898            // Note: this code is partly duplicated from Row->sumRowMetadata()
    9999            if (!is_null($url) && !$actionRow->isSummaryRow()) {
     
    492492     *
    493493     * 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' );
    495495     *
    496496     * 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' );
    498498     *
    499499     * 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' );
    501501     *
    502502     * for action names:
  • matomo/trunk/app/plugins/Actions/Columns/ActionType.php

    r3221935 r3309522  
    1818 * This example dimension only defines a name and does not track any data. It's supposed to be only used in reports.
    1919 *
    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.
    2121 */
    2222class ActionType extends ActionDimension
  • matomo/trunk/app/plugins/BulkTracking/Tracker/Requests.php

    r3221935 r3309522  
    3737    {
    3838        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>");
    4040        }
    4141    }
  • matomo/trunk/app/plugins/Contents/Reports/GetContentNames.php

    r3103858 r3309522  
    1515 * This class defines a new report.
    1616 *
    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.
    1818 */
    1919class GetContentNames extends \Piwik\Plugins\Contents\Reports\Base
  • matomo/trunk/app/plugins/Contents/Reports/GetContentPieces.php

    r3103858 r3309522  
    1515 * This class defines a new report.
    1616 *
    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.
    1818 */
    1919class GetContentPieces extends \Piwik\Plugins\Contents\Reports\Base
  • matomo/trunk/app/plugins/CoreHome/CoreHome.php

    r3258786 r3309522  
    103103        $stylesheets[] = "plugins/Morpheus/stylesheets/base.less";
    104104        $stylesheets[] = "plugins/Morpheus/stylesheets/main.less";
     105        $stylesheets[] = "plugins/CoreHome/stylesheets/a11y.less";
    105106        $stylesheets[] = "plugins/CoreHome/stylesheets/coreHome.less";
    106107        $stylesheets[] = "plugins/CoreHome/stylesheets/dataTable.less";
     
    366367        $translationKeys[] = 'General_Copy';
    367368        $translationKeys[] = 'General_CopiedToClipboard';
     369        $translationKeys[] = 'CoreHome_ReportConfiguration';
    368370        // add admin menu translations
    369371        if (SettingsPiwik::isMatomoInstalled() && Common::getRequestVar('module', '') != 'CoreUpdater' && Piwik::isUserHasSomeViewAccess()) {
  • matomo/trunk/app/plugins/CoreHome/templates/ReportRenderer/_htmlReportBody.twig

    r2243632 r3309522  
    33{% set styleTableCell = "border-bottom:1px solid rgb(231,231,231);font-size: 15px;font-variant-numeric: tabular-nums;padding:17px 15px;" ~ fontStyle %}
    44
    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 }}
    77</h2>
    88
  • matomo/trunk/app/plugins/CoreHome/templates/ReportRenderer/_htmlReportHeader.twig

    r2243632 r3309522  
    77    <p style='{{styleParagraph}}{{fontStyle}}'>
    88        {% if isAttachedFile is defined and isAttachedFile %}
    9         {{ 'ScheduledReports_PleaseFindAttachedFile'|translate(frequency, reportTitle) }}
     9        {{ 'ScheduledReports_PleaseFindAttachedFile'|translate(frequency, reportTitle|escape|preventLinking)|raw }}
    1010        {% else %}
    11         {{'ScheduledReports_PleaseFindBelow'|translate(period,reportTitle)}}
     11        {{ 'ScheduledReports_PleaseFindBelow'|translate(period, reportTitle|escape|preventLinking)|raw }}
    1212        {% endif %}
    13         <br />{{ description }}
     13        <br />{{ description|escape|preventLinking }}
    1414        <br />{{ 'General_DateRange'|translate }} {{ prettyDate }}
    1515        <br />{{ 'ScheduledReports_SentFromX'|translate(piwikUrl) }}
     
    1818    {% if displaySegment %}
    1919        <p style="{{styleParagraph}}{{fontStyle}}">
    20             {{ 'ScheduledReports_CustomVisitorSegment'|translate }} {{ segmentName }}
     20            {{ 'ScheduledReports_CustomVisitorSegment'|translate }} {{ segmentName|escape|preventLinking }}
    2121        </p>
    2222    {% endif %}
  • matomo/trunk/app/plugins/CoreHome/vue/dist/CoreHome.umd.min.js

    r3258786 r3309522  
    288288 * @link    https://matomo.org
    289289 * @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&amp;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&amp;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.$;
    291291/*!
    292292 * Matomo - free/libre analytics platform
  • matomo/trunk/app/plugins/CorePluginsAdmin/CorePluginsAdmin.php

    r3103858 r3309522  
    146146        $translations[] = 'CorePluginsAdmin_PluginFreeTrialStartedAccountCreatedMessage';
    147147        $translations[] = 'CorePluginsAdmin_PluginFreeTrialStartedAccountCreatedTitle';
     148        $translations[] = 'General_Confirm';
     149        $translations[] = 'General_Cancel';
     150        $translations[] = 'UsersManager_ConfirmThisChange';
     151        $translations[] = 'UsersManager_ConfirmWithPassword';
     152        $translations[] = 'UsersManager_YourCurrentPassword';
    148153    }
    149154}
  • matomo/trunk/app/plugins/CoreVisualizations/JqplotDataGenerator/Chart.php

    r3221935 r3309522  
    2020    public $properties;
    2121    // the data kept here conforms to the jqplot data layout
    22     // @see http://www.jqplot.com/docs/files/jqPlotOptions-txt.html
     22    // @see https://www.jqplot.com/docs/files/jqPlotOptions-txt.html
    2323    protected $series = [];
    2424    protected $data = [];
     
    132132        ProxyHttp::overrideCacheControlHeaders();
    133133        $this->checkDataStateAvailableForAllTicks();
    134         // See http://www.jqplot.com/docs/files/jqPlotOptions-txt.html
     134        // See https://www.jqplot.com/docs/files/jqPlotOptions-txt.html
    135135        $data = ['params' => ['axes' => &$this->axes, 'series' => &$this->series], 'data' => &$this->data, 'dataStates' => &$this->dataStates];
    136136        return $data;
  • matomo/trunk/app/plugins/CustomDimensions/Dimension/Extraction.php

    r3221935 r3309522  
    8989        $regex = $this->formatPattern();
    9090        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.html
     91            // 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
    9292            if (array_key_exists(1, $matches)) {
    9393                return $matches[1];
  • matomo/trunk/app/plugins/CustomDimensions/GetCustomDimension.php

    r3221935 r3309522  
    3030 * This class defines a new report.
    3131 *
    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.
    3333 */
    3434class GetCustomDimension extends Report
  • matomo/trunk/app/plugins/CustomDimensions/Menu.php

    r3103858 r3309522  
    1616 * This class allows you to add, remove or rename menu items.
    1717 * 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/MenuAbstract
     18 * described in the API-Reference https://developer.matomo.org/api-reference/Piwik/Menu/MenuAbstract
    1919 */
    2020class Menu extends \Piwik\Plugin\Menu
  • matomo/trunk/app/plugins/DBStats/API.php

    r3221935 r3309522  
    5151     * Gets general database info that is not specific to any table.
    5252     *
    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 .
    5454     */
    5555    public function getDBStatus()
  • matomo/trunk/app/plugins/DBStats/MySQLMetadataProvider.php

    r3221935 r3309522  
    4343     *
    4444     * @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 .
    4646     */
    4747    public function getDBStatus()
     
    5454     * @param string $table The name of the table. Should not be prefixed (ie, 'log_visit' is
    5555     *                      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 .
    5757     */
    5858    public function getTableStatus($table)
     
    7272     * @param string $matchingRegex Regex used to filter out tables whose name doesn't
    7373     *                              match it.
    74      * @return array The table information. See http://dev.mysql.com/doc/refman/5.5/en/show-table-status.html
     74     * @return array The table information. See https://dev.mysql.com/doc/refman/5.5/en/show-table-status.html
    7575     *               for specifics.
    7676     */
     
    100100     * Returns table statuses for every log table.
    101101     *
    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.
    103103     */
    104104    public function getAllLogTableStatus()
     
    110110     * Returns table statuses for every numeric archive table.
    111111     *
    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.
    113113     */
    114114    public function getAllNumericArchiveStatus()
     
    120120     * Returns table statuses for every blob archive table.
    121121     *
    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.
    123123     */
    124124    public function getAllBlobArchiveStatus()
     
    130130     * Returns table statuses for every admin table.
    131131     *
    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.
    133133     */
    134134    public function getAllAdminTableStatus()
  • matomo/trunk/app/plugins/Dashboard/API.php

    r3221935 r3309522  
    1212use Piwik\Piwik;
    1313/**
    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.
    1515 *
    1616 * @method static \Piwik\Plugins\Dashboard\API getInstance()
  • matomo/trunk/app/plugins/Diagnostics/Diagnostic/DbAdapterCheck.php

    r3103858 r3309522  
    6868        }
    6969        $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>'));
    7171        $message .= '</p>';
    7272        return $message;
  • matomo/trunk/app/plugins/Diagnostics/Diagnostic/TimezoneCheck.php

    r3103858 r3309522  
    3030            return array(\Piwik\Plugins\Diagnostics\Diagnostic\DiagnosticResult::singleResult($label, \Piwik\Plugins\Diagnostics\Diagnostic\DiagnosticResult::STATUS_OK));
    3131        }
    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>');
    3333        return array(\Piwik\Plugins\Diagnostics\Diagnostic\DiagnosticResult::singleResult($label, \Piwik\Plugins\Diagnostics\Diagnostic\DiagnosticResult::STATUS_WARNING, $comment));
    3434    }
  • matomo/trunk/app/plugins/Diagnostics/Menu.php

    r3103858 r3309522  
    1414 * This class allows you to add, remove or rename menu items.
    1515 * 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/MenuAbstract
     16 * described in the API-Reference https://developer.matomo.org/api-reference/Piwik/Menu/MenuAbstract
    1717 */
    1818class Menu extends \Piwik\Plugin\Menu
  • matomo/trunk/app/plugins/Events/API.php

    r3221935 r3309522  
    1616 * The Events API lets you request reports about your users' Custom Events.
    1717 *
    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).
    1919 *
    2020 * <br/>An event is defined by an event category (Videos, Music, Games...),
  • matomo/trunk/app/plugins/GeoIp2/LocationProvider/GeoIp2.php

    r3221935 r3309522  
    136136    public static function getRegionNameFromCodes($countryCode, $regionCode)
    137137    {
    138         $regionNames = self::getRegionNames();
     138        $regionNames = self::getRegions();
    139139        $countryCode = strtoupper($countryCode);
    140140        $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'];
    143143        } else {
    144144            return Piwik::translate('General_Unknown');
  • matomo/trunk/app/plugins/GeoIp2/data/regionMapping.php

    r3031513 r3309522  
    478478        // Governor's Harbour  [is now roughly Central Eleuthera]
    479479        '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)
    481481        '29' => 'EG',
    482482        // High Rock  [is now roughly East Grand Bahama]
  • matomo/trunk/app/plugins/Goals/API.php

    r3258786 r3309522  
    3737 * or list existing Goals for one or several websites via "getGoals"
    3838 *
    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"
    4040 * 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
    4141 * 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,
     
    4949 * or &idGoal=ecommerceOrder to get metrics about Ecommerce orders (number of orders, visits with an order, subtotal, tax, shipping, discount, revenue, items ordered)
    5050 *
    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.
    5252 *
    5353 * @method static \Piwik\Plugins\Goals\API getInstance()
  • matomo/trunk/app/plugins/Live/API.php

    r3258786 r3309522  
    2424require_once PIWIK_INCLUDE_PATH . '/plugins/UserCountry/functions.php';
    2525/**
    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>,
    2727 * you will be able to request visits filtered by any criteria.
    2828 *
     
    3636 * it easier for API users... and more!
    3737 *
    38  * With the parameter <a href='http://matomo.org/docs/analytics-api/segmentation/' rel='noreferrer' target='_blank'>'&segment='</a> you can filter the
     38 * With the parameter <a href='https://matomo.org/docs/analytics-api/segmentation/' rel='noreferrer' target='_blank'>'&segment='</a> you can filter the
    3939 * returned visits by any criteria (visitor IP, visitor ID, country, keyword used, time of day, etc.).
    4040 *
    4141 * The method "getCounters" is used to return a simple counter: visits, number of actions, number of converted visits, in the last N minutes.
    4242 *
    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.
    4444 * 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>.
    4545 * @method static \Piwik\Plugins\Live\API getInstance()
     
    320320                $visitorDetailsArray['actionDetails'] = array();
    321321                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                    }
    323327                    $visitorDetailsArray = \Piwik\Plugins\Live\Visitor::enrichVisitorArrayWithActions($visitorDetailsArray, $bulkFetchedActions);
    324328                }
  • matomo/trunk/app/plugins/Live/templates/index.twig

    r3031513 r3309522  
    22    vue-entry="Live.LivePage"
    33    disable-link="{{ (disableLink == 1)|default(null)|json_encode }}"
    4     visitors="{{ visitors|default(null)|json_encode }}"
     4    visitors="{{ visitors|default(null)|replace({'{{': '{&lbrace;'})|json_encode }}"
    55    initial-total-visitors="{{ initialTotalVisitors|default(null)|json_encode }}"
    66    live-refresh-after-ms="{{ liveRefreshAfterMs|default(null)|json_encode }}"
  • matomo/trunk/app/plugins/Login/Login.php

    r3221935 r3309522  
    230230        $login = StaticContainer::get(\Piwik\Auth::class)->getLogin();
    231231        if (empty($login) || $login == 'anonymous') {
    232             $login = Common::getRequestVar('form_login', \false);
     232            $login = \Piwik\Request::fromRequest()->getStringParameter('form_login', '');
    233233            if (Piwik::getAction() === 'logme') {
    234                 $login = Common::getRequestVar('login', $login);
     234                $login = \Piwik\Request::fromRequest()->getStringParameter('login', $login);
    235235            }
    236236        }
  • matomo/trunk/app/plugins/Marketplace/Api/Service.php

    r3221935 r3309522  
    131131    }
    132132    /**
    133      * Get the domain that is used in order to access the Marketplace. Eg http://plugins.piwik.org
     133     * Get the domain that is used in order to access the Marketplace. Eg https://plugins.matomo.org
    134134     * @return string
    135135     */
  • matomo/trunk/app/plugins/Marketplace/Emails/RequestTrialNotificationEmail.php

    r3103858 r3309522  
    55 *
    66 * @link https://matomo.org
    7  * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
     7 * @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
    88 */
    99declare (strict_types=1);
  • matomo/trunk/app/plugins/Marketplace/PluginTrial/Notification.php

    r3221935 r3309522  
    55 *
    66 * @link https://matomo.org
    7  * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
     7 * @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
    88 */
    99namespace Piwik\Plugins\Marketplace\PluginTrial;
  • matomo/trunk/app/plugins/Marketplace/PluginTrial/Request.php

    r3103858 r3309522  
    55 *
    66 * @link https://matomo.org
    7  * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
     7 * @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
    88 */
    99namespace Piwik\Plugins\Marketplace\PluginTrial;
  • matomo/trunk/app/plugins/Marketplace/PluginTrial/Service.php

    r3221935 r3309522  
    55 *
    66 * @link https://matomo.org
    7  * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
     7 * @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
    88 */
    99namespace Piwik\Plugins\Marketplace\PluginTrial;
  • matomo/trunk/app/plugins/Marketplace/PluginTrial/Storage.php

    r3221935 r3309522  
    55 *
    66 * @link https://matomo.org
    7  * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
     7 * @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
    88 */
    99namespace Piwik\Plugins\Marketplace\PluginTrial;
  • matomo/trunk/app/plugins/PagePerformance/JqplotDataGenerator/Chart.php

    r3103858 r3309522  
    1616{
    1717    // the data kept here conforms to the jqplot data layout
    18     // @see http://www.jqplot.com/docs/files/jqPlotOptions-txt.html
     18    // @see https://www.jqplot.com/docs/files/jqPlotOptions-txt.html
    1919    protected $series = [];
    2020    protected $data = [];
     
    7676    {
    7777        ProxyHttp::overrideCacheControlHeaders();
    78         // See http://www.jqplot.com/docs/files/jqPlotOptions-txt.html
     78        // See https://www.jqplot.com/docs/files/jqPlotOptions-txt.html
    7979        $data = ['params' => ['axes' => &$this->axes, 'series' => &$this->series], 'data' => &$this->data];
    8080        return $data;
  • matomo/trunk/app/plugins/Referrers/Columns/Base.php

    r3221935 r3309522  
    310310            }
    311311        }
    312         if (empty($campaignName)) {
     312        if (empty($campaignName) || !is_string($campaignName)) {
    313313            return \false;
    314314        }
  • matomo/trunk/app/plugins/Referrers/SearchEngine.php

    r3221935 r3309522  
    155155     *
    156156     * 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,
    158158     *       as the google keyword parameter couldn't be found.
    159159     *
     
    414414     * @param string $url Domain name, e.g., search.piwik.org
    415415     * @param string $keyword Keyword, e.g., web+analytics
    416      * @return string URL, e.g., http://search.piwik.org/q=web+analytics
     416     * @return string URL, e.g., https://search.matomo.org/q=web+analytics
    417417     */
    418418    public function getBackLinkFromUrlAndKeyword($url, $keyword)
  • matomo/trunk/app/plugins/ScheduledReports/API.php

    r3258786 r3309522  
    4242 * You can also get the list of all existing reports via "getReports", create new reports via "addReport",
    4343 * 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.
    4545 *
    4646 * @method static \Piwik\Plugins\ScheduledReports\API getInstance()
     
    758758            $segment = APISegmentEditor::getInstance()->get($idSegment);
    759759            if ($segment) {
     760                // segment name is returned sanitized
     761                $segment['name'] = Common::unsanitizeInputValue($segment['name']);
    760762                return $segment;
    761763            }
  • matomo/trunk/app/plugins/ScheduledReports/Controller.php

    r3258786 r3309522  
    101101            $allSegments = SegmentEditor::getAllSegmentsForSite($this->idSite);
    102102            foreach ($allSegments as $savedSegment) {
    103                 $savedSegmentsById[$savedSegment['idsegment']] = $savedSegment['name'];
     103                $savedSegmentsById[$savedSegment['idsegment']] = Common::unsanitizeInputValue($savedSegment['name']);
    104104            }
    105105            $view->savedSegmentsById = $savedSegmentsById;
  • matomo/trunk/app/plugins/ScheduledReports/ScheduledReports.php

    r3221935 r3309522  
    162162        }
    163163    }
    164     // based on http://www.php.net/manual/en/filter.filters.validate.php -> FILTER_VALIDATE_BOOLEAN
     164    // based on https://www.php.net/manual/en/filter.filters.validate.php -> FILTER_VALIDATE_BOOLEAN
    165165    private static function valueIsTrue($value)
    166166    {
  • matomo/trunk/app/plugins/SitesManager/API.php

    r3258786 r3309522  
    1414use Piwik\Access;
    1515use Piwik\Common;
     16use Piwik\Concurrency\Lock;
     17use Piwik\Concurrency\LockBackend;
    1618use Piwik\Config;
    1719use Piwik\Container\StaticContainer;
     
    5557 * "setGlobalExcludedQueryParameters" will set the list of URL parameters to remove from URLs for all websites.
    5658 * 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.
    5860 * @method static \Piwik\Plugins\SitesManager\API getInstance()
    5961 */
     
    666668     * Delete a website from the database, given its Id. The method deletes the actual site as well as some associated
    667669     * 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/ .
    669671     *
    670672     * Requires Super User access.
     
    681683            $this->confirmCurrentUserPassword($passwordConfirmation);
    682684        }
    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        });
    704710    }
    705711    private function checkValidTimezone($timezone)
  • matomo/trunk/app/plugins/UsersManager/API.php

    r3250095 r3309522  
    4747 * or you can list all users and websites for a given permission via "getUsersSitesFromAccess". Permissions are set and updated
    4848 * 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.
    5050 */
    5151class API extends \Piwik\Plugin\API
  • matomo/trunk/app/plugins/UsersManager/Controller.php

    r3258786 r3309522  
    163163        $userLogin = Piwik::getCurrentUserLogin();
    164164        $user = Request::processRequest('UsersManager.getUser', array('userLogin' => $userLogin));
    165         $view->userEmail = $user['email'];
     165        $view->userEmail = $user['email'] ?? '';
    166166        $view->userTokenAuth = Piwik::getCurrentUserTokenAuth();
    167167        $view->setIgnoreCookieNonce = Nonce::getNonce(self::NONCE_SET_IGNORE_COOKIE);
  • matomo/trunk/app/plugins/UsersManager/Model.php

    r3258786 r3309522  
    3232 * or you can list all users and websites for a given permission via "getUsersSitesFromAccess". Permissions are set and updated
    3333 * 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.
    3535 */
    3636class Model
Note: See TracChangeset for help on using the changeset viewer.