View Issue Details

IDProjectCategoryView StatusLast Update
0025902mantisbtapi restpublic2021-10-28 12:43
Reportervboctor Assigned Tovboctor  
PrioritynormalSeverityminorReproducibilityhave not tried
Status closedResolutionfixed 
Product Version2.21.0 
Target Version2.23.0Fixed in Version2.23.0 
Summary0025902: Implement IssueViewPageCommand to separate logic from rendering of issue view page
Description
  • Implement IssueViewCommand with logic that provides all information and flags needed to render the issue.
  • Implement a rest API to make this functionality available to Javascript or clients.
  • Refactor issue view page to use the command.
TagsNo tags attached.

Relationships

related to 0026094 closeddregad PHP notice in bug view page when viewing issue without category 
related to 0026123 closeddregad Both "monitor" and "end monitoring" buttons are displayed 
related to 0026125 closeddregad "Users monitoring this issue" section not shown if nobody is monitoring the issue 
related to 0026482 closedatrol 'View Issue' page fails to populate some fields (ex 'ID') for some projects (but not others) 
related to 0026600 closeddregad Performance loss after update from 2.20.0 to 2.23.0 
related to 0026470 closedatrol Issue values on bug view page are not localized. 
related to 0026610 closedatrol Option history_default_visible does not work 
related to 0026838 closedatrol OS build field not filled in viewing mode 
related to 0026920 closedvboctor reporter allowed to close 
related to 0026921 closedatrol View Issue page does not show "Product Build" (wrong key names in code) 
related to 0026962 closedvboctor Remove unused bug_monitor_list_view_inc.php file 
related to 0029181 closeddregad 'format_issue_summary' custom function not called from View Issue Details page 

Activities

cproensa

cproensa

2019-07-04 18:45

developer   ~0062355

How will this leverage current events for rendering custom content from plugins?

I use, as an example, several of those events:

  • Rendering data fields within the issue fields area. These fields are managed entirely from a plugin.
  • Providing special actions within the view page. I have a plugin that implements an approval workflow, that renders some buttons in the fields area of the view issues, linking to plugin action pages.
  • Render customized information within the activities list. For example, the timetracking plugin (that displays a box with the timetracking info similar to the standard timetracking feature)
vboctor

vboctor

2019-07-04 20:17

manager   ~0062356

Here is the link to the PR:
https://github.com/mantisbt/mantisbt/pull/1524

@cproensa

The EVENT_MENU_ISSUE is triggered via the command and the result is returned. The good thing about this event is that it returns logical menu option representation (i.e. a model rather than a view). It is up to the view to render this based on the UI template.

        "links": {
            "SourceIntegration": {
                "display_changeset_link": []
            }
        }

However, as you mentioned we have other events that output HTML. At this point the command doesn't return these and they are encoded directly into the view page (bug_view_inc.php). Over time, we should see if we can have a logical representation that events return that is decoupled from the way they are rendered. If not, then the events will have the following limitations:

  • Will be limited to the UI and rendered by PHP or returned from PHP as an html string that is rendered by Javascript.
  • Will break whenever we change the MantisBT UI template or how we leverage the template to render an issue (e.g. how we rendered sections, fields, etc).

The above applies for all types of extensions. They will continue to run in the web UI with the above limitations and will be part of the view page and not the IssueVIewCommand. I think we need a logical way to add extra fields to an issue, extra actions, etc.

For extra activities, it may make sense to question whether they should be part of the issue view or part of the issue itself (similar to custom fields).

This change doesn't limit what we can do, but highlights areas where we can do better with our extensibility model.

Related Changesets

MantisBT: master 2b163046

2019-06-02 20:50

vboctor


Details Diff
Add IssueViewCommand and use it in bug_view_inc.php Affected Issues
0025902, 0029181
mod - bug_view_inc.php Diff File
add - core/commands/IssueViewCommand.php Diff File

MantisBT: master 08abf7f4

2019-07-05 18:22

vboctor


Details Diff
Control showing of action buttons via flags

Remove logic in issue view page to decide showing buttons and depend on flags from issue view command.
Affected Issues
0025902, 0026123
mod - bug_view_inc.php Diff File
mod - core/commands/IssueViewCommand.php Diff File

MantisBT: master-2.25 619e9e4f

2021-10-16 01:43

dregad


Details Diff
Use custom function to display issue summary

Introduction of IssueViewCommand [1] removed the call to
'format_issue_summary' custom function from View Issue Details page
(bug_view_inc.php).

This fixes the regression, restoring earlier behavior of calling
bug_format_summary().

Fixes 0029181

[1]: issue 0025902, commit 2b163046849d3445894537f7a7b4762edd41ff8b
Affected Issues
0022784, 0025902, 0029181
mod - bug_view_inc.php Diff File