diff options
Diffstat (limited to 'plugins/MultiSites/vue')
-rw-r--r-- | plugins/MultiSites/vue/dist/MultiSites.umd.js | 474 | ||||
-rw-r--r-- | plugins/MultiSites/vue/dist/MultiSites.umd.min.js | 12 | ||||
-rw-r--r-- | plugins/MultiSites/vue/src/Dashboard/Dashboard.adapter.ts | 39 | ||||
-rw-r--r-- | plugins/MultiSites/vue/src/Dashboard/Dashboard.less | 292 | ||||
-rw-r--r-- | plugins/MultiSites/vue/src/Dashboard/Dashboard.store.ts | 18 | ||||
-rw-r--r-- | plugins/MultiSites/vue/src/Dashboard/Dashboard.vue | 409 | ||||
-rw-r--r-- | plugins/MultiSites/vue/src/index.ts | 2 |
7 files changed, 1231 insertions, 15 deletions
diff --git a/plugins/MultiSites/vue/dist/MultiSites.umd.js b/plugins/MultiSites/vue/dist/MultiSites.umd.js index e581c16fc6..e2fb8b1dce 100644 --- a/plugins/MultiSites/vue/dist/MultiSites.umd.js +++ b/plugins/MultiSites/vue/dist/MultiSites.umd.js @@ -117,6 +117,13 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__8bbf__; /***/ }), +/***/ "caf5": +/***/ (function(module, exports) { + + + +/***/ }), + /***/ "fae3": /***/ (function(module, __webpack_exports__, __webpack_require__) { @@ -127,6 +134,7 @@ __webpack_require__.r(__webpack_exports__); // EXPORTS __webpack_require__.d(__webpack_exports__, "MultisitesSite", function() { return /* reexport */ MultisitesSite; }); __webpack_require__.d(__webpack_exports__, "DashboadStore", function() { return /* reexport */ Dashboard_store; }); +__webpack_require__.d(__webpack_exports__, "Dashboard", function() { return /* reexport */ Dashboard; }); // CONCATENATED MODULE: ./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js // This file is imported into lib/wc client bundles. @@ -392,6 +400,288 @@ if (typeof MultisitesSitevue_type_custom_index_0_blockType_todo_default.a === 'f }, directiveName: 'piwikMultisitesSite' })); +// CONCATENATED MODULE: ./node_modules/@vue/cli-plugin-babel/node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/@vue/cli-plugin-babel/node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/templateLoader.js??ref--6!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./plugins/MultiSites/vue/src/Dashboard/Dashboard.vue?vue&type=template&id=190dce61 + +var Dashboardvue_type_template_id_190dce61_hoisted_1 = { + class: "card-title" +}; +var Dashboardvue_type_template_id_190dce61_hoisted_2 = ["innerHTML", "title"]; +var Dashboardvue_type_template_id_190dce61_hoisted_3 = { + id: "mt", + class: "dataTable card-table", + cellspacing: "0" +}; +var Dashboardvue_type_template_id_190dce61_hoisted_4 = { + class: "heading" +}; +var Dashboardvue_type_template_id_190dce61_hoisted_5 = { + class: "heading" +}; +var Dashboardvue_type_template_id_190dce61_hoisted_6 = { + class: "heading" +}; +var Dashboardvue_type_template_id_190dce61_hoisted_7 = { + class: "heading" +}; +var Dashboardvue_type_template_id_190dce61_hoisted_8 = ["colspan"]; +var Dashboardvue_type_template_id_190dce61_hoisted_9 = ["value"]; +var Dashboardvue_type_template_id_190dce61_hoisted_10 = { + value: "visits_evolution" +}; +var Dashboardvue_type_template_id_190dce61_hoisted_11 = { + value: "pageviews_evolution" +}; +var Dashboardvue_type_template_id_190dce61_hoisted_12 = { + key: 0, + value: "revenue_evolution" +}; +var Dashboardvue_type_template_id_190dce61_hoisted_13 = { + key: 0 +}; +var Dashboardvue_type_template_id_190dce61_hoisted_14 = { + colspan: "7", + class: "allWebsitesLoading" +}; +var Dashboardvue_type_template_id_190dce61_hoisted_15 = { + key: 1 +}; +var Dashboardvue_type_template_id_190dce61_hoisted_16 = { + key: 0 +}; +var Dashboardvue_type_template_id_190dce61_hoisted_17 = { + colspan: "7" +}; +var Dashboardvue_type_template_id_190dce61_hoisted_18 = { + class: "notification system notification-error" +}; + +var Dashboardvue_type_template_id_190dce61_hoisted_19 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("br", null, null, -1); + +var Dashboardvue_type_template_id_190dce61_hoisted_20 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("br", null, null, -1); + +var Dashboardvue_type_template_id_190dce61_hoisted_21 = { + rel: "noreferrer noopener", + target: "_blank", + href: "https://matomo.org/faq/troubleshooting/faq_19489/" +}; + +var Dashboardvue_type_template_id_190dce61_hoisted_22 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createTextVNode"])(" – "); + +var Dashboardvue_type_template_id_190dce61_hoisted_23 = { + rel: "noreferrer noopener", + target: "_blank", + href: "https://forum.matomo.org/" +}; +var Dashboardvue_type_template_id_190dce61_hoisted_24 = ["href"]; + +var Dashboardvue_type_template_id_190dce61_hoisted_25 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createTextVNode"])(". "); + +var Dashboardvue_type_template_id_190dce61_hoisted_26 = { + colspan: "8", + class: "paging" +}; +var Dashboardvue_type_template_id_190dce61_hoisted_27 = { + class: "row" +}; +var _hoisted_28 = { + class: "col s3 add_new_site" +}; +var _hoisted_29 = { + key: 0, + href: "addSiteUrl" +}; + +var _hoisted_30 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", { + class: "icon-add" +}, null, -1); + +var _hoisted_31 = { + class: "col s6" +}; +var _hoisted_32 = { + style: { + "cursor": "pointer" + } +}; +var _hoisted_33 = { + class: "dataTablePages" +}; +var _hoisted_34 = { + id: "counter" +}; +var _hoisted_35 = { + style: { + "cursor": "pointer" + }, + class: "pointer" +}; + +var _hoisted_36 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", { + class: "col s3" +}, " ", -1); + +var _hoisted_37 = { + row_id: "last" +}; +var _hoisted_38 = { + colspan: "8", + class: "site_search" +}; +var _hoisted_39 = { + class: "row" +}; +var _hoisted_40 = { + class: "input-field col s12" +}; +var _hoisted_41 = ["placeholder"]; +var _hoisted_42 = ["title"]; +function Dashboardvue_type_template_id_190dce61_render(_ctx, _cache, $props, $setup, $data, $options) { + var _this = this; + + var _component_EnrichedHeadline = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveComponent"])("EnrichedHeadline"); + + var _component_ActivityIndicator = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveComponent"])("ActivityIndicator"); + + var _component_MultisitesSite = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveComponent"])("MultisitesSite"); + + return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", null, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("h2", Dashboardvue_type_template_id_190dce61_hoisted_1, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createVNode"])(_component_EnrichedHeadline, { + "help-url": "https://matomo.org/docs/manage-websites/#all-websites-dashboard", + "feature-name": _ctx.translate('General_AllWebsitesDashboard') + }, { + default: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withCtx"])(function () { + return [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createTextVNode"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('General_AllWebsitesDashboard')) + " ", 1), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", { + class: "smallTitle", + innerHTML: _ctx.$sanitize(_this.smallTitleContent), + title: _ctx.smallTitleTooltip + }, null, 8, Dashboardvue_type_template_id_190dce61_hoisted_2)]; + }), + _: 1 + }, 8, ["feature-name"])]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("table", Dashboardvue_type_template_id_190dce61_hoisted_3, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("thead", null, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("tr", null, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("th", { + id: "names", + class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(["label", { + columnSorted: 'label' === _ctx.sortColumn + }]), + onClick: _cache[0] || (_cache[0] = function ($event) { + return _ctx.sortBy('label'); + }) + }, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", Dashboardvue_type_template_id_190dce61_hoisted_4, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('General_Website')), 1), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", { + class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(["arrow", { + multisites_asc: !_ctx.reverse && 'label' === _ctx.sortColumn, + multisites_desc: _ctx.reverse && 'label' === _ctx.sortColumn + }]) + }, null, 2)], 2), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("th", { + id: "visits", + class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(["multisites-column", { + columnSorted: 'nb_visits' === _ctx.sortColumn + }]), + onClick: _cache[1] || (_cache[1] = function ($event) { + return _ctx.sortBy('nb_visits'); + }) + }, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", { + class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(["arrow", { + multisites_asc: !_ctx.reverse && 'nb_visits' === _ctx.sortColumn, + multisites_desc: _ctx.reverse && 'nb_visits' === _ctx.sortColumn + }]) + }, null, 2), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", Dashboardvue_type_template_id_190dce61_hoisted_5, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('General_ColumnNbVisits')), 1)], 2), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("th", { + id: "pageviews", + class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(["multisites-column", { + columnSorted: 'nb_pageviews' === _ctx.sortColumn + }]), + onClick: _cache[2] || (_cache[2] = function ($event) { + return _ctx.sortBy('nb_pageviews'); + }) + }, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", { + class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(["arrow", { + multisites_asc: !_ctx.reverse && 'nb_pageviews' === _ctx.sortColumn, + multisites_desc: _ctx.reverse && 'nb_pageviews' === _ctx.sortColumn + }]) + }, null, 2), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", Dashboardvue_type_template_id_190dce61_hoisted_6, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('General_ColumnPageviews')), 1)], 2), _ctx.displayRevenueColumn ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("th", { + key: 0, + id: "revenue", + class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(["multisites-column", { + columnSorted: 'revenue' === _ctx.sortColumn + }]), + onClick: _cache[3] || (_cache[3] = function ($event) { + return _ctx.sortBy('revenue'); + }) + }, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", { + class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(["arrow", { + multisites_asc: !_ctx.reverse && 'revenue' === _ctx.sortColumn, + multisites_desc: _ctx.reverse && 'revenue' === _ctx.sortColumn + }]) + }, null, 2), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", Dashboardvue_type_template_id_190dce61_hoisted_7, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('General_ColumnRevenue')), 1)], 2)) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("th", { + id: "evolution", + class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])({ + columnSorted: _ctx.evolutionSelector === _ctx.sortColumn + }), + colspan: _ctx.showSparklines ? 2 : 1 + }, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", { + class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(["arrow", { + multisites_asc: !_ctx.reverse && _ctx.evolutionSelector === _ctx.sortColumn, + multisites_desc: _ctx.reverse && _ctx.evolutionSelector === _ctx.sortColumn + }]) + }, null, 2), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", { + class: "evolution", + onClick: _cache[4] || (_cache[4] = function ($event) { + return _ctx.sortBy(_ctx.evolutionSelector); + }) + }, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('MultiSites_Evolution')), 1), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("select", { + class: "selector browser-default", + id: "evolution_selector", + value: _ctx.evolutionSelector, + onChange: _cache[5] || (_cache[5] = function ($event) { + _ctx.evolutionSelector = $event.target.value; + + _ctx.sortBy(_ctx.evolutionSelector); + }) + }, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("option", Dashboardvue_type_template_id_190dce61_hoisted_10, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('General_ColumnNbVisits')), 1), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("option", Dashboardvue_type_template_id_190dce61_hoisted_11, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('General_ColumnPageviews')), 1), _ctx.displayRevenueColumn ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("option", Dashboardvue_type_template_id_190dce61_hoisted_12, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('General_ColumnRevenue')), 1)) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true)], 40, Dashboardvue_type_template_id_190dce61_hoisted_9)], 10, Dashboardvue_type_template_id_190dce61_hoisted_8)])]), _ctx.isLoading ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("tbody", Dashboardvue_type_template_id_190dce61_hoisted_13, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("tr", null, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("td", Dashboardvue_type_template_id_190dce61_hoisted_14, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createVNode"])(_component_ActivityIndicator, { + "loading-message": _ctx.loadingMessage, + loading: _ctx.isLoading + }, null, 8, ["loading-message", "loading"])])])])) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true), !_ctx.isLoading ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("tbody", Dashboardvue_type_template_id_190dce61_hoisted_15, [_ctx.errorLoadingSites ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("tr", Dashboardvue_type_template_id_190dce61_hoisted_16, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("td", Dashboardvue_type_template_id_190dce61_hoisted_17, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", Dashboardvue_type_template_id_190dce61_hoisted_18, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createTextVNode"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('General_ErrorRequest', '', '')) + " ", 1), Dashboardvue_type_template_id_190dce61_hoisted_19, Dashboardvue_type_template_id_190dce61_hoisted_20, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createTextVNode"])(" " + Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('General_NeedMoreHelp')) + " ", 1), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("a", Dashboardvue_type_template_id_190dce61_hoisted_21, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('General_Faq')), 1), Dashboardvue_type_template_id_190dce61_hoisted_22, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("a", Dashboardvue_type_template_id_190dce61_hoisted_23, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('Feedback_CommunityHelp')), 1), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", null, " – ", 512), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vShow"], _ctx.areAdsForProfessionalServicesEnabled]]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("a", { + rel: "noreferrer noopener", + target: "_blank", + href: _ctx.professionalHelpUrl + }, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('Feedback_ProfessionalHelp')), 9, Dashboardvue_type_template_id_190dce61_hoisted_24), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vShow"], _ctx.areAdsForProfessionalServicesEnabled]]), Dashboardvue_type_template_id_190dce61_hoisted_25])])])) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("tr", null, [(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(true), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])(external_commonjs_vue_commonjs2_vue_root_Vue_["Fragment"], null, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["renderList"])(_ctx.sites, function (website) { + return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createBlock"])(_component_MultisitesSite, { + key: website.idsite, + website: website, + "evolution-metric": _ctx.evolutionSelector, + "date-sparkline": _ctx.dateSparkline, + "show-sparklines": _ctx.showSparklines, + metric: _ctx.sortColumn, + "display-revenue-column": _ctx.displayRevenueColumn + }, null, 8, ["website", "evolution-metric", "date-sparkline", "show-sparklines", "metric", "display-revenue-column"]); + }), 128))])])) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("tfoot", null, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("tr", null, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("td", Dashboardvue_type_template_id_190dce61_hoisted_26, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", Dashboardvue_type_template_id_190dce61_hoisted_27, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", _hoisted_28, [_ctx.hasSuperUserAccess ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("a", _hoisted_29, [_hoisted_30, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createTextVNode"])(" " + Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('SitesManager_AddSite')), 1)])) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true)]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", _hoisted_31, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", { + id: "prev", + class: "previous dataTablePrevious", + onClick: _cache[6] || (_cache[6] = function ($event) { + return _ctx.previousPage(); + }) + }, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", _hoisted_32, "« " + Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('General_Previous')), 1)], 512), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vShow"], !(_ctx.currentPage === 0)]]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", _hoisted_33, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", _hoisted_34, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('General_Pagination', _ctx.paginationLowerBound, _ctx.paginationUpperBound, _ctx.numberOfFilteredSites)), 1)]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", { + id: "next", + class: "next dataTableNext", + onClick: _cache[7] || (_cache[7] = function ($event) { + return _ctx.nextPage(); + }) + }, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", _hoisted_35, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('General_Next')) + " »", 1)], 512), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vShow"], !(_ctx.currentPage >= _ctx.numberOfPages)]])]), _hoisted_36])], 512), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vShow"], !(_ctx.numberOfPages <= 1)]])]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("tr", _hoisted_37, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("td", _hoisted_38, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", _hoisted_39, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", _hoisted_40, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("input", { + type: "text", + onKeydown: _cache[8] || (_cache[8] = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withKeys"])(function ($event) { + return _ctx.searchSite(_ctx.searchTerm); + }, ["enter"])), + "onUpdate:modelValue": _cache[9] || (_cache[9] = function ($event) { + return _ctx.searchTerm = $event; + }), + placeholder: _ctx.translate('Actions_SubmenuSitesearch') + }, null, 40, _hoisted_41), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vModelText"], _ctx.searchTerm]]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", { + class: "icon-search search_ico", + onClick: _cache[10] || (_cache[10] = function ($event) { + return _ctx.searchSite(_ctx.searchTerm); + }), + title: _ctx.translate('General_ClickToSearch') + }, null, 8, _hoisted_42)])])])])])])]); +} +// CONCATENATED MODULE: ./plugins/MultiSites/vue/src/Dashboard/Dashboard.vue?vue&type=template&id=190dce61 + // CONCATENATED MODULE: ./plugins/MultiSites/vue/src/Dashboard/Dashboard.store.ts function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } @@ -407,10 +697,6 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope * @link https://matomo.org * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later */ -// TODO: -// - state property types -// - method signatures -// - method code var _window = window, @@ -658,12 +944,190 @@ var Dashboard_store_DashboardStore = /*#__PURE__*/function () { this.privateState.errorLoadingSites = true; this.privateState.sites = []; } + }, { + key: "setRefreshInterval", + value: function setRefreshInterval(interval) { + this.privateState.refreshInterval = interval; + } + }, { + key: "setPageSize", + value: function setPageSize(pageSize) { + this.privateState.pageSize = pageSize; + } }]); return DashboardStore; }(); /* harmony default export */ var Dashboard_store = (new Dashboard_store_DashboardStore()); +// CONCATENATED MODULE: ./node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--14-0!./node_modules/babel-loader/lib!./node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader??ref--14-2!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./plugins/MultiSites/vue/src/Dashboard/Dashboard.vue?vue&type=script&lang=ts + + + + +/* harmony default export */ var Dashboardvue_type_script_lang_ts = (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["defineComponent"])({ + props: { + displayRevenueColumn: Boolean, + showSparklines: Boolean, + dateSparkline: String, + pageSize: Number, + autoRefreshTodayReport: Number + }, + components: { + EnrichedHeadline: external_CoreHome_["EnrichedHeadline"], + ActivityIndicator: external_CoreHome_["ActivityIndicator"], + MultisitesSite: MultisitesSite + }, + data: function data() { + return { + evolutionSelector: 'visits_evolution', + searchTerm: '' + }; + }, + created: function created() { + if (this.pageSize) { + Dashboard_store.setPageSize(this.pageSize); + } + + this.refresh(this.autoRefreshTodayReport); + }, + methods: { + refresh: function refresh(interval) { + Dashboard_store.setRefreshInterval(interval); + Dashboard_store.fetchAllSites(); + }, + sortBy: function sortBy(column) { + Dashboard_store.sortBy(column); + }, + previousPage: function previousPage() { + Dashboard_store.previousPage(); + }, + nextPage: function nextPage() { + Dashboard_store.nextPage(); + }, + searchSite: function searchSite() { + Dashboard_store.searchSite(this.searchTerm); + } + }, + computed: { + hasSuperUserAccess: function hasSuperUserAccess() { + return external_CoreHome_["Matomo"].hasSuperUserAccess; + }, + date: function date() { + return external_CoreHome_["MatomoUrl"].urlParsed.value.date; + }, + idSite: function idSite() { + return external_CoreHome_["MatomoUrl"].urlParsed.value.idSite; + }, + url: function url() { + return external_CoreHome_["Matomo"].piwik_url; + }, + period: function period() { + return external_CoreHome_["Matomo"].period; + }, + areAdsForProfessionalServicesEnabled: function areAdsForProfessionalServicesEnabled() { + return external_CoreHome_["Matomo"].config && external_CoreHome_["Matomo"].config.are_ads_enabled; + }, + sortColumn: function sortColumn() { + return Dashboard_store.state.value.sortColumn; + }, + reverse: function reverse() { + return Dashboard_store.state.value.reverse; + }, + smallTitleContent: function smallTitleContent() { + var state = Dashboard_store.state.value; + return Object(external_CoreHome_["translate"])('General_TotalVisitsPageviewsActionsRevenue', "<strong>".concat(state.totalVisits, "</strong>"), "<strong>".concat(state.totalPageviews, "</strong>"), "<strong>".concat(state.totalActions, "</strong>"), "<strong>".concat(state.totalRevenue, "</strong>")); + }, + smallTitleTooltip: function smallTitleTooltip() { + var state = Dashboard_store.state.value; + return Object(external_CoreHome_["translate"])('General_EvolutionSummaryGeneric', Object(external_CoreHome_["translate"])('General_NVisits', "".concat(state.totalVisits)), this.date, "".concat(state.lastVisits), state.lastVisitsDate, Object(external_CoreHome_["getFormattedEvolution"])(state.totalVisits, state.lastVisits)); + }, + loadingMessage: function loadingMessage() { + return Dashboard_store.state.value.loadingMessage; + }, + isLoading: function isLoading() { + return Dashboard_store.state.value.isLoading; + }, + errorLoadingSites: function errorLoadingSites() { + return Dashboard_store.state.value.errorLoadingSites; + }, + sites: function sites() { + return Dashboard_store.state.value.sites; + }, + numberOfPages: function numberOfPages() { + return Dashboard_store.numberOfPages.value; + }, + currentPage: function currentPage() { + return Dashboard_store.state.value.currentPage; + }, + paginationLowerBound: function paginationLowerBound() { + return Dashboard_store.paginationLowerBound.value; + }, + paginationUpperBound: function paginationUpperBound() { + return Dashboard_store.paginationUpperBound.value; + }, + numberOfFilteredSites: function numberOfFilteredSites() { + return Dashboard_store.numberOfFilteredSites.value; + }, + professionalHelpUrl: function professionalHelpUrl() { + return 'https://matomo.org/support-plans/?pk_campaign=Help&pk_medium=AjaxError&pk_content=' + 'MultiSites&pk_source=Matomo_App'; + }, + addSiteUrl: function addSiteUrl() { + return "index.php?module=SitesManager&action=index&showaddsite=1&period=".concat(this.period, "&") + "date=".concat(this.date, "&idSite=").concat(this.idSite); + } + } +})); +// CONCATENATED MODULE: ./plugins/MultiSites/vue/src/Dashboard/Dashboard.vue?vue&type=script&lang=ts + +// EXTERNAL MODULE: ./plugins/MultiSites/vue/src/Dashboard/Dashboard.vue?vue&type=custom&index=0&blockType=todo +var Dashboardvue_type_custom_index_0_blockType_todo = __webpack_require__("caf5"); +var Dashboardvue_type_custom_index_0_blockType_todo_default = /*#__PURE__*/__webpack_require__.n(Dashboardvue_type_custom_index_0_blockType_todo); + +// CONCATENATED MODULE: ./plugins/MultiSites/vue/src/Dashboard/Dashboard.vue + + + +Dashboardvue_type_script_lang_ts.render = Dashboardvue_type_template_id_190dce61_render +/* custom blocks */ + +if (typeof Dashboardvue_type_custom_index_0_blockType_todo_default.a === 'function') Dashboardvue_type_custom_index_0_blockType_todo_default()(Dashboardvue_type_script_lang_ts) + + +/* harmony default export */ var Dashboard = (Dashboardvue_type_script_lang_ts); +// CONCATENATED MODULE: ./plugins/MultiSites/vue/src/Dashboard/Dashboard.adapter.ts +/*! + * Matomo - free/libre analytics platform + * + * @link https://matomo.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + */ + + +/* harmony default export */ var Dashboard_adapter = (Object(external_CoreHome_["createAngularJsAdapter"])({ + component: Dashboard, + scope: { + displayRevenueColumn: { + angularJsBind: '@', + transform: external_CoreHome_["transformAngularJsBoolAttr"] + }, + showSparklines: { + angularJsBind: '@', + transform: external_CoreHome_["transformAngularJsBoolAttr"] + }, + dateSparkline: { + angularJsBind: '@' + }, + pageSize: { + angularJsBind: '@', + transform: external_CoreHome_["transformAngularJsIntAttr"] + }, + autoRefreshTodayReport: { + angularJsBind: '@', + transform: external_CoreHome_["transformAngularJsIntAttr"] + } + }, + directiveName: 'piwikMultisitesDashboard' +})); // CONCATENATED MODULE: ./plugins/MultiSites/vue/src/index.ts /*! * Matomo - free/libre analytics platform @@ -674,6 +1138,8 @@ var Dashboard_store_DashboardStore = /*#__PURE__*/function () { + + // CONCATENATED MODULE: ./node_modules/@vue/cli-service/lib/commands/build/entry-lib-no-default.js diff --git a/plugins/MultiSites/vue/dist/MultiSites.umd.min.js b/plugins/MultiSites/vue/dist/MultiSites.umd.min.js index 8cde6abe3d..e129b56c8d 100644 --- a/plugins/MultiSites/vue/dist/MultiSites.umd.min.js +++ b/plugins/MultiSites/vue/dist/MultiSites.umd.min.js @@ -1,14 +1,20 @@ -(function(e,t){"object"===typeof exports&&"object"===typeof module?module.exports=t(require("CoreHome"),require("vue")):"function"===typeof define&&define.amd?define(["CoreHome"],t):"object"===typeof exports?exports["MultiSites"]=t(require("CoreHome"),require("vue")):e["MultiSites"]=t(e["CoreHome"],e["Vue"])})("undefined"!==typeof self?self:this,(function(e,t){return function(e){var t={};function i(r){if(t[r])return t[r].exports;var n=t[r]={i:r,l:!1,exports:{}};return e[r].call(n.exports,n,n.exports,i),n.l=!0,n.exports}return i.m=e,i.c=t,i.d=function(e,t,r){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},i.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"===typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(i.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)i.d(r,n,function(t){return e[t]}.bind(null,n));return r},i.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="plugins/MultiSites/vue/dist/",i(i.s="fae3")}({"19dc":function(t,i){t.exports=e},"8bbf":function(e,i){e.exports=t},b7b0:function(e,t){},fae3:function(e,t,i){"use strict";if(i.r(t),i.d(t,"MultisitesSite",(function(){return G})),i.d(t,"DashboadStore",(function(){return W})),"undefined"!==typeof window){var r=window.document.currentScript,n=r&&r.src.match(/(.+\/)[^/]+\.js(\?.*)?$/);n&&(i.p=n[1])}var a=i("19dc"),o=i("8bbf"),s={key:0,class:"multisites-label label"},l=["href"],c=["href","title"],u=Object(o["createElementVNode"])("span",{class:"icon icon-outlink"},null,-1),b=[u],p={key:1,class:"multisites-label label"},v={class:"value"},d={class:"multisites-column"},m={class:"value"},f={class:"multisites-column"},h={class:"value"},g={key:2,class:"multisites-column"},O={class:"value"},S=["title"],j={key:0,class:"visits value"},_=Object(o["createElementVNode"])("img",{class:"multisites_icon",src:"plugins/MultiSites/images/arrow_up.png",alt:""},null,-1),w=Object(o["createTextVNode"])(),y={style:{color:"green"}},k=Object(o["createElementVNode"])("img",{class:"multisites_icon",src:"plugins/MultiSites/images/stop.png",alt:""},null,-1),C=Object(o["createTextVNode"])(),M=Object(o["createElementVNode"])("img",{class:"multisites_icon",src:"plugins/MultiSites/images/arrow_down.png",alt:""},null,-1),E=Object(o["createTextVNode"])(),N={style:{color:"red"}},V={key:4,style:{width:"180px"}},P={key:0,class:"sparkline",style:{width:"100px",margin:"auto"}},B=["href","title"],x=["src"];function A(e,t,i,r,n,a){return Object(o["openBlock"])(),Object(o["createElementBlock"])("tr",{class:Object(o["normalizeClass"])({groupedWebsite:e.website.group,website:!e.website.group,group:e.website.isGroup})},[e.website.isGroup?Object(o["createCommentVNode"])("",!0):(Object(o["openBlock"])(),Object(o["createElementBlock"])("td",s,[Object(o["createElementVNode"])("a",{title:"View reports",class:"value truncated-text-line",href:e.dashboardUrl(e.website)},Object(o["toDisplayString"])(e.websiteLabel),9,l),Object(o["createElementVNode"])("span",null,[Object(o["createElementVNode"])("a",{rel:"noreferrer noopener",target:"_blank",href:e.website.main_url,title:e.translate("General_GoTo",e.website.main_url)},b,8,c)])])),e.website.isGroup?(Object(o["openBlock"])(),Object(o["createElementBlock"])("td",p,[Object(o["createElementVNode"])("span",v,Object(o["toDisplayString"])(e.websiteLabel),1)])):Object(o["createCommentVNode"])("",!0),Object(o["createElementVNode"])("td",d,[Object(o["createElementVNode"])("span",m,Object(o["toDisplayString"])(e.website.nb_visits),1)]),Object(o["createElementVNode"])("td",f,[Object(o["createElementVNode"])("span",h,Object(o["toDisplayString"])(e.website.nb_pageviews),1)]),e.displayRevenueColumn?(Object(o["openBlock"])(),Object(o["createElementBlock"])("td",g,[Object(o["createElementVNode"])("span",O,Object(o["toDisplayString"])(e.website.revenue),1)])):Object(o["createCommentVNode"])("",!0),"range"!==e.period?(Object(o["openBlock"])(),Object(o["createElementBlock"])("td",{key:3,class:"multisites-evolution",title:e.website.tooltip},[e.website.isGroup?Object(o["createCommentVNode"])("",!0):(Object(o["openBlock"])(),Object(o["createElementBlock"])("div",j,[Object(o["withDirectives"])(Object(o["createElementVNode"])("span",null,[_,w,Object(o["createElementVNode"])("span",y,Object(o["toDisplayString"])(e.website[e.evolutionMetric]),1)],512),[[o["vShow"],1===e.website["".concat(e.evolutionMetric,"_trend")]]]),Object(o["withDirectives"])(Object(o["createElementVNode"])("span",null,[k,C,Object(o["createElementVNode"])("span",null,Object(o["toDisplayString"])(e.website[e.evolutionMetric]),1)],512),[[o["vShow"],0===e.website["".concat(e.evolutionMetric,"_trend")]]]),Object(o["withDirectives"])(Object(o["createElementVNode"])("span",null,[M,E,Object(o["createElementVNode"])("span",N,Object(o["toDisplayString"])(e.website[e.evolutionMetric]),1)],512),[[o["vShow"],-1===e.website["".concat(e.evolutionMetric,"_trend")]]])]))],8,S)):Object(o["createCommentVNode"])("",!0),e.showSparklines?(Object(o["openBlock"])(),Object(o["createElementBlock"])("td",V,[e.website.isGroup?Object(o["createCommentVNode"])("",!0):(Object(o["openBlock"])(),Object(o["createElementBlock"])("div",P,[Object(o["createElementVNode"])("a",{rel:"noreferrer noopener",target:"_blank",href:e.dashboardUrl(e.website),title:e.translate("General_GoTo",e.translate("Dashboard_DashboardOf",e.websiteLabel))},[Object(o["createElementVNode"])("img",{alt:"",width:"100",height:"25",src:e.sparklineImage(e.website)},null,8,x)],8,B)]))])):Object(o["createCommentVNode"])("",!0)],2)}var D=Object(o["defineComponent"])({props:{website:{type:Object,required:!0},evolutionMetric:{type:String,required:!0},showSparklines:Boolean,dateSparkline:String,displayRevenueColumn:Boolean,metric:String},methods:{dashboardUrl:function(e){return"index.php?module=CoreHome&action=index&date=".concat(this.date,"&period=").concat(this.period)+"&idSite=".concat(e.idsite).concat(this.tokenParam)},sparklineImage:function(e){var t=this.metric;switch(this.evolutionMetric){case"visits_evolution":t="nb_visits";break;case"pageviews_evolution":t="nb_pageviews";break;case"revenue_evolution":t="revenue";break;default:break}return"index.php?module=MultiSites&action=getEvolutionGraph&period=".concat(this.period,"&date=")+"".concat(this.dateSparkline,"&evolutionBy=").concat(t,"&columns=").concat(t,"&idSite=").concat(e.idsite)+"&idsite=".concat(e.idsite,"&viewDataTable=sparkline").concat(this.tokenParam,"&colors=")+"".concat(encodeURIComponent(JSON.stringify(a["Matomo"].getSparklineColors())))}},computed:{tokenParam:function(){var e=a["MatomoUrl"].urlParsed.value.token_auth;return e.length?"&token_auth=".concat(e):""},period:function(){return a["Matomo"].period},date:function(){return a["MatomoUrl"].urlParsed.value.date},websiteLabel:function(){return a["Matomo"].helper.htmlDecode(this.website.label)}}}),T=i("b7b0"),I=i.n(T);D.render=A,"function"===typeof I.a&&I()(D);var G=D; +(function(e,t){"object"===typeof exports&&"object"===typeof module?module.exports=t(require("CoreHome"),require("vue")):"function"===typeof define&&define.amd?define(["CoreHome"],t):"object"===typeof exports?exports["MultiSites"]=t(require("CoreHome"),require("vue")):e["MultiSites"]=t(e["CoreHome"],e["Vue"])})("undefined"!==typeof self?self:this,(function(e,t){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var a=t[r]={i:r,l:!1,exports:{}};return e[r].call(a.exports,a,a.exports,n),a.l=!0,a.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"===typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)n.d(r,a,function(t){return e[t]}.bind(null,a));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="plugins/MultiSites/vue/dist/",n(n.s="fae3")}({"19dc":function(t,n){t.exports=e},"8bbf":function(e,n){e.exports=t},b7b0:function(e,t){},caf5:function(e,t){},fae3:function(e,t,n){"use strict";if(n.r(t),n.d(t,"MultisitesSite",(function(){return R})),n.d(t,"DashboadStore",(function(){return De})),n.d(t,"Dashboard",(function(){return Le})),"undefined"!==typeof window){var r=window.document.currentScript,a=r&&r.src.match(/(.+\/)[^/]+\.js(\?.*)?$/);a&&(n.p=a[1])}var o=n("19dc"),i=n("8bbf"),s={key:0,class:"multisites-label label"},l=["href"],c=["href","title"],u=Object(i["createElementVNode"])("span",{class:"icon icon-outlink"},null,-1),d=[u],b={key:1,class:"multisites-label label"},m={class:"value"},p={class:"multisites-column"},v={class:"value"},f={class:"multisites-column"},h={class:"value"},O={key:2,class:"multisites-column"},g={class:"value"},j=["title"],S={key:0,class:"visits value"},_=Object(i["createElementVNode"])("img",{class:"multisites_icon",src:"plugins/MultiSites/images/arrow_up.png",alt:""},null,-1),y=Object(i["createTextVNode"])(),w={style:{color:"green"}},k=Object(i["createElementVNode"])("img",{class:"multisites_icon",src:"plugins/MultiSites/images/stop.png",alt:""},null,-1),V=Object(i["createTextVNode"])(),N=Object(i["createElementVNode"])("img",{class:"multisites_icon",src:"plugins/MultiSites/images/arrow_down.png",alt:""},null,-1),E=Object(i["createTextVNode"])(),C={style:{color:"red"}},B={key:4,style:{width:"180px"}},M={key:0,class:"sparkline",style:{width:"100px",margin:"auto"}},P=["href","title"],T=["src"];function A(e,t,n,r,a,o){return Object(i["openBlock"])(),Object(i["createElementBlock"])("tr",{class:Object(i["normalizeClass"])({groupedWebsite:e.website.group,website:!e.website.group,group:e.website.isGroup})},[e.website.isGroup?Object(i["createCommentVNode"])("",!0):(Object(i["openBlock"])(),Object(i["createElementBlock"])("td",s,[Object(i["createElementVNode"])("a",{title:"View reports",class:"value truncated-text-line",href:e.dashboardUrl(e.website)},Object(i["toDisplayString"])(e.websiteLabel),9,l),Object(i["createElementVNode"])("span",null,[Object(i["createElementVNode"])("a",{rel:"noreferrer noopener",target:"_blank",href:e.website.main_url,title:e.translate("General_GoTo",e.website.main_url)},d,8,c)])])),e.website.isGroup?(Object(i["openBlock"])(),Object(i["createElementBlock"])("td",b,[Object(i["createElementVNode"])("span",m,Object(i["toDisplayString"])(e.websiteLabel),1)])):Object(i["createCommentVNode"])("",!0),Object(i["createElementVNode"])("td",p,[Object(i["createElementVNode"])("span",v,Object(i["toDisplayString"])(e.website.nb_visits),1)]),Object(i["createElementVNode"])("td",f,[Object(i["createElementVNode"])("span",h,Object(i["toDisplayString"])(e.website.nb_pageviews),1)]),e.displayRevenueColumn?(Object(i["openBlock"])(),Object(i["createElementBlock"])("td",O,[Object(i["createElementVNode"])("span",g,Object(i["toDisplayString"])(e.website.revenue),1)])):Object(i["createCommentVNode"])("",!0),"range"!==e.period?(Object(i["openBlock"])(),Object(i["createElementBlock"])("td",{key:3,class:"multisites-evolution",title:e.website.tooltip},[e.website.isGroup?Object(i["createCommentVNode"])("",!0):(Object(i["openBlock"])(),Object(i["createElementBlock"])("div",S,[Object(i["withDirectives"])(Object(i["createElementVNode"])("span",null,[_,y,Object(i["createElementVNode"])("span",w,Object(i["toDisplayString"])(e.website[e.evolutionMetric]),1)],512),[[i["vShow"],1===e.website["".concat(e.evolutionMetric,"_trend")]]]),Object(i["withDirectives"])(Object(i["createElementVNode"])("span",null,[k,V,Object(i["createElementVNode"])("span",null,Object(i["toDisplayString"])(e.website[e.evolutionMetric]),1)],512),[[i["vShow"],0===e.website["".concat(e.evolutionMetric,"_trend")]]]),Object(i["withDirectives"])(Object(i["createElementVNode"])("span",null,[N,E,Object(i["createElementVNode"])("span",C,Object(i["toDisplayString"])(e.website[e.evolutionMetric]),1)],512),[[i["vShow"],-1===e.website["".concat(e.evolutionMetric,"_trend")]]])]))],8,j)):Object(i["createCommentVNode"])("",!0),e.showSparklines?(Object(i["openBlock"])(),Object(i["createElementBlock"])("td",B,[e.website.isGroup?Object(i["createCommentVNode"])("",!0):(Object(i["openBlock"])(),Object(i["createElementBlock"])("div",M,[Object(i["createElementVNode"])("a",{rel:"noreferrer noopener",target:"_blank",href:e.dashboardUrl(e.website),title:e.translate("General_GoTo",e.translate("Dashboard_DashboardOf",e.websiteLabel))},[Object(i["createElementVNode"])("img",{alt:"",width:"100",height:"25",src:e.sparklineImage(e.website)},null,8,T)],8,P)]))])):Object(i["createCommentVNode"])("",!0)],2)}var D=Object(i["defineComponent"])({props:{website:{type:Object,required:!0},evolutionMetric:{type:String,required:!0},showSparklines:Boolean,dateSparkline:String,displayRevenueColumn:Boolean,metric:String},methods:{dashboardUrl:function(e){return"index.php?module=CoreHome&action=index&date=".concat(this.date,"&period=").concat(this.period)+"&idSite=".concat(e.idsite).concat(this.tokenParam)},sparklineImage:function(e){var t=this.metric;switch(this.evolutionMetric){case"visits_evolution":t="nb_visits";break;case"pageviews_evolution":t="nb_pageviews";break;case"revenue_evolution":t="revenue";break;default:break}return"index.php?module=MultiSites&action=getEvolutionGraph&period=".concat(this.period,"&date=")+"".concat(this.dateSparkline,"&evolutionBy=").concat(t,"&columns=").concat(t,"&idSite=").concat(e.idsite)+"&idsite=".concat(e.idsite,"&viewDataTable=sparkline").concat(this.tokenParam,"&colors=")+"".concat(encodeURIComponent(JSON.stringify(o["Matomo"].getSparklineColors())))}},computed:{tokenParam:function(){var e=o["MatomoUrl"].urlParsed.value.token_auth;return e.length?"&token_auth=".concat(e):""},period:function(){return o["Matomo"].period},date:function(){return o["MatomoUrl"].urlParsed.value.date},websiteLabel:function(){return o["Matomo"].helper.htmlDecode(this.website.label)}}}),x=n("b7b0"),G=n.n(x);D.render=A,"function"===typeof G.a&&G()(D);var R=D,L=(Object(o["createAngularJsAdapter"])({component:R,scope:{website:{angularJsBind:"="},evolutionMetric:{angularJsBind:"="},showSparklines:{angularJsBind:"="},dateSparkline:{angularJsBind:"="},displayRevenueColumn:{angularJsBind:"="},metric:{angularJsBind:"="}},directiveName:"piwikMultisitesSite"}),{class:"card-title"}),I=["innerHTML","title"],z={id:"mt",class:"dataTable card-table",cellspacing:"0"},U={class:"heading"},J={class:"heading"},H={class:"heading"},F={class:"heading"},q=["colspan"],W=["value"],K={value:"visits_evolution"},$={value:"pageviews_evolution"},Y={key:0,value:"revenue_evolution"},Q={key:0},X={colspan:"7",class:"allWebsitesLoading"},Z={key:1},ee={key:0},te={colspan:"7"},ne={class:"notification system notification-error"},re=Object(i["createElementVNode"])("br",null,null,-1),ae=Object(i["createElementVNode"])("br",null,null,-1),oe={rel:"noreferrer noopener",target:"_blank",href:"https://matomo.org/faq/troubleshooting/faq_19489/"},ie=Object(i["createTextVNode"])(" – "),se={rel:"noreferrer noopener",target:"_blank",href:"https://forum.matomo.org/"},le=["href"],ce=Object(i["createTextVNode"])(". "),ue={colspan:"8",class:"paging"},de={class:"row"},be={class:"col s3 add_new_site"},me={key:0,href:"addSiteUrl"},pe=Object(i["createElementVNode"])("span",{class:"icon-add"},null,-1),ve={class:"col s6"},fe={style:{cursor:"pointer"}},he={class:"dataTablePages"},Oe={id:"counter"},ge={style:{cursor:"pointer"},class:"pointer"},je=Object(i["createElementVNode"])("div",{class:"col s3"}," ",-1),Se={row_id:"last"},_e={colspan:"8",class:"site_search"},ye={class:"row"},we={class:"input-field col s12"},ke=["placeholder"],Ve=["title"]; /*! * Matomo - free/libre analytics platform * * @link https://matomo.org * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - */Object(a["createAngularJsAdapter"])({component:G,scope:{website:{angularJsBind:"="},evolutionMetric:{angularJsBind:"="},showSparklines:{angularJsBind:"="},dateSparkline:{angularJsBind:"="},displayRevenueColumn:{angularJsBind:"="},metric:{angularJsBind:"="}},directiveName:"piwikMultisitesSite"});function L(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function R(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function J(e,t,i){return t&&R(e.prototype,t),i&&R(e,i),e}function U(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e} + */function Ne(e,t,n,r,a,o){var s=this,l=Object(i["resolveComponent"])("EnrichedHeadline"),c=Object(i["resolveComponent"])("ActivityIndicator"),u=Object(i["resolveComponent"])("MultisitesSite");return Object(i["openBlock"])(),Object(i["createElementBlock"])("div",null,[Object(i["createElementVNode"])("h2",L,[Object(i["createVNode"])(l,{"help-url":"https://matomo.org/docs/manage-websites/#all-websites-dashboard","feature-name":e.translate("General_AllWebsitesDashboard")},{default:Object(i["withCtx"])((function(){return[Object(i["createTextVNode"])(Object(i["toDisplayString"])(e.translate("General_AllWebsitesDashboard"))+" ",1),Object(i["createElementVNode"])("span",{class:"smallTitle",innerHTML:e.$sanitize(s.smallTitleContent),title:e.smallTitleTooltip},null,8,I)]})),_:1},8,["feature-name"])]),Object(i["createElementVNode"])("table",z,[Object(i["createElementVNode"])("thead",null,[Object(i["createElementVNode"])("tr",null,[Object(i["createElementVNode"])("th",{id:"names",class:Object(i["normalizeClass"])(["label",{columnSorted:"label"===e.sortColumn}]),onClick:t[0]||(t[0]=function(t){return e.sortBy("label")})},[Object(i["createElementVNode"])("span",U,Object(i["toDisplayString"])(e.translate("General_Website")),1),Object(i["createElementVNode"])("span",{class:Object(i["normalizeClass"])(["arrow",{multisites_asc:!e.reverse&&"label"===e.sortColumn,multisites_desc:e.reverse&&"label"===e.sortColumn}])},null,2)],2),Object(i["createElementVNode"])("th",{id:"visits",class:Object(i["normalizeClass"])(["multisites-column",{columnSorted:"nb_visits"===e.sortColumn}]),onClick:t[1]||(t[1]=function(t){return e.sortBy("nb_visits")})},[Object(i["createElementVNode"])("span",{class:Object(i["normalizeClass"])(["arrow",{multisites_asc:!e.reverse&&"nb_visits"===e.sortColumn,multisites_desc:e.reverse&&"nb_visits"===e.sortColumn}])},null,2),Object(i["createElementVNode"])("span",J,Object(i["toDisplayString"])(e.translate("General_ColumnNbVisits")),1)],2),Object(i["createElementVNode"])("th",{id:"pageviews",class:Object(i["normalizeClass"])(["multisites-column",{columnSorted:"nb_pageviews"===e.sortColumn}]),onClick:t[2]||(t[2]=function(t){return e.sortBy("nb_pageviews")})},[Object(i["createElementVNode"])("span",{class:Object(i["normalizeClass"])(["arrow",{multisites_asc:!e.reverse&&"nb_pageviews"===e.sortColumn,multisites_desc:e.reverse&&"nb_pageviews"===e.sortColumn}])},null,2),Object(i["createElementVNode"])("span",H,Object(i["toDisplayString"])(e.translate("General_ColumnPageviews")),1)],2),e.displayRevenueColumn?(Object(i["openBlock"])(),Object(i["createElementBlock"])("th",{key:0,id:"revenue",class:Object(i["normalizeClass"])(["multisites-column",{columnSorted:"revenue"===e.sortColumn}]),onClick:t[3]||(t[3]=function(t){return e.sortBy("revenue")})},[Object(i["createElementVNode"])("span",{class:Object(i["normalizeClass"])(["arrow",{multisites_asc:!e.reverse&&"revenue"===e.sortColumn,multisites_desc:e.reverse&&"revenue"===e.sortColumn}])},null,2),Object(i["createElementVNode"])("span",F,Object(i["toDisplayString"])(e.translate("General_ColumnRevenue")),1)],2)):Object(i["createCommentVNode"])("",!0),Object(i["createElementVNode"])("th",{id:"evolution",class:Object(i["normalizeClass"])({columnSorted:e.evolutionSelector===e.sortColumn}),colspan:e.showSparklines?2:1},[Object(i["createElementVNode"])("span",{class:Object(i["normalizeClass"])(["arrow",{multisites_asc:!e.reverse&&e.evolutionSelector===e.sortColumn,multisites_desc:e.reverse&&e.evolutionSelector===e.sortColumn}])},null,2),Object(i["createElementVNode"])("span",{class:"evolution",onClick:t[4]||(t[4]=function(t){return e.sortBy(e.evolutionSelector)})},Object(i["toDisplayString"])(e.translate("MultiSites_Evolution")),1),Object(i["createElementVNode"])("select",{class:"selector browser-default",id:"evolution_selector",value:e.evolutionSelector,onChange:t[5]||(t[5]=function(t){e.evolutionSelector=t.target.value,e.sortBy(e.evolutionSelector)})},[Object(i["createElementVNode"])("option",K,Object(i["toDisplayString"])(e.translate("General_ColumnNbVisits")),1),Object(i["createElementVNode"])("option",$,Object(i["toDisplayString"])(e.translate("General_ColumnPageviews")),1),e.displayRevenueColumn?(Object(i["openBlock"])(),Object(i["createElementBlock"])("option",Y,Object(i["toDisplayString"])(e.translate("General_ColumnRevenue")),1)):Object(i["createCommentVNode"])("",!0)],40,W)],10,q)])]),e.isLoading?(Object(i["openBlock"])(),Object(i["createElementBlock"])("tbody",Q,[Object(i["createElementVNode"])("tr",null,[Object(i["createElementVNode"])("td",X,[Object(i["createVNode"])(c,{"loading-message":e.loadingMessage,loading:e.isLoading},null,8,["loading-message","loading"])])])])):Object(i["createCommentVNode"])("",!0),e.isLoading?Object(i["createCommentVNode"])("",!0):(Object(i["openBlock"])(),Object(i["createElementBlock"])("tbody",Z,[e.errorLoadingSites?(Object(i["openBlock"])(),Object(i["createElementBlock"])("tr",ee,[Object(i["createElementVNode"])("td",te,[Object(i["createElementVNode"])("div",ne,[Object(i["createTextVNode"])(Object(i["toDisplayString"])(e.translate("General_ErrorRequest","",""))+" ",1),re,ae,Object(i["createTextVNode"])(" "+Object(i["toDisplayString"])(e.translate("General_NeedMoreHelp"))+" ",1),Object(i["createElementVNode"])("a",oe,Object(i["toDisplayString"])(e.translate("General_Faq")),1),ie,Object(i["createElementVNode"])("a",se,Object(i["toDisplayString"])(e.translate("Feedback_CommunityHelp")),1),Object(i["withDirectives"])(Object(i["createElementVNode"])("span",null," – ",512),[[i["vShow"],e.areAdsForProfessionalServicesEnabled]]),Object(i["withDirectives"])(Object(i["createElementVNode"])("a",{rel:"noreferrer noopener",target:"_blank",href:e.professionalHelpUrl},Object(i["toDisplayString"])(e.translate("Feedback_ProfessionalHelp")),9,le),[[i["vShow"],e.areAdsForProfessionalServicesEnabled]]),ce])])])):Object(i["createCommentVNode"])("",!0),Object(i["createElementVNode"])("tr",null,[(Object(i["openBlock"])(!0),Object(i["createElementBlock"])(i["Fragment"],null,Object(i["renderList"])(e.sites,(function(t){return Object(i["openBlock"])(),Object(i["createBlock"])(u,{key:t.idsite,website:t,"evolution-metric":e.evolutionSelector,"date-sparkline":e.dateSparkline,"show-sparklines":e.showSparklines,metric:e.sortColumn,"display-revenue-column":e.displayRevenueColumn},null,8,["website","evolution-metric","date-sparkline","show-sparklines","metric","display-revenue-column"])})),128))])])),Object(i["createElementVNode"])("tfoot",null,[Object(i["createElementVNode"])("tr",null,[Object(i["withDirectives"])(Object(i["createElementVNode"])("td",ue,[Object(i["createElementVNode"])("div",de,[Object(i["createElementVNode"])("div",be,[e.hasSuperUserAccess?(Object(i["openBlock"])(),Object(i["createElementBlock"])("a",me,[pe,Object(i["createTextVNode"])(" "+Object(i["toDisplayString"])(e.translate("SitesManager_AddSite")),1)])):Object(i["createCommentVNode"])("",!0)]),Object(i["createElementVNode"])("div",ve,[Object(i["withDirectives"])(Object(i["createElementVNode"])("span",{id:"prev",class:"previous dataTablePrevious",onClick:t[6]||(t[6]=function(t){return e.previousPage()})},[Object(i["createElementVNode"])("span",fe,"« "+Object(i["toDisplayString"])(e.translate("General_Previous")),1)],512),[[i["vShow"],!(0===e.currentPage)]]),Object(i["createElementVNode"])("span",he,[Object(i["createElementVNode"])("span",Oe,Object(i["toDisplayString"])(e.translate("General_Pagination",e.paginationLowerBound,e.paginationUpperBound,e.numberOfFilteredSites)),1)]),Object(i["withDirectives"])(Object(i["createElementVNode"])("span",{id:"next",class:"next dataTableNext",onClick:t[7]||(t[7]=function(t){return e.nextPage()})},[Object(i["createElementVNode"])("span",ge,Object(i["toDisplayString"])(e.translate("General_Next"))+" »",1)],512),[[i["vShow"],!(e.currentPage>=e.numberOfPages)]])]),je])],512),[[i["vShow"],!(e.numberOfPages<=1)]])]),Object(i["createElementVNode"])("tr",Se,[Object(i["createElementVNode"])("td",_e,[Object(i["createElementVNode"])("div",ye,[Object(i["createElementVNode"])("div",we,[Object(i["withDirectives"])(Object(i["createElementVNode"])("input",{type:"text",onKeydown:t[8]||(t[8]=Object(i["withKeys"])((function(t){return e.searchSite(e.searchTerm)}),["enter"])),"onUpdate:modelValue":t[9]||(t[9]=function(t){return e.searchTerm=t}),placeholder:e.translate("Actions_SubmenuSitesearch")},null,40,ke),[[i["vModelText"],e.searchTerm]]),Object(i["createElementVNode"])("span",{class:"icon-search search_ico",onClick:t[10]||(t[10]=function(t){return e.searchSite(e.searchTerm)}),title:e.translate("General_ClickToSearch")},null,8,Ve)])])])])])])])}function Ee(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Ce(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function Be(e,t,n){return t&&Ce(e.prototype,t),n&&Ce(e,n),e}function Me(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e} /*! * Matomo - free/libre analytics platform * * @link https://matomo.org * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - */var q=window,z=q.NumberFormatter,H=function(){function e(){var t=this;L(this,e),U(this,"privateState",Object(o["reactive"])({sites:[],isLoading:!1,pageSize:25,currentPage:0,totalVisits:"?",totalPageviews:"?",totalActions:"?",totalRevenue:"?",searchTerm:"",lastVisits:"?",lastVisitsDate:"?",numberOfSites:0,loadingMessage:Object(a["translate"])("MultiSites_LoadingWebsites"),reverse:!0,sortColumn:"nb_visits",refreshInterval:0,errorLoadingSites:!1})),U(this,"refreshTimeout",null),U(this,"fetchAbort",null),U(this,"state",Object(o["computed"])((function(){return Object(o["readonly"])(t.privateState)}))),U(this,"numberOfFilteredSites",Object(o["computed"])((function(){return t.state.value.numberOfSites}))),U(this,"numberOfPages",Object(o["computed"])((function(){return Math.ceil(t.numberOfFilteredSites.value/t.state.value.pageSize-1)}))),U(this,"currentPagingOffset",Object(o["computed"])((function(){return Math.ceil(t.state.value.currentPage*t.state.value.pageSize)}))),U(this,"paginationLowerBound",Object(o["computed"])((function(){return t.currentPagingOffset.value+1}))),U(this,"paginationUpperBound",Object(o["computed"])((function(){var e=t.currentPagingOffset.value+t.state.value.pageSize,i=t.numberOfFilteredSites.value;return e>i&&(e=i),e})))}return J(e,[{key:"cancelRefereshInterval",value:function(){this.refreshTimeout&&(clearTimeout(this.refreshTimeout),this.refreshTimeout=null)}},{key:"updateWebsitesList",value:function(e){var t=this;if(e){var i=e.sites;i.forEach((function(e){if(1!==e.ratio&&"1"!==e.ratio){var i=z.formatPercent(Math.round(100*parseInt(e.ratio,10))),r=null,n="0",o="0",s="0",l="0";if("nb_visits"!==t.state.value.sortColumn&&"visits_evolution"!==t.state.value.sortColumn||(n=z.formatNumber(e.previous_nb_visits),o=z.formatNumber(e.nb_visits),s=z.formatPercent(e.visits_evolution),r=Object(a["translate"])("General_ColumnNbVisits"),l=z.formatNumber(Math.round(parseInt(e.previous_nb_visits,10)*parseInt(e.ratio,10)))),"pageviews_evolution"===t.state.value.sortColumn&&(n="".concat(e.previous_Actions_nb_pageviews),o="".concat(e.nb_pageviews),s=z.formatPercent(e.pageviews_evolution),r=Object(a["translate"])("General_ColumnPageviews"),l=z.formatNumber(Math.round(parseInt(e.previous_Actions_nb_pageviews,10)*parseInt(e.ratio,10)))),"revenue_evolution"===t.state.value.sortColumn&&(n=z.formatCurrency(e.previous_Goal_revenue,e.currencySymbol),o=z.formatCurrency(e.revenue,e.currencySymbol),s=z.formatPercent(e.revenue_evolution),r=Object(a["translate"])("General_ColumnRevenue"),l=z.formatCurrency(Math.round(parseInt(e.previous_Goal_revenue,10)*parseInt(e.ratio,10)),e.currencySymbol)),r)switch(e.tooltip="".concat(Object(a["translate"])("MultiSites_EvolutionComparisonIncomplete",[i]),"\n"),e.tooltip+="".concat(Object(a["translate"])("MultiSites_EvolutionComparisonProportional",[i,"".concat(l),r,"".concat(n)]),"\n"),e.periodName){case"day":e.tooltip+=Object(a["translate"])("MultiSites_EvolutionComparisonDay",["".concat(o),r,"".concat(l),e.previousRange,"".concat(s)]);break;case"week":e.tooltip+=Object(a["translate"])("MultiSites_EvolutionComparisonWeek",["".concat(o),r,"".concat(l),e.previousRange,"".concat(s)]);break;case"month":e.tooltip+=Object(a["translate"])("MultiSites_EvolutionComparisonMonth",["".concat(o),r,"".concat(l),e.previousRange,"".concat(s)]);break;case"year":e.tooltip+=Object(a["translate"])("MultiSites_EvolutionComparisonYear",["".concat(o),r,"".concat(l),e.previousRange,"".concat(s)]);break;default:break}}})),this.privateState.totalVisits=e.totals.nb_visits,this.privateState.totalPageviews=e.totals.nb_pageviews,this.privateState.totalActions=e.totals.nb_actions,this.privateState.totalRevenue=e.totals.revenue,this.privateState.lastVisits=e.totals.nb_visits_lastdate,this.privateState.sites=i,this.privateState.numberOfSites=e.numSites,this.privateState.lastVisitsDate=e.lastDate}else this.onError()}},{key:"sortBy",value:function(e){this.state.value.sortColumn===e&&(this.privateState.reverse=!this.state.value.reverse),this.privateState.sortColumn=e,this.fetchAllSites()}},{key:"previousPage",value:function(){this.privateState.currentPage=this.state.value.currentPage-1,this.fetchAllSites()}},{key:"nextPage",value:function(){this.privateState.currentPage=this.state.value.currentPage+1,this.fetchAllSites()}},{key:"searchSite",value:function(e){this.privateState.searchTerm=e,this.privateState.currentPage=0,this.fetchAllSites()}},{key:"fetchAllSites",value:function(){var e=this;this.fetchAbort&&(this.fetchAbort.abort(),this.fetchAbort=null,this.cancelRefereshInterval()),this.privateState.isLoading=!0,this.privateState.errorLoadingSites=!1;var t={module:"MultiSites",action:"getAllWithGroups",hideMetricsDoc:"1",filter_sort_order:"asc",filter_limit:this.state.value.pageSize,filter_offset:this.currentPagingOffset.value,showColumns:["label","nb_visits","nb_pageviews","visits_evolution","visits_evolution_trend","pageviews_evolution","pageviews_evolution_trend","revenue_evolution","revenue_evolution_trend","nb_actions,revenue"].join(",")};return this.privateState.searchTerm&&(t.pattern=this.privateState.searchTerm),this.privateState.sortColumn&&(t.filter_sort_column=this.privateState.sortColumn),this.privateState.reverse&&(t.filter_sort_order="desc"),this.fetchAbort=new AbortController,a["AjaxHelper"].fetch(t,{abortController:this.fetchAbort}).then((function(t){e.updateWebsitesList(t)})).catch((function(){e.onError()})).finally((function(){e.privateState.isLoading=!1,e.fetchAbort=null,e.state.value.refreshInterval&&e.state.value.refreshInterval>0&&(e.cancelRefereshInterval(),e.refreshTimeout=setTimeout((function(){e.refreshTimeout=null,e.fetchAllSites()}),1e3*e.state.value.refreshInterval))}))}},{key:"onError",value:function(){this.privateState.errorLoadingSites=!0,this.privateState.sites=[]}}]),e}(),W=new H}})})); + */var Pe=window,Te=Pe.NumberFormatter,Ae=function(){function e(){var t=this;Ee(this,e),Me(this,"privateState",Object(i["reactive"])({sites:[],isLoading:!1,pageSize:25,currentPage:0,totalVisits:"?",totalPageviews:"?",totalActions:"?",totalRevenue:"?",searchTerm:"",lastVisits:"?",lastVisitsDate:"?",numberOfSites:0,loadingMessage:Object(o["translate"])("MultiSites_LoadingWebsites"),reverse:!0,sortColumn:"nb_visits",refreshInterval:0,errorLoadingSites:!1})),Me(this,"refreshTimeout",null),Me(this,"fetchAbort",null),Me(this,"state",Object(i["computed"])((function(){return Object(i["readonly"])(t.privateState)}))),Me(this,"numberOfFilteredSites",Object(i["computed"])((function(){return t.state.value.numberOfSites}))),Me(this,"numberOfPages",Object(i["computed"])((function(){return Math.ceil(t.numberOfFilteredSites.value/t.state.value.pageSize-1)}))),Me(this,"currentPagingOffset",Object(i["computed"])((function(){return Math.ceil(t.state.value.currentPage*t.state.value.pageSize)}))),Me(this,"paginationLowerBound",Object(i["computed"])((function(){return t.currentPagingOffset.value+1}))),Me(this,"paginationUpperBound",Object(i["computed"])((function(){var e=t.currentPagingOffset.value+t.state.value.pageSize,n=t.numberOfFilteredSites.value;return e>n&&(e=n),e})))}return Be(e,[{key:"cancelRefereshInterval",value:function(){this.refreshTimeout&&(clearTimeout(this.refreshTimeout),this.refreshTimeout=null)}},{key:"updateWebsitesList",value:function(e){var t=this;if(e){var n=e.sites;n.forEach((function(e){if(1!==e.ratio&&"1"!==e.ratio){var n=Te.formatPercent(Math.round(100*parseInt(e.ratio,10))),r=null,a="0",i="0",s="0",l="0";if("nb_visits"!==t.state.value.sortColumn&&"visits_evolution"!==t.state.value.sortColumn||(a=Te.formatNumber(e.previous_nb_visits),i=Te.formatNumber(e.nb_visits),s=Te.formatPercent(e.visits_evolution),r=Object(o["translate"])("General_ColumnNbVisits"),l=Te.formatNumber(Math.round(parseInt(e.previous_nb_visits,10)*parseInt(e.ratio,10)))),"pageviews_evolution"===t.state.value.sortColumn&&(a="".concat(e.previous_Actions_nb_pageviews),i="".concat(e.nb_pageviews),s=Te.formatPercent(e.pageviews_evolution),r=Object(o["translate"])("General_ColumnPageviews"),l=Te.formatNumber(Math.round(parseInt(e.previous_Actions_nb_pageviews,10)*parseInt(e.ratio,10)))),"revenue_evolution"===t.state.value.sortColumn&&(a=Te.formatCurrency(e.previous_Goal_revenue,e.currencySymbol),i=Te.formatCurrency(e.revenue,e.currencySymbol),s=Te.formatPercent(e.revenue_evolution),r=Object(o["translate"])("General_ColumnRevenue"),l=Te.formatCurrency(Math.round(parseInt(e.previous_Goal_revenue,10)*parseInt(e.ratio,10)),e.currencySymbol)),r)switch(e.tooltip="".concat(Object(o["translate"])("MultiSites_EvolutionComparisonIncomplete",[n]),"\n"),e.tooltip+="".concat(Object(o["translate"])("MultiSites_EvolutionComparisonProportional",[n,"".concat(l),r,"".concat(a)]),"\n"),e.periodName){case"day":e.tooltip+=Object(o["translate"])("MultiSites_EvolutionComparisonDay",["".concat(i),r,"".concat(l),e.previousRange,"".concat(s)]);break;case"week":e.tooltip+=Object(o["translate"])("MultiSites_EvolutionComparisonWeek",["".concat(i),r,"".concat(l),e.previousRange,"".concat(s)]);break;case"month":e.tooltip+=Object(o["translate"])("MultiSites_EvolutionComparisonMonth",["".concat(i),r,"".concat(l),e.previousRange,"".concat(s)]);break;case"year":e.tooltip+=Object(o["translate"])("MultiSites_EvolutionComparisonYear",["".concat(i),r,"".concat(l),e.previousRange,"".concat(s)]);break;default:break}}})),this.privateState.totalVisits=e.totals.nb_visits,this.privateState.totalPageviews=e.totals.nb_pageviews,this.privateState.totalActions=e.totals.nb_actions,this.privateState.totalRevenue=e.totals.revenue,this.privateState.lastVisits=e.totals.nb_visits_lastdate,this.privateState.sites=n,this.privateState.numberOfSites=e.numSites,this.privateState.lastVisitsDate=e.lastDate}else this.onError()}},{key:"sortBy",value:function(e){this.state.value.sortColumn===e&&(this.privateState.reverse=!this.state.value.reverse),this.privateState.sortColumn=e,this.fetchAllSites()}},{key:"previousPage",value:function(){this.privateState.currentPage=this.state.value.currentPage-1,this.fetchAllSites()}},{key:"nextPage",value:function(){this.privateState.currentPage=this.state.value.currentPage+1,this.fetchAllSites()}},{key:"searchSite",value:function(e){this.privateState.searchTerm=e,this.privateState.currentPage=0,this.fetchAllSites()}},{key:"fetchAllSites",value:function(){var e=this;this.fetchAbort&&(this.fetchAbort.abort(),this.fetchAbort=null,this.cancelRefereshInterval()),this.privateState.isLoading=!0,this.privateState.errorLoadingSites=!1;var t={module:"MultiSites",action:"getAllWithGroups",hideMetricsDoc:"1",filter_sort_order:"asc",filter_limit:this.state.value.pageSize,filter_offset:this.currentPagingOffset.value,showColumns:["label","nb_visits","nb_pageviews","visits_evolution","visits_evolution_trend","pageviews_evolution","pageviews_evolution_trend","revenue_evolution","revenue_evolution_trend","nb_actions,revenue"].join(",")};return this.privateState.searchTerm&&(t.pattern=this.privateState.searchTerm),this.privateState.sortColumn&&(t.filter_sort_column=this.privateState.sortColumn),this.privateState.reverse&&(t.filter_sort_order="desc"),this.fetchAbort=new AbortController,o["AjaxHelper"].fetch(t,{abortController:this.fetchAbort}).then((function(t){e.updateWebsitesList(t)})).catch((function(){e.onError()})).finally((function(){e.privateState.isLoading=!1,e.fetchAbort=null,e.state.value.refreshInterval&&e.state.value.refreshInterval>0&&(e.cancelRefereshInterval(),e.refreshTimeout=setTimeout((function(){e.refreshTimeout=null,e.fetchAllSites()}),1e3*e.state.value.refreshInterval))}))}},{key:"onError",value:function(){this.privateState.errorLoadingSites=!0,this.privateState.sites=[]}},{key:"setRefreshInterval",value:function(e){this.privateState.refreshInterval=e}},{key:"setPageSize",value:function(e){this.privateState.pageSize=e}}]),e}(),De=new Ae,xe=Object(i["defineComponent"])({props:{displayRevenueColumn:Boolean,showSparklines:Boolean,dateSparkline:String,pageSize:Number,autoRefreshTodayReport:Number},components:{EnrichedHeadline:o["EnrichedHeadline"],ActivityIndicator:o["ActivityIndicator"],MultisitesSite:R},data:function(){return{evolutionSelector:"visits_evolution",searchTerm:""}},created:function(){this.pageSize&&De.setPageSize(this.pageSize),this.refresh(this.autoRefreshTodayReport)},methods:{refresh:function(e){De.setRefreshInterval(e),De.fetchAllSites()},sortBy:function(e){De.sortBy(e)},previousPage:function(){De.previousPage()},nextPage:function(){De.nextPage()},searchSite:function(){De.searchSite(this.searchTerm)}},computed:{hasSuperUserAccess:function(){return o["Matomo"].hasSuperUserAccess},date:function(){return o["MatomoUrl"].urlParsed.value.date},idSite:function(){return o["MatomoUrl"].urlParsed.value.idSite},url:function(){return o["Matomo"].piwik_url},period:function(){return o["Matomo"].period},areAdsForProfessionalServicesEnabled:function(){return o["Matomo"].config&&o["Matomo"].config.are_ads_enabled},sortColumn:function(){return De.state.value.sortColumn},reverse:function(){return De.state.value.reverse},smallTitleContent:function(){var e=De.state.value;return Object(o["translate"])("General_TotalVisitsPageviewsActionsRevenue","<strong>".concat(e.totalVisits,"</strong>"),"<strong>".concat(e.totalPageviews,"</strong>"),"<strong>".concat(e.totalActions,"</strong>"),"<strong>".concat(e.totalRevenue,"</strong>"))},smallTitleTooltip:function(){var e=De.state.value;return Object(o["translate"])("General_EvolutionSummaryGeneric",Object(o["translate"])("General_NVisits","".concat(e.totalVisits)),this.date,"".concat(e.lastVisits),e.lastVisitsDate,Object(o["getFormattedEvolution"])(e.totalVisits,e.lastVisits))},loadingMessage:function(){return De.state.value.loadingMessage},isLoading:function(){return De.state.value.isLoading},errorLoadingSites:function(){return De.state.value.errorLoadingSites},sites:function(){return De.state.value.sites},numberOfPages:function(){return De.numberOfPages.value},currentPage:function(){return De.state.value.currentPage},paginationLowerBound:function(){return De.paginationLowerBound.value},paginationUpperBound:function(){return De.paginationUpperBound.value},numberOfFilteredSites:function(){return De.numberOfFilteredSites.value},professionalHelpUrl:function(){return"https://matomo.org/support-plans/?pk_campaign=Help&pk_medium=AjaxError&pk_content=MultiSites&pk_source=Matomo_App"},addSiteUrl:function(){return"index.php?module=SitesManager&action=index&showaddsite=1&period=".concat(this.period,"&")+"date=".concat(this.date,"&idSite=").concat(this.idSite)}}}),Ge=n("caf5"),Re=n.n(Ge);xe.render=Ne,"function"===typeof Re.a&&Re()(xe);var Le=xe; +/*! + * Matomo - free/libre analytics platform + * + * @link https://matomo.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + */Object(o["createAngularJsAdapter"])({component:Le,scope:{displayRevenueColumn:{angularJsBind:"@",transform:o["transformAngularJsBoolAttr"]},showSparklines:{angularJsBind:"@",transform:o["transformAngularJsBoolAttr"]},dateSparkline:{angularJsBind:"@"},pageSize:{angularJsBind:"@",transform:o["transformAngularJsIntAttr"]},autoRefreshTodayReport:{angularJsBind:"@",transform:o["transformAngularJsIntAttr"]}},directiveName:"piwikMultisitesDashboard"})}})})); //# sourceMappingURL=MultiSites.umd.min.js.map
\ No newline at end of file diff --git a/plugins/MultiSites/vue/src/Dashboard/Dashboard.adapter.ts b/plugins/MultiSites/vue/src/Dashboard/Dashboard.adapter.ts new file mode 100644 index 0000000000..5db60f3d24 --- /dev/null +++ b/plugins/MultiSites/vue/src/Dashboard/Dashboard.adapter.ts @@ -0,0 +1,39 @@ +/*! + * Matomo - free/libre analytics platform + * + * @link https://matomo.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + */ + +import { + createAngularJsAdapter, + transformAngularJsBoolAttr, + transformAngularJsIntAttr, +} from 'CoreHome'; +import Dashboard from './Dashboard.vue'; + +export default createAngularJsAdapter({ + component: Dashboard, + scope: { + displayRevenueColumn: { + angularJsBind: '@', + transform: transformAngularJsBoolAttr, + }, + showSparklines: { + angularJsBind: '@', + transform: transformAngularJsBoolAttr, + }, + dateSparkline: { + angularJsBind: '@', + }, + pageSize: { + angularJsBind: '@', + transform: transformAngularJsIntAttr, + }, + autoRefreshTodayReport: { + angularJsBind: '@', + transform: transformAngularJsIntAttr, + }, + }, + directiveName: 'piwikMultisitesDashboard', +}); diff --git a/plugins/MultiSites/vue/src/Dashboard/Dashboard.less b/plugins/MultiSites/vue/src/Dashboard/Dashboard.less new file mode 100644 index 0000000000..37d05ce83a --- /dev/null +++ b/plugins/MultiSites/vue/src/Dashboard/Dashboard.less @@ -0,0 +1,292 @@ + +.smallTitle { + font-size: 15px; +} + +.widget { + #multisites { + padding: 15px; + } +} + +#mt { + table.dataTable td.label img { + margin-top: -8px; + } +} + +#multisites { + + > .col { + padding-left: 0; + padding-right: 0; + } + + .notification-error { + margin-top: 15px; + a { + text-decoration: underline !important; + } + } + + .add_new_site { + border: 0 !important; + font-size: 13px; + text-align: left; + padding-left: 27px; + + a { + color: @theme-color-text; + &:hover { + text-decoration: underline !important; + } + } + } + + .clean { + border: 0 !important; + text-align: right; + padding-right:10px; + padding-top: 19px; + padding-bottom: 5px; + } + + @media print{ + .add_new_site{ + display: none; + } + + .row .col.s6{ + width: 100%; + } + + .row .col.s3{ + display: none; + } + + } + + .site_search { + padding: 0; + text-align: center; + border: 0 !important; + @media print{ + display: none; + } + } + + .multisites-evolution, + .multisites-column { + text-align: right; + } + + .multisites-evolution { + width:170px; + } + + td, tr, .sparkline { + text-align: center; + vertical-align: middle; + } + + td.empty-row { + border-bottom: none !important; + } + + .paging { + padding: 5px; + border-bottom: 0 !important; + + .row { + margin-top: 16px; + } + + .previous { + visibility: visible; + } + .next { + visibility: visible; + } + } + + th:first-child { + text-align:left; + padding-left: 32px; + } + + th { + cursor: pointer; + text-align: right; + padding-right: 0 !important; + + &#evolution { + text-align: center; + } + + &.columnSorted { + font-weight: normal !important; + } + } + + .site_search input { + margin-right: 0; + margin-left: 25px; + padding-right: 25px; + width: 250px; + height: 3rem; + padding-left: 5px; + } + + .site_search { + label { + position: static; + } + .row,.input-field { + margin-bottom: 0; + } + } + + .search_ico { + position: relative; + left: -30px; + top: 1px; + cursor: pointer; + font-size: 16px; + } + .reset { + position: relative; + left: -25px; + cursor: pointer; + margin-right: 0; + } + + tr.group { + font-weight: bold; + height: 30px; + } + tr.groupedWebsite .label { + padding-left: 50px; + } + td.multisites-label { + text-align: left; + width: 250px; + max-width: 250px; + padding-left: 32px; + + a { + width: auto; + float: left; + padding-right: 0.5em; + } + } + td.multisites-label a:hover { + text-decoration: underline; + } + + td.multisites-column, + th.multisites-column { + width: 70px; + white-space: nowrap; + } + + td.multisites-column-evolution, + th.multisites-column-evolution { + width: 70px; + } + + th#evolution { + width:350px; + } + + th#visits { + width: 100px; + } + + th#pageviews { + width: 110px; + } + + th#revenue { + width: 110px; + } + + .evolution { + cursor:pointer; + } + + .allWebsitesLoading { + padding:20px + } + + .heading { + display: inline; + margin-top: 4px; + } + + #evolution_selector { + height: 28px; + margin: -9px 0 0 5px; + width: 80px; + display: inline-block; + } + + .label .arrow { + margin-left: 2px; + } + + .multisites_asc, + .multisites_desc { + float: none; + display: inline-block; + vertical-align: top; + margin: 0; + margin-left: 6px; + margin-top: -1px; + } + + #evolution { + .multisites_asc, + .multisites_desc { + margin-right: 6px; + margin-left: 0; + } + .evolution { + vertical-align: top; + } + } + + .multisites_asc { + margin-top: -7px; + vertical-align: top; + } + + .multisites_desc:after { + content: " \25BC"; + font-size: 1px; + color: @theme-color-brand; + border-left: 4px solid rgba(0, 0, 0, 0); + border-right: 4px solid rgba(0, 0, 0, 0); + border-top: 5px solid @theme-color-brand; + } + .multisites_asc:after { + content: " \25BC"; + font-size: 1px; + color: @theme-color-brand; + border-left: 4px solid rgba(0, 0, 0, 0); + border-right: 4px solid rgba(0, 0, 0, 0); + border-bottom: 5px solid @theme-color-brand; + } + + .multisites_icon { + display: inline-block; + vertical-align: middle; + } + + div.sparkline { + float:none; + } + + tfoot td { + border-bottom: 0; + } +} diff --git a/plugins/MultiSites/vue/src/Dashboard/Dashboard.store.ts b/plugins/MultiSites/vue/src/Dashboard/Dashboard.store.ts index fabfff4220..2b9080a00c 100644 --- a/plugins/MultiSites/vue/src/Dashboard/Dashboard.store.ts +++ b/plugins/MultiSites/vue/src/Dashboard/Dashboard.store.ts @@ -5,16 +5,10 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later */ -// TODO: -// - state property types -// - method signatures -// - method code - import { reactive, computed, readonly, - DeepReadonly, } from 'vue'; import { AjaxHelper, @@ -65,7 +59,7 @@ interface DashboardStoreState { loadingMessage: string; reverse: boolean; sortColumn: string; - refreshInterval: number; + refreshInterval?: number; errorLoadingSites: boolean; } @@ -343,7 +337,7 @@ class DashboardStore { this.refreshTimeout = setTimeout(() => { this.refreshTimeout = null; this.fetchAllSites(); - }, this.state.value.refreshInterval * 1000); + }, this.state.value.refreshInterval! * 1000); } }); } @@ -352,6 +346,14 @@ class DashboardStore { this.privateState.errorLoadingSites = true; this.privateState.sites = []; } + + setRefreshInterval(interval?: number): void { + this.privateState.refreshInterval = interval; + } + + setPageSize(pageSize: number): void { + this.privateState.pageSize = pageSize; + } } export default new DashboardStore(); diff --git a/plugins/MultiSites/vue/src/Dashboard/Dashboard.vue b/plugins/MultiSites/vue/src/Dashboard/Dashboard.vue new file mode 100644 index 0000000000..413d02aa00 --- /dev/null +++ b/plugins/MultiSites/vue/src/Dashboard/Dashboard.vue @@ -0,0 +1,409 @@ +<!-- + Matomo - free/libre analytics platform + @link https://matomo.org + @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later +--> + +<todo> +- test in UI +- create PR +</todo> + +<template> + <div> + <h2 class="card-title"> + <EnrichedHeadline + help-url="https://matomo.org/docs/manage-websites/#all-websites-dashboard" + :feature-name="translate('General_AllWebsitesDashboard')" + > + {{ translate('General_AllWebsitesDashboard') }} + <span + class="smallTitle" + v-html="$sanitize(this.smallTitleContent)" + :title="smallTitleTooltip" + > + </span> + </EnrichedHeadline> + </h2> + <table + id="mt" + class="dataTable card-table" + cellspacing="0" + > + <thead> + <tr> + <th + id="names" + class="label" + @click="sortBy('label')" + :class="{columnSorted: 'label' === sortColumn}" + > + <span class="heading">{{ translate('General_Website') }}</span> + <span + class="arrow" + :class="{ + multisites_asc: !reverse && 'label' === sortColumn, + multisites_desc: reverse && 'label' === sortColumn, + }" + /> + </th> + <th + id="visits" + class="multisites-column" + @click="sortBy('nb_visits')" + :class="{columnSorted: 'nb_visits' === sortColumn}" + > + <span + class="arrow" + :class="{ + multisites_asc: !reverse && 'nb_visits' === sortColumn, + multisites_desc: reverse && 'nb_visits' === sortColumn, + }" + /> + <span class="heading">{{ translate('General_ColumnNbVisits') }}</span> + </th> + <th + id="pageviews" + class="multisites-column" + @click="sortBy('nb_pageviews')" + :class="{columnSorted: 'nb_pageviews' === sortColumn}" + > + <span + class="arrow" + :class="{ + multisites_asc: !reverse && 'nb_pageviews' === sortColumn, + multisites_desc: reverse && 'nb_pageviews' === sortColumn, + }" + /> + <span class="heading">{{ translate('General_ColumnPageviews') }}</span> + </th> + <th + id="revenue" + class="multisites-column" + v-if="displayRevenueColumn" + @click="sortBy('revenue')" + :class="{columnSorted: 'revenue' === sortColumn}" + > + <span + class="arrow" + :class="{ + multisites_asc: !reverse && 'revenue' === sortColumn, + multisites_desc: reverse && 'revenue' === sortColumn, + }" + /> + <span class="heading">{{ translate('General_ColumnRevenue') }}</span> + </th> + <th + id="evolution" + :class="{columnSorted: evolutionSelector === sortColumn}" + :colspan="showSparklines ? 2 : 1" + > + <span + class="arrow" + :class="{ + multisites_asc: !reverse && evolutionSelector === sortColumn, + multisites_desc: reverse && evolutionSelector === sortColumn, + }" + /> + <span + class="evolution" + @click="sortBy(evolutionSelector)" + > {{ translate('MultiSites_Evolution') }}</span> + <select + class="selector browser-default" + id="evolution_selector" + :value="evolutionSelector" + @change="evolutionSelector = $event.target.value; sortBy(evolutionSelector)" + > + <option value="visits_evolution">{{ translate('General_ColumnNbVisits') }}</option> + <option value="pageviews_evolution"> + {{ translate('General_ColumnPageviews') }} + </option> + <option + value="revenue_evolution" + v-if="displayRevenueColumn" + > + {{ translate('General_ColumnRevenue') }} + </option> + </select> + </th> + </tr> + </thead> + <tbody v-if="isLoading"> + <tr> + <td + colspan="7" + class="allWebsitesLoading" + > + <ActivityIndicator + :loading-message="loadingMessage" + :loading="isLoading" + /> + </td> + </tr> + </tbody> + <tbody v-if="!isLoading"> + <tr v-if="errorLoadingSites"> + <td colspan="7"> + <div class="notification system notification-error"> + {{ translate('General_ErrorRequest', '', '') }} + <br /><br /> + {{ translate('General_NeedMoreHelp') }} + <a + rel="noreferrer noopener" + target="_blank" + href="https://matomo.org/faq/troubleshooting/faq_19489/" + >{{ translate('General_Faq') }}</a> + – + <a + rel="noreferrer noopener" + target="_blank" + href="https://forum.matomo.org/" + >{{ translate('Feedback_CommunityHelp') }}</a> + <span v-show="areAdsForProfessionalServicesEnabled"> – </span> + <a + rel="noreferrer noopener" + target="_blank" + :href="professionalHelpUrl" + v-show="areAdsForProfessionalServicesEnabled" + >{{ translate('Feedback_ProfessionalHelp') }}</a>. + </div> + </td> + </tr> + <tr> + <MultisitesSite + v-for="website in sites" + :key="website.idsite" + :website="website" + :evolution-metric="evolutionSelector" + :date-sparkline="dateSparkline" + :show-sparklines="showSparklines" + :metric="sortColumn" + :display-revenue-column="displayRevenueColumn" + > + </MultisitesSite> + </tr> + </tbody> + <tfoot> + <tr> + <td + colspan="8" + class="paging" + v-show="!(numberOfPages <= 1)" + > + <div class="row"> + <div class="col s3 add_new_site"> + <a + href="addSiteUrl" + v-if="hasSuperUserAccess" + > + <span class="icon-add" /> {{ translate('SitesManager_AddSite') }} + </a> + </div> + <div class="col s6"> + <span + id="prev" + class="previous dataTablePrevious" + @click="previousPage()" + v-show="!(currentPage === 0)" + > + <span style="cursor:pointer;">« {{ translate('General_Previous') }}</span> + </span> + <span class="dataTablePages"> + <span id="counter"> + {{ translate( + 'General_Pagination', + paginationLowerBound, + paginationUpperBound, + numberOfFilteredSites, + ) }} + </span> + </span> + <span + id="next" + class="next dataTableNext" + @click="nextPage()" + v-show="!(currentPage >= numberOfPages)" + > + <span + style="cursor:pointer;" + class="pointer" + >{{ translate('General_Next') }} »</span> + </span> + </div> + <div class="col s3">&nbsp;</div> + </div> + </td> + </tr> + <tr row_id="last"> + <td + colspan="8" + class="site_search" + > + <div class="row"> + <div class="input-field col s12"> + <input + type="text" + @keydown.enter="searchSite(searchTerm)" + v-model="searchTerm" + :placeholder="translate('Actions_SubmenuSitesearch')" + /> + <span + class="icon-search search_ico" + @click="searchSite(searchTerm)" + :title="translate('General_ClickToSearch')" + /> + </div> + </div> + </td> + </tr> + </tfoot> + </table> + </div> +</template> + +<script lang="ts"> +import { defineComponent } from 'vue'; +import { + translate, + Matomo, + EnrichedHeadline, + ActivityIndicator, + MatomoUrl, + getFormattedEvolution, +} from 'CoreHome'; +import MultisitesSite from '../MultisitesSite/MultisitesSite.vue'; +import DashboardStore from './Dashboard.store'; + +interface DashboardState { + evolutionSelector: string; + searchTerm: string; +} + +export default defineComponent({ + props: { + displayRevenueColumn: Boolean, + showSparklines: Boolean, + dateSparkline: String, + pageSize: Number, + autoRefreshTodayReport: Number, + }, + components: { + EnrichedHeadline, + ActivityIndicator, + MultisitesSite, + }, + data(): DashboardState { + return { + evolutionSelector: 'visits_evolution', + searchTerm: '', + }; + }, + created() { + if (this.pageSize) { + DashboardStore.setPageSize(this.pageSize); + } + this.refresh(this.autoRefreshTodayReport); + }, + methods: { + refresh(interval?: number) { + DashboardStore.setRefreshInterval(interval); + DashboardStore.fetchAllSites(); + }, + sortBy(column: string) { + DashboardStore.sortBy(column); + }, + previousPage() { + DashboardStore.previousPage(); + }, + nextPage() { + DashboardStore.nextPage(); + }, + searchSite() { + DashboardStore.searchSite(this.searchTerm); + }, + }, + computed: { + hasSuperUserAccess() { + return Matomo.hasSuperUserAccess; + }, + date() { + return MatomoUrl.urlParsed.value.date as string; + }, + idSite() { + return MatomoUrl.urlParsed.value.idSite as string; + }, + url() { + return Matomo.piwik_url; + }, + period() { + return Matomo.period; + }, + areAdsForProfessionalServicesEnabled() { + return Matomo.config && Matomo.config.are_ads_enabled; + }, + sortColumn() { + return DashboardStore.state.value.sortColumn; + }, + reverse() { + return DashboardStore.state.value.reverse; + }, + smallTitleContent() { + const state = DashboardStore.state.value; + return translate( + 'General_TotalVisitsPageviewsActionsRevenue', + `<strong>${state.totalVisits}</strong>`, + `<strong>${state.totalPageviews}</strong>`, + `<strong>${state.totalActions}</strong>`, + `<strong>${state.totalRevenue}</strong>`, + ); + }, + smallTitleTooltip() { + const state = DashboardStore.state.value; + return translate( + 'General_EvolutionSummaryGeneric', + translate('General_NVisits', `${state.totalVisits}`), + this.date, + `${state.lastVisits}`, + state.lastVisitsDate, + getFormattedEvolution(state.totalVisits, state.lastVisits), + ); + }, + loadingMessage() { + return DashboardStore.state.value.loadingMessage; + }, + isLoading() { + return DashboardStore.state.value.isLoading; + }, + errorLoadingSites() { + return DashboardStore.state.value.errorLoadingSites; + }, + sites() { + return DashboardStore.state.value.sites; + }, + numberOfPages() { + return DashboardStore.numberOfPages.value; + }, + currentPage() { + return DashboardStore.state.value.currentPage; + }, + paginationLowerBound() { + return DashboardStore.paginationLowerBound.value; + }, + paginationUpperBound() { + return DashboardStore.paginationUpperBound.value; + }, + numberOfFilteredSites() { + return DashboardStore.numberOfFilteredSites.value; + }, + professionalHelpUrl() { + return 'https://matomo.org/support-plans/?pk_campaign=Help&pk_medium=AjaxError&pk_content=' + + 'MultiSites&pk_source=Matomo_App'; + }, + addSiteUrl() { + return `index.php?module=SitesManager&action=index&showaddsite=1&period=${this.period}&` + + `date=${this.date}&idSite=${this.idSite}`; + }, + }, +}); +</script> diff --git a/plugins/MultiSites/vue/src/index.ts b/plugins/MultiSites/vue/src/index.ts index f2a68220cd..b7042f0ce9 100644 --- a/plugins/MultiSites/vue/src/index.ts +++ b/plugins/MultiSites/vue/src/index.ts @@ -6,6 +6,8 @@ */ import './MultisitesSite/MultisitesSite.adapter'; +import './Dashboard/Dashboard.adapter'; export { default as MultisitesSite } from './MultisitesSite/MultisitesSite.vue'; export { default as DashboadStore } from './Dashboard/Dashboard.store'; +export { default as Dashboard } from './Dashboard/Dashboard.vue'; |