diff --git a/app/assets/javascripts/admin/components/admin-report-table.js.es6 b/app/assets/javascripts/admin/components/admin-report-table.js.es6 index dc007a79cc4..bf1ea4efaeb 100644 --- a/app/assets/javascripts/admin/components/admin-report-table.js.es6 +++ b/app/assets/javascripts/admin/components/admin-report-table.js.es6 @@ -1,5 +1,4 @@ import computed from "ember-addons/ember-computed-decorators"; -import { registerTooltip, unregisterTooltip } from "discourse/lib/tooltip"; const PAGES_LIMIT = 8; @@ -11,19 +10,6 @@ export default Ember.Component.extend({ perPage: Ember.computed.alias("options.perPage"), page: 0, - didRender() { - this._super(...arguments); - - unregisterTooltip($(".text[data-tooltip]")); - registerTooltip($(".text[data-tooltip]")); - }, - - willDestroyElement() { - this._super(...arguments); - - unregisterTooltip($(".text[data-tooltip]")); - }, - @computed("model.computedLabels.length") twoColumns(labelsLength) { return labelsLength === 2; @@ -52,7 +38,12 @@ export default Ember.Component.extend({ @computed("totalsForSampleRow", "model.computedLabels") totalsForSample(row, labels) { - return labels.map(label => label.compute(row)); + return labels.map(label => { + const computedLabel = label.compute(row); + computedLabel.type = label.type; + computedLabel.property = label.mainProperty; + return computedLabel; + }); }, @computed("model.data", "model.computedLabels") @@ -119,7 +110,7 @@ export default Ember.Component.extend({ return { page: v + 1, index: v, - class: v === page ? "current" : null + class: v === page ? "is-current" : null }; }); diff --git a/app/assets/javascripts/admin/components/admin-report.js.es6 b/app/assets/javascripts/admin/components/admin-report.js.es6 index fa57c3d8213..c126d90ee60 100644 --- a/app/assets/javascripts/admin/components/admin-report.js.es6 +++ b/app/assets/javascripts/admin/components/admin-report.js.es6 @@ -4,7 +4,10 @@ import { outputExportResult } from "discourse/lib/export-result"; import { ajax } from "discourse/lib/ajax"; import { SCHEMA_VERSION, default as Report } from "admin/models/report"; import computed from "ember-addons/ember-computed-decorators"; -import { registerTooltip, unregisterTooltip } from "discourse/lib/tooltip"; +import { + registerHoverTooltip, + unregisterHoverTooltip +} from "discourse/lib/tooltip"; const TABLE_OPTIONS = { perPage: 8, @@ -35,12 +38,7 @@ function collapseWeekly(data, average) { } export default Ember.Component.extend({ - classNameBindings: [ - "isEnabled", - "isLoading", - "dasherizedDataSourceName", - "currentMode" - ], + classNameBindings: ["isEnabled", "isLoading", "dasherizedDataSourceName"], classNames: ["admin-report"], isEnabled: true, disabledLabel: "admin.dashboard.disabled", @@ -69,6 +67,7 @@ export default Ember.Component.extend({ "showDatesOptions", "showGroupOptions" ), + shouldDisplayTrend: Ember.computed.and("showTrend", "model.prev_period"), init() { this._super(...arguments); @@ -80,6 +79,7 @@ export default Ember.Component.extend({ this._super(...arguments); const state = this.get("filters") || {}; + this.setProperties({ category: Category.findById(state.categoryId), groupId: state.groupId, @@ -101,14 +101,13 @@ export default Ember.Component.extend({ didRender() { this._super(...arguments); - unregisterTooltip($(".info[data-tooltip]")); - registerTooltip($(".info[data-tooltip]")); + registerHoverTooltip($(".info[data-tooltip]")); }, willDestroyElement() { this._super(...arguments); - unregisterTooltip($(".info[data-tooltip]")); + unregisterHoverTooltip($(".info[data-tooltip]")); }, showError: Ember.computed.or("showTimeoutError", "showExceptionError"), @@ -140,8 +139,8 @@ export default Ember.Component.extend({ const modes = forcedModes ? forcedModes.split(",") : reportModes; return Ember.makeArray(modes).map(mode => { - const base = `mode-button ${mode}`; - const cssClass = currentMode === mode ? `${base} current` : base; + const base = `mode-btn ${mode}`; + const cssClass = currentMode === mode ? `${base} is-current` : base; return { mode, @@ -157,7 +156,7 @@ export default Ember.Component.extend({ { name: I18n.t("admin.dashboard.reports.groups"), value: "all" } ]; return arr.concat( - this.site.groups.map(i => { + (this.site.groups || []).map(i => { return { name: i["name"], value: i["id"] }; }) ); @@ -171,15 +170,25 @@ export default Ember.Component.extend({ @computed("startDate") normalizedStartDate(startDate) { return startDate && typeof startDate.isValid === "function" - ? startDate.format("YYYYMMDD") - : startDate; + ? moment + .utc(startDate.toISOString()) + .locale("en") + .format("YYYYMMDD") + : moment(startDate) + .locale("en") + .format("YYYYMMDD"); }, @computed("endDate") normalizedEndDate(endDate) { return endDate && typeof endDate.isValid === "function" - ? endDate.format("YYYYMMDD") - : endDate; + ? moment + .utc(endDate.toISOString()) + .locale("en") + .format("YYYYMMDD") + : moment(endDate) + .locale("en") + .format("YYYYMMDD"); }, @computed( @@ -317,16 +326,15 @@ export default Ember.Component.extend({ let payload = { data: { cache: true, facets } }; if (this.get("startDate")) { - payload.data.start_date = moment( - this.get("startDate"), - "YYYY-MM-DD" - ).format("YYYY-MM-DD[T]HH:mm:ss.SSSZZ"); + payload.data.start_date = moment + .utc(this.get("startDate"), "YYYY-MM-DD") + .toISOString(); } if (this.get("endDate")) { - payload.data.end_date = moment(this.get("endDate"), "YYYY-MM-DD").format( - "YYYY-MM-DD[T]HH:mm:ss.SSSZZ" - ); + payload.data.end_date = moment + .utc(this.get("endDate"), "YYYY-MM-DD") + .toISOString(); } if (this.get("groupId") && this.get("groupId") !== "all") { diff --git a/app/assets/javascripts/admin/models/report.js.es6 b/app/assets/javascripts/admin/models/report.js.es6 index fc4fb8e86af..24b2b1ab3e5 100644 --- a/app/assets/javascripts/admin/models/report.js.es6 +++ b/app/assets/javascripts/admin/models/report.js.es6 @@ -285,7 +285,7 @@ const Report = Discourse.Model.extend({ value, type, property: mainProperty, - formatedValue: value ? escapeExpression(value) : "-" + formatedValue: value ? escapeExpression(value) : "—" }; } }; @@ -318,7 +318,7 @@ const Report = Discourse.Model.extend({ return { value: username, - formatedValue: username ? formatedValue(username) : "-" + formatedValue: username ? formatedValue(username) : "—" }; }, @@ -333,7 +333,7 @@ const Report = Discourse.Model.extend({ return { value: topicTitle, - formatedValue: topicTitle ? formatedValue() : "-" + formatedValue: topicTitle ? formatedValue() : "—" }; }, @@ -360,7 +360,7 @@ const Report = Discourse.Model.extend({ _percentLabel(value) { return { value, - formatedValue: value ? `${value}%` : "-" + formatedValue: value ? `${value}%` : "—" }; }, @@ -373,14 +373,14 @@ const Report = Discourse.Model.extend({ return { value, - formatedValue: value ? formatedValue() : "-" + formatedValue: value ? formatedValue() : "—" }; }, _dateLabel(value, date) { return { value, - formatedValue: value ? date.format("LL") : "-" + formatedValue: value ? date.format("LL") : "—" }; }, @@ -389,7 +389,7 @@ const Report = Discourse.Model.extend({ return { value, - formatedValue: value ? escaped : "-" + formatedValue: value ? escaped : "—" }; }, @@ -404,7 +404,7 @@ const Report = Discourse.Model.extend({ return { value, - formatedValue: value ? formatedValue(value, row[properties[1]]) : "-" + formatedValue: value ? formatedValue(value, row[properties[1]]) : "—" }; }, diff --git a/app/assets/javascripts/admin/routes/admin-reports-show.js.es6 b/app/assets/javascripts/admin/routes/admin-reports-show.js.es6 index fbcd9106439..55503091e13 100644 --- a/app/assets/javascripts/admin/routes/admin-reports-show.js.es6 +++ b/app/assets/javascripts/admin/routes/admin-reports-show.js.es6 @@ -5,14 +5,23 @@ export default Discourse.Route.extend({ if (!controller.get("start_date")) { controller.set( "start_date", - moment() - .subtract("30", "day") + moment + .utc() + .subtract(1, "day") + .subtract(1, "month") + .startOf("day") .format("YYYY-MM-DD") ); } if (!controller.get("end_date")) { - controller.set("end_date", moment().format("YYYY-MM-DD")); + controller.set( + "end_date", + moment() + .utc() + .endOf("day") + .format("YYYY-MM-DD") + ); } } }); diff --git a/app/assets/javascripts/admin/templates/components/admin-report-table-header.hbs b/app/assets/javascripts/admin/templates/components/admin-report-table-header.hbs index 4e8f2736c7a..15f85276f5c 100644 --- a/app/assets/javascripts/admin/templates/components/admin-report-table-header.hbs +++ b/app/assets/javascripts/admin/templates/components/admin-report-table-header.hbs @@ -1,5 +1,5 @@ {{#if showSortingUI}} - {{d-button action=sortByLabel icon=sortIcon class="sort-button"}} + {{d-button action=sortByLabel icon=sortIcon class="sort-btn"}} {{/if}} -{{label.title}} +{{label.title}} diff --git a/app/assets/javascripts/admin/templates/components/admin-report-table.hbs b/app/assets/javascripts/admin/templates/components/admin-report-table.hbs index 1eb6923b511..2e6c528accb 100644 --- a/app/assets/javascripts/admin/templates/components/admin-report-table.hbs +++ b/app/assets/javascripts/admin/templates/components/admin-report-table.hbs @@ -1,4 +1,4 @@ -
+ | {{total.formatedValue}} | {{/each}} @@ -44,8 +44,8 @@||
- | -{{number model.total}} | +— | +{{number model.total}} |