* Remove unnecessary constructors
A constructor that redefines the super constructor but only calls the super constructor with the same parameters is unnecessary and can be removed
https://github.com/abaplint/abaplint/issues/1417
* Lint
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* fix creation of TR entries for uninstalled PROGs
Fixes creation of CTS Transport Request entries for PROG Objects uninstalled from transportable package.
* Abaplint Fixes
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Add refresh after failed uninstall
If uninstall does not complete successfully, the old state of the repo will be shown. This will refresh the state and properly show which objects were deleted and which still remain.
* Update src/zcl_abapgit_repo_srv.clas.abap
Co-authored-by: Lars Hvam <larshp@hotmail.com>
Co-authored-by: Lars Hvam <larshp@hotmail.com>
syntax highligting, move unit tests for abap to abap class, xml to xml class
this avoids having cyclic references, previously HIGHLIGTER called FACTORY which instantiated ABAP which inherited from HIGHLIGTER
* Align naming of object super classes
- SAXX_SUPER for SAMC %26 SAPC
- W3XX_SUPER for W3HT %26 W3MI
* Delete old classes
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Fix missing i_suppress_dialog parameter syntax error in 731 system
* replace cx_root with cx_sy_dyn_call_param_not_found
* revert back to cx_root because checks have failed
"Statement does not exist in ABAPv702(or a parser error)"
* Revert "revert back to cx_root because checks have failed"
This reverts commit 73b9b2aa6f.
* replace cx_root with cx_sy_dyn_call_param_not_found, sorry i didn't see that extra quote character, should be fine now.
* fix whitespace
Co-authored-by: larshp <larshp@hotmail.com>
* New Repo: Check package existence before showing p
* fix lint errors
* fix linter
* add more unit tests
* refactor unit tests
Co-authored-by: Lars Hvam <larshp@hotmail.com>
Maintenance views can have dependencies on tables with foreign keys. Such cases can lead to errors during deserialize since the foreign key relationships between tables are processed only in the "late" step.
This fix moves the processing of maintenance views (viewclass = c) to the "late" step.
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Dialogs: HTML form tweaks
- Minor increase of contrast for background, input- and readonly fields
- Add read-only option for columns of table control
* Add is_empty
* Add init and hidden
* Render
* Remove init
Co-authored-by: Lars Hvam <larshp@hotmail.com>
In case files are deleted remotely, the files are now ignored during a pull. In other words, "pull" will not touch objects that exist only locally and not remotely.
To delete such objects locally, use "reset local (forced pull)" which will show a popup for these objects and let you delete them.
Closes#4277
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Improve ""Cannot find .abapgit.xml" situation
Skip check during creating of repo and increase file count.
Closes#4174
* New online
* Add UT
* Move check to content list
* Update zcl_abapgit_repo_srv.clas.abap
* Lint
* Rename to check_repo_size
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Fix unit test for user records
Perform unit test only if a user with an email address exists
Closes#4247
* Remove test
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* PROG: Remove objects from work area
Fixes issue with incomplete deletion of inactive objects
Closes#4151
* Lint
* Add correction
Co-authored-by: Lars Hvam <larshp@hotmail.com>
Reverting back to a proper exit of screens using `LEAVE TO SCREEN` and avoid increasing the size of the callstack.
Closes#4279
PS: The crash mentioned in #4027 was prevented by removing the commit hash from the check screen. It works also with `LEAVE TO SCREEN`.
* Optimize status calc
Avoid status calculation for ignored files. Since files in / are ignored by default, the starting folder for unit tests is set to /.
* Fix if
* Index
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* UI: Clear progress bar
Clears status/progress bar at end of process and removes leftover messages.
Closes#3505
* Lint
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* UI: Improvements for setting pages
- Better navigation between settings pages
After jumping between setting pages, the back button will go to last page before navigating to the settings (ie "back with bookmark")
- Add commit work
* Lint + router
* Jump repo view to settings
* Lint
* Conflict
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Remove obsolete late_deser from metadata
Final part to remove late_deser flag. Solution remains compatible with old bridge class which still uses the flag.
* Call
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* User interface, "Advanced" menu
Added tooltips to the "Remove" and "Uninstall" options in the advanced menu. As a new user, I would revisit the [documentation](https://docs.abapgit.org/guide-online-uninstall.html) to distinguish between the two.
The tooltips are passed as "iv_title" parameters to ZCL_ABAPGIT_HTML_TOOLBAR->add
* Update src/ui/zcl_abapgit_gui_page_repo_view.clas.abap
Adjustments from review
* Update src/ui/zcl_abapgit_gui_page_repo_view.clas.abap
Adjustments from review
* Update zcl_abapgit_gui_page_repo_view.clas.abap
Comply with abaplint line length of 120
* Update zcl_abapgit_gui_page_repo_view.clas.abap
Comply with abaplint's no whitespaces at EOL
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* show log, remove title parameter
the log objec already have the title as part of the object, another input is not required
this aligns the code to always use the title from the object
closes#4223
* zif_abapgit_log, change title to csequence input
* Refactor: Version comparison
Move version comparison from `zcl_abapgit_news` to `zcl_abapgit_version` and make it public for use in other places
* Lint
* Compare sem versions
* Change supplied
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Dialogs: Enhance HTML form with table control
- Adds option to maintain data using a table control
- Extends UTs with several cases that were include in #4172
- Table control to be used by "repo settings" #4171
* Border
* Lint
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* /git/, put method get_length under test
add unit tests for method get_length
the method will probably be refactored sometime in the future, I think the bit manipulation can be replaced with some hex, div and bit-mask magic
* fix tabs
* log, purge() now returns the log
For each action, the log should be returned, then it is up to the UI how or if to show or persist it in the session.
First step of #2821
* li_log not needed anymore
This adds shorthand methods for the SHA1 calculation of the different git artifacts.
More logic in ZCL_ABAPGIT_HASH, but easier to read and less application logic.
When repeatedly navigating "back" to the main screen via the "Repository List" [o] button:
If somewhere in this navigation sequence you Remove a repository,
then continue on via "Repository List",
but later you use the GUI's actual "BACK" button, until you have returned to the main screen where that repository still existed,
a short dump occurs as the exception raised by zcl_abapgit_repo_srv=>get in zcl_abapgit_gui_page_repo_view->render_content propagates unhandled
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Dialogs: New pages for global and personal setting
Redesign of abapGit settings using HTML forms. Two functional changes to old settings page:
- "Development Internal Settings" are only visible when using the developer version (not in standalone program)
- "User-specific hotkey settings" are not available anymore. The default hotkeys continue to work as before.
Global/Personal settings can be reached using hotkeys "x" and "y".
* Lint
* Hide button
* Change to top menu
* Remove old page
* Remove old page
* fix links
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Create an interface for online repo functions
To make my own code calling online repo functions testable, I need some functions behind an interface. Using aliases, this is a safe refactoring. Please pull :)
* Update src/zif_abapgit_repo_online.intf.abap
Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>
* Update src/zif_abapgit_repo_online.intf.abap
Commit abaplint recommendation
Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>
* update formatting
Co-authored-by: Rembold Rembold <philipp.rebold@sap.com>
Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>
* UI: Add help buttons to "New Online/Offline"
- Add help button to both dialogs linking to docs.abapgit.org
- Clicking the button brings up the documentation inside the GUI HTML viewer
- Enhancement to `zcl_abapgit_gui` and `zcl_abapgit_html_viewer_gui` to properly handle 'Back' when navigating through Internet pages
* Open help in external browser
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Refactor XSTRING_TO_INT
this will use the built-in type conversion, its less code and most likely also runs faster
* delete METHOD alpha_output
it is only used in one place, and its a simple NUMC that is converted
* Dialogs: HTML form enhancements
In preparation for https://github.com/abapGit/abapGit/issues/4171, HTML forms were enhanced as follows:
- New integer fields (type "number") with min/max, https://github.com/abapGit/abapGit/issues/3559
- Added support for minlength/maxlength for text fields
- Added support for read-only fields
- Added support for password fields
- New option for adding a help button to the form (with URL link)
- Moved HTML snippets to render method
- Changed parameters to csequence to also accept char variables (like abap_true)
- Minor adjustments to styles
* Lint and fix ul/fieldgroup
* Min/max validation, textarea
* Close textarea tag
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Fix dump in status calculation
Happened when switching a repo from offline to online, which incorrectly set the branch to "master" (separate issue), and then trying to switch branch to "main".
* Add testcase
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* ZCL_ABAPGIT_CONVERT refactor
this removes calls to function modules, replacing with class based equivalents, or all custom ABAP implementations
* rename local variables
* move merge types to merge class
this will make the God interface defintions smaller
also reducing INTF -> CLAS references
and making it easier to add an interface for the merge class in the future
* add interface ZIF_ABAPGIT_MERGE
* DEVC: Remove obsolete TADIR entries
In case a package is local (ie no transports), abapGit will now check if objects still exist in the package. In case an object does not exist anymore, the corresponding TADIR entry will be removed. This allows empty local packages to be uninstalled automatically.
* Lint
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Terminology: Inclusive Language - Part 2
Change "Master Language" to "Main Language" in UI and comments (documentation and variables next)
* Docs
* Docs
Co-authored-by: Lars Hvam <larshp@hotmail.com>
- Add FUGR, CLAS, INTF into existing order of object types
- Also fixes BINARY search for DDLS dependencies
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Move git url repo methods
This moves methods GET_COMMIT_DISPLAY_URL and GET_DEFAULT_COMMIT_DISPLAY_URL from the repo class to new class in new package GIT_PLATFORM.
we want to keep the repo class small, as its quite complex and central
#4085
* fix line length
* Triggers main command when pressing enter in form
Adds hidden button that triggers main command when pressing the enter key
* Lint
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Backup and restore for abapGit persistency
Backup complete content of abapGit persistency to a ZIP file and restore when necessary.
* Messages
* 702
Co-authored-by: Lars Hvam <larshp@hotmail.com>
- Added icon for user
- Changed icon for transport to truck
- Adapted "staging" page
- Renamed CSS-classes because of conflict with classes used on staging page
Screenshots #4097Closes#4098
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Update unit tests to use CI
* Make test repo configurable
* Remove local tests and use CI
* Lint fixes
* Replace local tests with CI
* Add Type Group constants to abaplint
* Update constants and replace assert_true
* Revert constants
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Fix DDIC activation issues
- Avoid double activation of DDIC objects in case of "LATE" processing
- Derive DDIC id for XINX and MCID (same as for INDX)
Closes#4103
* Lint
Co-authored-by: Lars Hvam <larshp@hotmail.com>
The field `late_deser` in `ZIF_ABAPGIT_DEFINITIONS=>ty_metadata` is obsolete:
```abap
TYPES:
BEGIN OF ty_metadata,
class TYPE string,
version TYPE string,
late_deser TYPE abap_bool, " refactor: can be removed later. replaced by steps
delete_tadir TYPE abap_bool,
ddic TYPE abap_bool,
END OF ty_metadata .
```
The PR removes the remaining usage with one exception: `ZCL_ABAPGIT_OBJECTS_BRIDGE->GET_DESERIALIZE_STEPS` still depends on the field. In order to remove it completely, the plug-in interface `zif_abapgitp_plugin` (https://github.com/abapGit/abapGit-Plugins/blob/master/src/zif_abapgitp_plugin.intf.abap) will have to be changed.
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* 702: Downport
No chaining with CHANGING
* 702: Downport
* Syntax check variant
* Too many fields warning
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* UI: Unify rendering of branch, package, user names
Branch name was already rendered "boxed with a leading icon". The same is now done for package and user names.
See `zcl_abapgit_gui_chunk_lib->render_branch_name, render_package_name, render_user_name`.
Closes#4059
* Lint %26 transport
* Unknown user
* Transport css
Co-authored-by: Lars Hvam <larshp@hotmail.com>
Some files that existed locally didn't have a link. After #4084, the state can be evaluated properly to determine if local object exists.
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Implementation
* Remove old source code
* Clear selected_commit on switch_repo_type
* Reset selected commit or branch on select
* Don't clear the branch name if commit selected
* add user exit for commit display URL
METHODS adjust_display_commit_url
IMPORTING iv_repo_url TYPE zif_abapgit_persistence=>ty_repo-url
iv_commit_hash TYPE zif_abapgit_definitions=>ty_sha1
CHANGING cv_display_url TYPE zif_abapgit_persistence=>ty_repo-url
* adjust UT
* provide also repo name and key in the exit
* Update ref-exits.md
* Update ref-exits.md
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Fix state calculation for deleted objects
In case objects are deleted locally or remotely, abapGit now compares against the last known state (checksum).
Closes https://github.com/abapGit/abapGit/issues/4030
* Added test case
Covers known local and remote states
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* TABL: Skip data check for GTT
fixes#4074
* undo case change
* TABL: use fm DD_EXISTS_DATA for data check
* remove formatting change
* Data existence check only for DB tables
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* add minimal unit test
* readd new keywords to abap syntax highlighter
- removed duplicates from keywords
- removed deprecated pseudo comment
- explicitly remove duplicates from keywords to avoid needless dumps
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Implementation
- Create new class ZCL_ABAPGIT_GIT_COMMIT
- Move commit-specific methods from ZCL_ABAPGIT_BRANCH_OVERVIEW to ZCL_ABAPGIT_GIT_COMMIT
- Change methods visibility (from private to public) and type (from instance to class method)
* Remove ##NO_TEXT
Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>
* Rename get to get_from_remote
* abapLint: Remove space
Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>
* abapLint
- Remove space
- Remove unused type in ZCL_ABAPGIT_BRANCH_OVERVIEW
* abapLint: Remove space
Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>
* Remove obsolete class attribute
* Separate get_by_branch and get_by_commit
* Remove duplicate char
Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>
* Remove iv_repo_name; replace its usage by url
Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Replace LEAVE with CALL SCREEN
* Add new option iv_show_commit
Add new option iv_show_commit to GUI_CHUNK_LIB to be able to suppress showing commit hash on GUI_PAGE_CODE_INSP page
* abapLint: Replace 'EQ' by '='
Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>
* Hide commit hash on other pages too
Hide commit hash on ZCL_ABAPGIT_GUI_PAGE_REPO_SETT and ZCL_ABAPGIT_GUI_PAGE_SYNTAX pages
Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Refactor user persistence
Instead of selecting the settings from the DB for each "get", user settings are now kept in instance memory. Simplifies code, too.
* Lint
* Replace commit work
* Change risk level
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* CLAS: Avoid unnecessary serialize of testclass file
Unit tests are only functional if the corresponding flag is set (`seoclassdf-with_unit_tests`). Therefore, if the flag is not set, there's no need to serialize this include.
* Added version to select
* Switch to seo function
* Set mv_skip_testclass
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* refactor validation in html_form + UT
* minor UT tweak
* subtle form bugfix (boolc return space string)
* cleanup add forms
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Update ZCL_ABAPGIT_USER_MASTER_RECORD
- Issue: If the user does not exist in the system, the BAPI will fail but still the user still will be added to the gt_user.
- Fixed the issue, if user is invalid it wont be added to the list.
- Refactored the class and added check_user_exist method.
- Added unit tests.
* Sy-uname
* Lint
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Close some todos
FUGR does not have any class includes
* Remove huh?
* Move WDYN activation to serializer
Co-authored-by: Lars Hvam <larshp@hotmail.com>
Pressing ESC used to exit abapGit completely. Changed it to work like F3 (BACK), which makes more sense especially in HTML form. You can still exit from anywhere using SHIFT+F3.
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Part 1
* Part 2
* Part 3
* Lint
* Part 5
* Part 6
* Part 7
* Part 8
* Part 9
* Enforce type naming prefix
All types need to start with TY_...
* Fix local types
* event->post_data logic
* part of pages, commit test
this is also long text
to test
* string_map: port strict() feature
* pages refactoring part 2
* linter
* docs
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Dialogs: add offline repo HTML form
* Dialogs: add offline repo HTML form
* Dialogs: add offline repo HTML form
* Lint
* Lint
* Chaining
* Set required attribute
* Check for empty display name
* Change validation
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Adapt trial code from christianguenter2
* Add changed_by
* Adapt trial code from christianguenter2
* Add changed_by
* Add unit test mock class
* Update unit tests
* Unit tests %26 lint fixes
* De-Linting
* More lint fixes
* More lint experimenting
* More de-linting
* Update unit tests
* Turnaround test (WIP)
* More XML turnaround testing
* Turnaround test now working
* Clean up code
* Enable experimental mode
If we want to merge into master, it will only run for daredevil experimentalists
* Update src/objects/zcl_abapgit_object_pdts.clas.testclasses.abap
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Update src/objects/zcl_abapgit_object_pdts.clas.abap
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* 702 compatibility
* More 702 compatibility
* Removed container texts and system elements
Temporary(?) measure as they are being too troublesome, changing XML on successive serializations and suchlike.
* Caught exception
* General refactoring
* Remove NOTEXT pragmas and directives
* De-linting
* Remove diff in transport class
* Refactoring WIP
* Refactoring - WIP
* Refactor serialization
* De-lint
* Update container serialization
* Refactor deserialization WIP
* Object type PDTS - Workflow Task (experimental)
* Object PDTS Alpha version
* De-lint
* Correct CI dependency issues
* Check for critical unit test setting
Co-authored-by: Lars Hvam <larshp@hotmail.com>
Activation of foreign keys now uses with same logic as #3545:
- remove keys during DDIC phase
- add keys during LATE phase
Closes#3867
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Add button to launch IEChooser.exe on Windows
* Fix CASE statement
* Determine iechooser.exe path using system directory
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Split settings and dev utils menu
* Fix missing settings hotkey on repo view
* Revert "Fix missing settings hotkey on repo view"
This reverts commit 1444744a5f.
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* remove uses of CHAR30
* Update abaplint.json
* add basic unit test for ZCL_ABAPGIT_MESSAGE_HELPER
* replace uses of char50
* fix name
* Update abaplint.json
* use sy-uname instead of uname
in ZCL_ABAPGIT_USER_MASTER_RECORD
* change xml references
* change xml reference, remove type definition
deleted type already exists in zif_abapgit_definitions
* change XML references
* change indentation
* fix indentation
* fix ident pt. 3
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* change xml references to interfaces
changed reference in interfaces:
- zif_abapgit_comparator
- zif_abapgit_oo_object_fnc
* change reference of xml in dependent objects
Co-authored-by: Lars Hvam <larshp@hotmail.com>