* 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>
pretty print class ZCL_ABAPGIT_HTML_FORM, and change two static methods to instance, this will make future possible changes to the class easier to see in the history
Follow-up to #3717:
- Proper display of public, protected, and private sections
- Add CLAS prefix to be inline with other object types
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* popup_to_select_from_list can handle element tabs
popup_to_select_from_list can now handle element-based non-structured tables like a table of url strings
Therefore related to #3639
* Update zcl_abapgit_popups.clas.abap
* Fixed wrong value assigning and added assert
* Add performance test
* Fix some linter errors
* Refactor free selections to reduce method length
* Performance test add title to result ALV
* Attempt downport
* Downport
* Pretty Printer VS abaplint
* Undo more changes done by pretty printer
* Adjust performance popup title and ALV layout
* Move free sel dialog to global for abapmerge
* Move some type definitions for abapmerge
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* navigate to repo after ZIP import
* add zip import/export action for offline repos
* rename action labels
* change new state to be dependent on current page
change replacing -> new page if action called from repo list
rerender if in repo view
* add some TODOs, see PR discussion
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Update error msg
* Fix login popup errors and cancelation
* Remove validate/reset methods
* Lint
* Rename iv_repo_online to io_repo_online
* Change to error in status bar
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Restart abapGit in case of self-update
Closes#3358
* Fix abapgit url detection
Old logic incorrectly matched for example https://github.com/abapGit-tests/CHAR
* Github only
* Separate method
Co-authored-by: Lars Hvam <larshp@hotmail.com>
Windows cannot store filenames containing "<" and ">"
These two characters are now uri encoded, same approach as already deployed for some characters
#3817