Commit Graph

46 Commits

Author SHA1 Message Date
9ffdbf912f DEV: Import ember ENV instead of Ember.testing (#8305) 2019-11-07 11:20:35 -06:00
dceb72bc69 FIX: Move makeArray to discourse-common 2019-11-01 13:50:15 -04:00
89f602f66b REFACTOR: Ember.makeArray was removed from the public API 2019-11-01 13:50:15 -04:00
13cca3eaa0 DEV: run files through prettier
2ae21e9 was prettiered using an old version of prettier.

This re-applies it using latest.
2019-10-31 10:18:29 +11:00
2ae21e9c35 DEV: Import every instance of Ember.computed function (#8267)
* DEV: Import every instance of Ember.computed function

* export default for Ember.computed
2019-10-30 15:28:29 -05:00
8d34f4bbd9 Revert "Revert Ember.run refactors"
This reverts commit fcb1ca52f96bdff1a49d558a4ffb18107d8334de.
2019-10-30 09:48:24 -04:00
fcb1ca52f9 Revert Ember.run refactors
This reverts commit 5ca60fcb6b592524086f98279d3e4fd949598343.
2019-10-29 17:10:47 -04:00
5ca60fcb6b REFACTOR: Use imports for Ember.run 2019-10-29 15:31:56 -04:00
c7475ee03b DEV: Import EmberObject rather than global variable (#8256)
* DEV: Import ember/object rather than Ember.Object globally

* fixed broken object proxy import

* prettier on js

* added @ember/object/proxy to loader

* added unstaged file

* Fixed objet proxy reference is loader

* Linting!
2019-10-29 14:23:50 -05:00
a8a76198b1 REFACTOR: Remove Ember.Component global variable
Use imports instead.
2019-10-23 12:30:52 -04:00
d8dfa87f24 UX: improves dates on reports export UI (#7971)
- show it's UTC
- allows future
- shows date in more human readable format
2019-08-06 08:41:21 +02:00
f9f1df7611 DEV: prevents reports key to be time dependant when testing (#7850) 2019-07-03 15:43:01 +02:00
bfdf740a05 FIX: Show 'Export' button for all tabular reports. (#7838) 2019-07-03 14:47:36 +02:00
61438c825a fix prettier (#7823) 2019-06-28 09:36:38 +02:00
b2eb0f4ad6 FEATURE: Export any type of report supporting table mode. (#7662) 2019-06-28 08:50:31 +02:00
d93f753b17 apply prettier on gigantic find and replace (#7604) 2019-05-27 10:42:53 +02:00
bfea922167 DEV: global s/this.get\("(\w+)"\)/this.$1 (#7592) 2019-05-27 10:15:39 +02:00
df18243827 FIX: prevents exception if report doest define filters (#7532) 2019-05-13 13:34:28 +02:00
75591664e7 FIX: better handling of category filter deselection (#7468) 2019-05-02 10:03:12 +02:00
c6409fd2cc FIX: pass correct date arguments to server when exporting CSV 2019-05-01 10:46:30 +05:30
002e1f560a FIX: initialize empty object if no custom filters are present 2019-05-01 10:27:19 +05:30
bcca2b5d73 FEATURE: initial implementation of generic filters for reports 2019-04-26 12:17:10 +02:00
8fb63b2706 FEATURE: unified popover implementation (#7244) 2019-03-26 15:43:27 +01:00
f8480ed911 FEATURE: Exposing a way to add a generic report filter (#6816)
* FEATURE: Exposing a way to add a generic report filter

## Why do we need this change?

Part of the work discussed [here](https://meta.discourse.org/t/gain-understanding-of-file-uploads-usage/104994), and implemented a first spike [here](https://github.com/discourse/discourse/pull/6809), I am trying to expose a single generic filter selector per report.

## How does this work?

We basically expose a simple, single generic filter that is computed and displayed based on backend values passed into the report.

This would be a simple contract between the frontend and the backend.

**Backend changes:** we simply need to return a list of dropdown / select options, and enable the report's newly introduced `custom_filtering` property.

For example, for our [Top Uploads](https://github.com/discourse/discourse/pull/6809/files#diff-3f97cbb8726f3310e0b0c386dbe89e22R1423) report, it can look like this on the backend:

```ruby
report.custom_filtering = true
report.custom_filter_options = [{ id: "any", name: "Any" }, { id: "jpg", name: "JPEG" } ]
```

In our javascript report HTTP call, it will look like:

```js
{
  "custom_filtering": true,
  "custom_filter_options": [
    {
      "id": "any",
      "name": "Any"
    },
    {
      "id": "jpg",
      "name": "JPG"
    }
  ]
}
```

**Frontend changes:** We introduced a generic `filter` param and a `combo-box` which hooks up into the existing framework for fetching a report.

This works alright, with the limitation of being a single custom filter per report. If we wanted to add, for an instance a `filesize filter`, this will not work for us. _I went through with this approach because it is hard to predict and build abstractions for requirements or problems we don't have yet, or might not have._

## How does it look like?

![a1ktg1odde](https://user-images.githubusercontent.com/45508821/50485875-f17edb80-09ee-11e9-92dd-1454ab041fbb.gif)

## More on the bigger picture

The major concern here I have is the solution I introduced might serve the `think small` version of the reporting work, but I don't think it serves the `think big`, I will try to shed some light into why.

Within the current design, It is hard to maintain QueryParams for dynamically generated params (based on the idea of introducing more than one custom filter per report).

To allow ourselves to have more than one generic filter, we will need to:

a. Use the Route's model to retrieve the report's payload (we are now dependent on changes of the QueryParams via computed properties)
b. After retrieving the payload, we can use the `setupController` to define our dynamic QueryParams based on the custom filters definitions we received from the backend
c. Load a custom filter specific Ember component based on the definitions we received from the backend
2019-03-15 12:15:38 +00:00
3e1e9fce7e FIX: better legend labels for stacked-charts (#6914) 2019-01-21 17:10:10 +01:00
b95165b838 FEATURE: adds a new chart report to track pageviews (#6913) 2019-01-21 15:17:04 +01:00
502b1316d0 DEV: s/this._super()/this._super(...arguments) (#6908) 2019-01-19 10:05:51 +01:00
9c616e0679 FIX: handles not found reports in bulk loading (#6582) 2018-11-12 13:47:24 +01:00
24e5be3f0c FIX: Relative links in translations should work with subfolder 2018-11-08 23:31:05 +00:00
c219a5fb1e Add btn-default class to all default buttons (#6521) 2018-10-24 16:09:36 -04:00
82dcc5cbfa FEATURE: makes reports loadable in bulk (#6309) 2018-08-24 15:28:01 +02:00
a48059fd8f FIX: uses localized string for 429 in reports (#6302)
NGINX was retuning an html page instead of single string for some users. Seems safer to not risk showing anything from server anyways.
2018-08-22 18:13:29 +02:00
774e6bc795 FIX: handle rate limiting from nginx (#6300) 2018-08-22 13:10:57 +02:00
599cebf8ad FIX: better message if request for report is rate limited (#6298) 2018-08-22 11:25:12 +02:00
37d4f27c44 FIX: quality/bugfix dashboard/reports pass (#6283) 2018-08-17 16:19:25 +02:00
9073e11943 FIX: improves number/percent support in reports 2018-08-01 18:40:59 -04:00
2b2a506a7b FIX: makes dashboard more resilient to errors (#6217)
This commit is an attempt to limit cases where the dashboard will generate a full exception page and also make it easier to track the error.
2018-07-31 21:23:28 -04:00
37252c1a5e UI: improves dashboard table reports
- support for avatars
- support for topic/post/user type in reports
- improved totals row UI
- minor css tweaks
2018-07-31 17:35:13 -04:00
b7d1864d0a FIX: simplify filters on admin-report component (#6193) 2018-07-27 01:22:00 -04:00
262beed1cf FIX: fixes regression with category filtering (#6190) 2018-07-26 19:08:06 -04:00
ad95c24307 FEATURE: displays a notice if report has no data (#6178) 2018-07-25 14:28:41 -04:00
6ee1ea96ef fixes tests (#6176) 2018-07-25 14:02:21 -04:00
01d1f850e9 FEATURE: uses category-chooser for report filtering (#6174) 2018-07-25 13:16:35 -04:00
3741dd6b59 removes report logging (#6125) 2018-07-20 08:16:29 -04:00
64f0cf425b FIX: removes uncessary reports loading (#6119) 2018-07-19 19:30:13 -04:00
1a78e12f4e FEATURE: part 2 of dashboard improvements
- moderation tab
- sorting/pagination
- improved third party reports support
- trending charts
- better perf
- many fixes
- refactoring
- new reports

Co-Authored-By: Simon Cossar <scossar@users.noreply.github.com>
2018-07-19 14:33:11 -04:00