Commit Graph

30 Commits

Author SHA1 Message Date
Paul Holden b9a5a3626e MDL-77067 reportbuilder: indicate when audiences are used in schedules.
Indicate in each audience card whether it's used as part of a report
schedule, and inform user again upon deletion of said audience.
2023-08-23 16:09:17 +01:00
Paul Holden 7c7024af31 MDL-76971 reportbuilder: switch remaining classes to external_api.
Continues on the work started in a3cc26f8, to remove the last
remnants of usage of previous external API classes.
2023-04-25 08:50:47 +01:00
Andrew Nicols a3cc26f8bb MDL-76583 core: Update uses of external_* classes 2023-01-19 07:34:09 +08:00
Paul Holden 5b353b73d6 MDL-72058 reportbuilder: replace custom dataformat export format.
The formatting of exported dataformat content is now always dependent
on whether the format supports HTML or not, so we no longer need our
custom export class for providing the same.
2022-10-03 09:16:06 +01:00
Paul Holden d16ea57405 MDL-75235 reportbuilder: allow default filter form to be disabled.
This allows for custom filter forms to be implemented, rather than
using the default one for system reports.
2022-07-22 09:17:48 +01:00
Paul Holden f1a800bb7c MDL-73867 reportbuilder: improve performance of the editable classes.
When instantiating classes that extend `inplace_editable` we can
improve performance by passing persistent instances we already have,
rather than re-requesting them.

Add test coverage to relevant classes.
2022-07-15 08:44:55 +01:00
Paul Holden 1e2dd85346 MDL-74600 reportbuilder: re-factor menu helper methods into exporters.
Encapsulate generation of column/audience menu card data, used in the
editor, from helper class methods to specific exporter classes.
2022-05-19 15:56:37 +01:00
Paul Holden 6b6a040084 MDL-73184 reportbuilder: preserve pagesize property between requests.
Given that custom reports can now have defined pagesize properties, we
need to preserve that value in the table filterset so that it's always
available after AJAX requests.
2022-05-16 17:49:41 +02:00
Paul Holden dcda9c08e2 MDL-74342 reportbuilder: remove unnecessary template/dataset values. 2022-03-29 09:46:55 +01:00
Paul Holden b625b9ffed MDL-73467 reportbuilder: consistent scheduled report export class.
Use the same dataformat exporter in scheduled reports as that used
when downloading reports, from 7d753bed.
2022-01-12 17:41:41 +00:00
Sara Arjona 3946c78c2e Merge branch 'MDL-73275' of https://github.com/paulholden/moodle 2021-12-22 15:40:43 +01:00
Paul Holden a05683d027 MDL-72598 reportbuilder: interface elements for creating schedules.
Add new tab to the report editor, with system report, external API
and Javascript modules for managing report schedules.
2021-12-21 08:57:17 +00:00
Paul Holden d064a93d29 MDL-72598 reportbuilder: elements to allow audiences to be renamed.
This allows the user to give the audience more context, particularly
when they are used for selection on the forthcoming schedule form
editing.
2021-12-17 14:33:27 +00:00
Paul Holden 7d753bed0b MDL-73275 reportbuilder: dataformat exporter for downloading.
If the current dataformat doesn't support HTML then clean the text
and remove all tags.
2021-12-06 10:41:29 +00:00
Mikel Martín 6a6ebbac63 MDL-72770 reportbuilder: Display editor in full screen layout
- use 'popup' layout in editor page and create a custom navbar
- remove 'Settings' toggle button and show settings right sidebar with fixed position
- add 'Edit details' button on navbar that opens a modal to modify report basic settings
2021-12-01 17:12:45 +01:00
Mikel Martín f2582cc823 MDL-72565 reportbuilder: Use same template for system/custom reports
- rename 'system_report' template to 'report'
- view.php now uses 'report' template

Co-authored-by: Paul Holden <paulh@moodle.com>
2021-11-11 13:44:23 +01:00
Sara Arjona 2a0c4a8a73 Merge branch 'MDL-72978-master' of https://github.com/dravek/moodle 2021-11-08 09:59:47 +01:00
Paul Holden 628fcdee55 MDL-72962 reportbuilder: format editable element names for output. 2021-11-02 15:43:07 +00:00
David Matamoros 741f47ea7a MDL-72978 reportbuilder: Report name can't have only blank spaces
- Don't allow to set a report name containing only blank spaces when
creating a new report or editing an existing report name.
- Removed TODO from code related to MDL-71086
2021-11-02 16:27:20 +01:00
Jun Pataleta 6f7defeeb6 Merge branch 'MDL-72588' of git://github.com/dravek/moodle 2021-11-01 11:22:48 +08:00
David Matamoros 8a1e7d913f MDL-72588 reportbuilder: add report access tab.
This tab includes a system report that provides a listing of all
users who can access the report, taking into account all audiences
that have been created for it. Update page of users available
reports to obey audience configuration.

Fix filters JS form to ensure it is only loaded once.

Co-authored-by: Mikel Martín <mikel@moodle.com>
2021-10-29 12:50:20 +02:00
Mikel Martín 144084a2ac MDL-72588 reportbuilder: interface for managing report audiences.
Add new tab to editor, allowing user to select from available audience
types in order to grant access to their reports.

Co-authored-by: David Matamoros <davidmc@moodle.com>
2021-10-29 12:50:15 +02:00
Mikel Martín 9113f9d2f9 MDL-72588 reportbuilder: convert editing interface into a tab.
In preparation for further tabs in this interface, convert the report
editor to use the Dynamic tabs API.

At the same time, update the editor JS and it's modules to add listeners
on `document` instead of the report element itself, which will move in
and out of the current DOM in the future as tabs are switched.

Co-authored-by: Paul Holden <paulh@moodle.com>
2021-10-27 10:05:53 +02:00
Paul Holden 16a65f73e7 MDL-72663 reportbuilder: column API changes to improve aggregation.
Refinements to how columns can be defined in relation to available
aggregation methods:

* Disable aggregation types;
* Set column GROUP BY during aggregation;
* Defer column sorting to that of the aggregation method
2021-10-22 16:17:17 +01:00
David Matamoros 0457fb6675 MDL-70795 reportbuilder: allow user to view custom reports.
Reports can be viewed via two methods. Non-editing users can
access them via their report listing page, and report editors
can switch between editing and preview mode while working on
their reports.

Clean up remaining string definitions.

Co-authored-by: Mikel Martín <mikel@moodle.com>
2021-10-19 13:57:30 +01:00
Paul Holden f47e89a9bd MDL-70795 reportbuilder: editor elements to set column aggregation.
Aggregation of report columns allows the report editor to perform
common types of data aggregation (concatenation, sum, count, etc)
on given columns.
2021-10-19 13:56:05 +01:00
David Matamoros 09b69d04e3 MDL-70795 reportbuilder: custom report filters editor.
Implement module for filters editing, allowing the report
editor to define which filters are available when users
are viewing the report.

These filters allow those users viewing the report to further
limit the data being displayed (after conditions have been
applied), by selecting their own values for each filter.

Co-authored-by: Paul Holden <paulh@moodle.com>
2021-10-19 13:56:04 +01:00
Paul Holden 8ca9e04f9a MDL-70795 reportbuilder: beginnings of the report editor.
Implement UI elements for editing columns of a report, taking their
definitions from the selected datasource.

Co-authored-By: David Matamoros <davidmc@moodle.com>
Co-authored-By: Mikel Martín <mikel@moodle.com>
2021-10-19 13:56:02 +01:00
David Matamoros 22d896e063 MDL-70795 reportbuilder: add interface for creating reports.
Implement elements for creating/editing reports, along with
new system report for listing and accompanying JS modules for
user interaction.

Create "Users" datasource as proof-of-concept.

Co-authored-By: Paul Holden <paulh@moodle.com>
2021-10-19 13:55:30 +01:00
Paul Holden 514caaa4ea MDL-70794 reportbuilder: output components and classes.
This change contains most of the output components required for
reports such as exporters, templates, AMD modules.

Also included are classes within the component table namespace which
are required for extending the dynamic table API.
2021-07-28 16:40:50 +01:00