| 247 | |
| 248 | == Report for weeks 7,8 and 9 == |
| 249 | |
| 250 | '''1) What did I complete?'''\\ |
| 251 | I completed PRs https://github.com/OSGeo/grass/pull/3421 implementing time node branching in the history tree, organizing commands from oldest to newest. Moreover, I also added a button to update the current region based on the region used during command execution (PR https://github.com/OSGeo/grass/pull/3679). Besides that, I introduced icons representing command status (success, failed, running, aborted, unknown) and added them in front of history entries (PR https://github.com/OSGeo/grass/pull/3679). Thanks Anna for the valuable comments in reviews! |
| 252 | |
| 253 | == Final Report == |
| 254 | **Title:** Mini project 2024: Easy command history navigation through the History browser panel |
| 255 | \\ |
| 256 | **Community:** GRASS GIS - OSGeo |
| 257 | |
| 258 | **Abstract:**\\ |
| 259 | This project builds upon the work initiated during the OSGeo sprint in Prague in the summer of 2023, which focused on creating a new History Browser panel to facilitate access to command history. Although the new History Browser panel became available in the GRASS development version starting December 8th (refer to PR https://github.com/OSGeo/grass/pull/3234), initially it provided only a basic, single-level display of commands from the history log, with the capability to relaunch commands but lacking detailed command information. This project aims to enhance the basic functionality by incorporating several improvements. |
| 260 | |
| 261 | **The state of the art BEFORE the start of the Mini project:**\\ |
| 262 | - The History Browser panel displayed a simple tree of command entries loaded from a plain-text history log. It had only the capability to relaunch commands. |
| 263 | |
| 264 | **The state of the art AFTER Mini project:**\\ |
| 265 | Implemented changes include: |
| 266 | - Transitioning the plain text format of the history log (.wxgui_history) to JSON format, allowing more information to be stored for each executed command. Newly, the log stores information about the timestamp (the exact time when a command was launched), command status (success, failed, running, aborted, unknown), runtime duration, region settings, and mask usage (was set/ was not set). |
| 267 | |
| 268 | - Instead of implementing the context option "Show Info" and displaying a small dialog with process information, the history pane was redesigned into two sections. The upper part features the history tree, while the lower part includes two static boxes presenting information stored in the history log. The first box contains general details, and the second box displays the computational region during command execution. |
| 269 | |
| 270 | - Adding a symbol in front of each command in the tree based on the command's status. |
| 271 | |
| 272 | - Branching the tree based on the date of command execution - tree is branched into days and sorted from the Today node to older nodes. Command nodes are sorted from the oldest to the newest. |
| 273 | |
| 274 | The task of filtering commands based on status was not addressed during the project due to higher priority issues that emerged: |
| 275 | - Adding the "Update current region" button, which dynamically updates the region based on the executed command and its information stored in the JSON-formatted history log. |
| 276 | - Introducing a new Delete option in the command tree |
| 277 | - Rearranging the Export History button |
| 278 | |
| 279 | **Next Steps:**\\ |
| 280 | Possible improvements for the History browser pane: |
| 281 | - Sorting the commands from the newest to oldest and making more efficient refresh methods (currently all nodes are refreshed when adding one command) |
| 282 | - Fix of command status for nonsense entries (already noted here https://github.com/OSGeo/grass/issues/3698): |
| 283 | - Regarding the status, it would also be nice to show the complete error text if a command fails. (Now there is “failed” written but no clue what happened). |
| 284 | - Adding the Copy context menu option on the command node |
| 285 | - Adding the new combo box restricting the filtering based on the status |
| 286 | |
| 287 | |
| 288 | **Permanent Links:**\\ |
| 289 | |
| 290 | || '''Title''' || '''Pull Request''' || '''Issue''' || |
| 291 | || wxGUI/history: Add pop-up command menu with an item for delete command from history + history tree refactoring || https://github.com/OSGeo/grass/pull/3342 || - || MERGED || |
| 292 | || wxGUI/history: Create panel displaying info about command || https://github.com/OSGeo/grass/pull/3365 || - || MERGED || |
| 293 | || wxGUI/history: Move Export History button to history pane || https://github.com/OSGeo/grass/pull/3402 || - || MERGED || |
| 294 | || wxGUI/history: New button for setting current computational region based on executed commands || https://github.com/OSGeo/grass/pull/3421 || - || MERGED || |
| 295 | || wxGUI/history: Add time period branching to history browser tree || https://github.com/OSGeo/grass/pull/3622 || - || MERGED || |
| 296 | || wxGUI/history: Add time/status icons in front of browser nodes || https://github.com/OSGeo/grass/pull/3679 || - || MERGED || |
| 297 | |
| 298 | Progress Reports:\\ |
| 299 | https://trac.osgeo.org/grass/wiki/wxGUIDevelopment/EasyCommandHistoryNavigation |