Commit e9eea300 authored by Mark Harding's avatar Mark Harding
Browse files

Merge branch 'feat/entity-centric-metrics' into 'epic/pro-affiliate-launch'

Entity centric metrics (analytics v2)

See merge request !579
parents d92a1503 3612bb8f
Loading
Loading
Loading
Loading
+2 −5
Original line number Original line Diff line number Diff line
@@ -7,17 +7,14 @@
    {
    {
      "root": "src",
      "root": "src",
      "outDir": "dist",
      "outDir": "dist",
      "assets": [
      "assets": ["assets", "favicon.ico"],
        "assets",
        "favicon.ico"
      ],
      "index": "index.php",
      "index": "index.php",
      "main": "main.ts",
      "main": "main.ts",
      "polyfills": "polyfills.ts",
      "polyfills": "polyfills.ts",
      "test": "test.ts",
      "test": "test.ts",
      "tsconfig": "tsconfig.app.json",
      "tsconfig": "tsconfig.app.json",
      "testTsconfig": "tsconfig.spec.json",
      "testTsconfig": "tsconfig.spec.json",
      "prefix": "app",
      "prefix": "m",
      "styles": [
      "styles": [
        "../node_modules/material-design-lite/dist/material.blue_grey-amber.min.css",
        "../node_modules/material-design-lite/dist/material.blue_grey-amber.min.css",
        "../node_modules/material-design-icons/iconfont/material-icons.css",
        "../node_modules/material-design-icons/iconfont/material-icons.css",
+12 −27
Original line number Original line Diff line number Diff line
@@ -16,10 +16,7 @@
            "main": "src/main.ts",
            "main": "src/main.ts",
            "tsConfig": "src/tsconfig.app.json",
            "tsConfig": "src/tsconfig.app.json",
            "polyfills": "src/polyfills.ts",
            "polyfills": "src/polyfills.ts",
            "assets": [
            "assets": ["src/assets", "src/favicon.ico"],
              "src/assets",
              "src/favicon.ico"
            ],
            "styles": [
            "styles": [
              "node_modules/material-design-lite/dist/material.blue_grey-amber.min.css",
              "node_modules/material-design-lite/dist/material.blue_grey-amber.min.css",
              "node_modules/material-design-icons/iconfont/material-icons.css",
              "node_modules/material-design-icons/iconfont/material-icons.css",
@@ -83,22 +80,14 @@
              "node_modules/medium-editor/dist/js/medium-editor.min.js",
              "node_modules/medium-editor/dist/js/medium-editor.min.js",
              "src/shims/jitsi-api.min.js"
              "src/shims/jitsi-api.min.js"
            ],
            ],
            "assets": [
            "assets": ["src/assets", "src/favicon.ico"]
              "src/assets",
              "src/favicon.ico"
            ]
          }
          }
        },
        },
        "lint": {
        "lint": {
          "builder": "@angular-devkit/build-angular:tslint",
          "builder": "@angular-devkit/build-angular:tslint",
          "options": {
          "options": {
            "tsConfig": [
            "tsConfig": ["src/tsconfig.app.json", "src/tsconfig.spec.json"],
              "src/tsconfig.app.json",
            "exclude": ["**/node_modules/**"]
              "src/tsconfig.spec.json"
            ],
            "exclude": [
              "**/node_modules/**"
            ]
          }
          }
        }
        }
      }
      }
@@ -118,12 +107,8 @@
        "lint": {
        "lint": {
          "builder": "@angular-devkit/build-angular:tslint",
          "builder": "@angular-devkit/build-angular:tslint",
          "options": {
          "options": {
            "tsConfig": [
            "tsConfig": ["e2e/tsconfig.e2e.json"],
              "e2e/tsconfig.e2e.json"
            "exclude": ["**/node_modules/**"]
            ],
            "exclude": [
              "**/node_modules/**"
            ]
          }
          }
        }
        }
      }
      }
@@ -132,11 +117,11 @@
  "defaultProject": "v5.x",
  "defaultProject": "v5.x",
  "schematics": {
  "schematics": {
    "@schematics/angular:component": {
    "@schematics/angular:component": {
      "prefix": "app",
      "prefix": "m",
      "styleext": "scss"
      "styleext": "scss"
    },
    },
    "@schematics/angular:directive": {
    "@schematics/angular:directive": {
      "prefix": "app"
      "prefix": "m"
    }
    }
  }
  }
}
}
+136 −174

File changed.

Preview size limit exceeded, changes collapsed.

+1 −2
Original line number Original line Diff line number Diff line
@@ -42,10 +42,9 @@


    <li
    <li
      class="m-dropdownList__item m-user-menuDropdown__Item"
      class="m-dropdownList__item m-user-menuDropdown__Item"
      *ngIf="isAdmin()"
      (click)="closeMenu()"
      (click)="closeMenu()"
    >
    >
      <a routerLink="/analytics/admin/network">
      <a routerLink="/analytics/dashboard/traffic">
        <i class="material-icons">timeline</i>
        <i class="material-icons">timeline</i>
        <span i18n>Analytics</span>
        <span i18n>Analytics</span>
      </a>
      </a>
+87 −0
Original line number Original line Diff line number Diff line
export interface Category {
  id: string;
  label: string;
  metrics?: string[]; // TODO: remove this
  permissions?: string[];
}

export interface Response {
  status: string;
  dashboard: Dashboard;
}

export interface Dashboard {
  category: string;
  timespan: string;
  timespans: Timespan[];
  metric: string;
  metrics: Metric[];
  filter: string[];
  filters: Filter[];
}

export interface Filter {
  id: string;
  label: string;
  options: Option[];
}

export interface Option {
  id: string;
  label: string;
  available?: boolean;
  selected?: boolean;
  interval?: string;
  comparison_interval?: number;
  from_ts_ms?: number;
  from_ts_iso?: string;
}

export interface Metric {
  id: string;
  label: string;
  permissions: string[];
  summary: Summary;
  visualisation: Visualisation | null;
}

export interface Summary {
  current_value: number;
  comparison_value: number;
  comparison_interval: number;
  comparison_positive_inclination: boolean;
}

export interface Visualisation {
  type: string;
  segments: Array<Buckets>;
}

export interface Buckets {
  buckets: Bucket[];
}
export interface Bucket {
  key: number;
  date: string;
  value: number;
}

export interface Timespan {
  id: string;
  label: string;
  interval: string;
  comparison_interval: number;
  from_ts_ms: number;
  from_ts_iso: string;
}

export interface UserState {
  category: string;
  timespan: string;
  timespans: Timespan[];
  metric: string;
  metrics: Metric[];
  filter: string[];
  filters: Filter[];
  loading: boolean;
}
Loading