Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>
Co-authored-by: Lars Hvam <larshp@hotmail.com>
Co-authored-by: Marc Bernard <59966492+mbtools@users.noreply.github.com>
Co-authored-by: Thomas Ergin <Thomas.Ergin@bmw.de>
Co-authored-by: Marc Bernard <59966492+mbtools@users.noreply.github.com>
Co-authored-by: Marc Bernard <marc@marcbernardtools.com>
Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>
* Fix dump when deleting repo with DB utility
Ref #5612
- Avoid dump when manually deleting entries with DB Utility
- Avoid inconsistency when deleting repo entry but not repo checksums
- Improve warning popup and error message
* Fix warning
Co-authored-by: Lars Hvam <larshp@hotmail.com>
Renames methods after changing to interface. Interface methods are now properly named `<interface>~<method>` (instead of `<alias>`). This also fixes warnings and navigation issues in `SE24/SE80`.
* Support direct longtexts in exceptions
as opposed to already supported indirect T100-based longtexts
* Lint
* Remove direct longtext variable support
* Add unit tests for exception longtext
* Add longtext message to language mismatch error
* Fix missing preserve_newline handling
* Adjust longtext display in error message box
- Convert newlines to html line breaks
- Indicate if a longtext is available on hover
* Fix duplicate preserve newline handling
* Adjust exception longtext rendering
Render linebreaks as html paragraphs
* Align error message box buttons to bottom right
so they do not move on hover when a longtext is available
* Refactor exception unit tests
* Skip failing transpiled tests
* Adjust longtext indicator for error message
Co-authored-by: Marc Bernard <59966492+mbtools@users.noreply.github.com>
Co-authored-by: Lars Hvam <larshp@hotmail.com>
In case an objects originates from a different system (`<> sy-sysid`), an icon will be shown after the object. On hover, you can see the id of the original system.
Closes https://github.com/abapGit/abapGit/issues/3865
* Improve error message for language mismatch
* refactor
* refactor
Co-authored-by: Marc Bernard <59966492+mbtools@users.noreply.github.com>
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Add get_switched_origin to repo_online
* Add onclick action for radiobuttons
* Refactor remote settings to allow for direct input
without using value helps
* Adjust branch overview error message
Inform the user about the possibility of changing HEAD directly without using the value help (that failed to show up).
* Fix hidden form fields taking up vertical space
* Add min/max restriction to commit field
on remote settings page
* Implement basic validation for commit id
on remote settings page
* Load previous branch/tag when PR is selected
in remote settings page to be able to switch back to it more easily
* Use current form data in PR and tag selection
on remote settings page, where possible. Otherwise check the form values are the same as the repo instance values.
* Fix issue when changing URL and switching from PR
at the same time
* Remove repo dependency in PR enumerator
to be able to list PRs for the current url on the repo remote settings page
* Update zcl_abapgit_branch_overview.clas.abap
Co-authored-by: Marc Bernard <59966492+mbtools@users.noreply.github.com>
* Properly ignore files during deserialize
Closes#5426
This moves the ignore logic from `zcl_abapgit_files_status->prepare_remote` to an option of `zcl_abapgit_repo->get_files_remote`. Deserialize can then ignore the files already when getting them via `get_files_remote`.
PS: Required for https://github.com/exercism/abap/pull/82
* Update zcl_abapgit_repo.clas.abap
* Update zcl_abapgit_repo.clas.abap
Co-authored-by: Lars Hvam <larshp@hotmail.com>
Co-authored-by: Christian Günter <christianguenter@googlemail.com>
"Data Config" is persisted on remote side only. Comparison feature reads the local part only and therefore does not support comparing of "data config". Therefore `get_files_remote` is not necessary.
Closes#5189, #5443
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Check if package name is allowed
When validating SAP packages, it now checks the naming conventions.
* Move method
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Folder logic "mixed"
Introduces a new folder logic named `mixed` which combines `prefix` and `full`. The root package name will be used as prefix for all sub-packages but the package names are *not* concatenated recursively. This will allow for using significantly logic package names.
Also includes several new unit tests especially for nested packages which had not been tested before.
Closes#5410
Todo: Update docs
* Add constant
* Add options to UI
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Initial
* Adjustments
* Router
* Abaplint
* abaplint
* diff between eclipse and vscode
* Multiple Adjustments
* Split Backend And GUI Logic
* Multiple Adjustments
* No Unit Tests
* abaplint
* Rename ZCL_ABAPGIT_REPO_PRE_FILTER to ...TR
* Multiple Adjustments
* Refactor the OVP action links into a toolbar
* abaplint
* Replace BAPI_MSG by STRING
* Rename Pre Filter to Object Filter
* Rename Pre Filter also in abap_transpile.json
* restore from main
* Check if <ls_item>-li_class is filled in Toolbar
* Adj. toolbars and move TR Req to zif_abapgit_popup
* abaplint
* Move ty_trrngtrkor_tt to zif_abapgit_definitions
* abaplint
* Move and rename filter menu entries
Co-authored-by: Lars Hvam <larshp@hotmail.com>
Co-authored-by: IBM <mbox-060-sap-extern-tbom@daimler.com>
Co-authored-by: Marc Bernard <59966492+mbtools@users.noreply.github.com>
* Repo, Repo Online, File Status
* Stage Logic
* Adjustments
* abaplint
* abaplint
* abaplint
* diff between eclipse and vscode
* Centralisation and reuse
* Filter at Get Remote Files instead of Set
* Split Backend And GUI Logic
* abaplint
* abaplint
* Filter Unit Tests
* Missing ,
* remove own type for trobj_name
* Multiple Adjustments
* Rename ZCL_ABAPGIT_REPO_PRE_FILTER to ..._TR
* abaplint
* Replace BAPI_MSG by STRING
* Rename Pre Filter to Object Filter
* Rename Pre Filter also in abap_transpile.json
Co-authored-by: Lars Hvam <larshp@hotmail.com>
There are scenarios where you want to serialize objects differently than abapGit. This exit is called at the end of the serialize process and gives an opportunity to change the content of the serialzed files.
One such scenario would be to automatically pretty-print code. This can be achieved by looping over all `.abap` files and processing them accordingly in this exit.
Closes#5050
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Refactor: Consolidate front-end classes
There's no need for two "front-end classes". Moves all of ZCL_ABAPGIT_GUI_FUNCTIONS to ZCL_ABAPGIT_FRONTEND_SERVICES. Now all front-end calls are nicely together.
No functional change, some method reordering.
Ref #2510, #5145
* Add missing interface
Co-authored-by: Christian Günter <christianguenter@googlemail.com>
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Refactor serializer class
- Consolidate i18n parameters
- Move determination of translation languages into serializer class
- Pass translation language setting when parallel processing (was a bug)
* Lint
* Add unit tests
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Naming of class constants
This is in preparation of enforcing a naming convention for constants in classes/interfaces. At the end, the following lint rule shall be set:
```json
"class_attribute_names": {
"constants": "^C_.+$",
...
},
```
After this, the only remaining constants not following this rule are in `zcl_abapgit_version`.
* Update zif_abapgit_dot_abapgit.intf.abap
* Update zcl_abapgit_gui_chunk_lib.clas.abap
* Update zcl_abapgit_gui_router.clas.abap
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Add "Last changed by" to repo page
Proposition for #3267
* Add "Last changed by" to repo page
For #3267
- add "Changed by" also for local items
Co-authored-by: Lars Hvam <larshp@hotmail.com>
the old get_instance() method in ZCL_ABAPGIT_PERSIST_SETTINGS has been moved to a method in zcl_abapgit_persist_factory, plus interface added. Added to persist injector
* Auto creation of package during new online
If you create a new online repository and the repo does not contain any SAP package, then abapGit will prompt you for the package attributes and create the package for you. This is, for example, the case when you use an newly created online repo as a starting point.
If the repo does contain a package, then the package will be created automatically when you pull from the repo (as described in [docs](https://docs.abapgit.org/ref-packages.html)).
Closes#4538
* Update docs
Co-authored-by: Lars Hvam <larshp@hotmail.com>
Co-authored-by: Christian Günter <christianguenter@googlemail.com>
* Terminology: Inclusive Language - Part 6
Change remaining variables and switch setting to main_language.
Finally closes#4043
* Add todo
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Enhance "Force Pull" to become "Selective Pull"
With this PR you can now peform a selective pull. Yay!
- Changes "Force Pull" to show *all* changed objects in the usual "Overwrite Popup". This allows you to select individual objects to be pulled no matter if they were changed locally or remotely.
- Does *not* change the regular "Pull" logic
Closes#413, #4282
* Combine delete and overwrite popups
* Add icons to abaplint.json
* Change if to case
* Add icons to abaplint.json
* Enhance UTs
* show_icon
* Show icon
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* New "Switch" tab in repo settings
This PR adds a new tab to the repo settings which combines all options for switching the repository to a different source:
- Switch between "Online" and "Offline"
- Switch to Branch, Tag, Commit, or Pull Request
Note 1: Value help for URL history has not been implemented yet.
Note 2: None of the existing related menu items have been removed yet.
* Clean-up
* Clean-up
* Clean-up
* Clean-up
* Clean-up
* Change to "Remote"
- rename class
- add "autosave" for on/offline switch
- change "Switch" to "Remote"
* Update on/offline switch
* Update on/offline switch
* Update zcl_abapgit_gui_page_sett_remo.clas.abap
* Grammar
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Terminology: Inclusive Language - Part 5
Change of terminology (#4043)
- Replace `get_master_language` with `get_main_language` and remove it
* File Status
* Jump
* Language
* Main language
* Main language
* Data deserialize
Continuing on #3441
- Fixes issue with namespaced tables
- Adds deserialize of table content during pull but does NOT persist changes to database
`zcl_abapgit_repo->deserialize` now contains the following call to deserialize "data":
```abap
zcl_abapgit_data_factory=>get_deserializer( )->deserialize(
ii_config = get_data_config( )
it_files = get_files_remote( )
iv_persist = abap_false ). "<<no persisting, just test for now
```
Closes#4650
* Fixes and max record check
* Get result preview
* Split deser/actualize
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Add unsupported object count in repo statistics
* lint fix: Keep single parameter on one line
* Fix indentation
* Undo changes to TADIR and DEFINITIONS
Undo changes to ZCL_ABAPGIT_TADIR and ZIF_ABAPGIT_DEFINITIONS
* Refactor code
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Automatic creation of top repository package
When adding a repository, it is not necessary anymore that the top SAP package assigned to the repository exists. Just enter a package name and clone (works for offline, too).
The initial diff will now show that the top package exists remotely only. Therefore, when pulling, you will not get the "confirm overwrite package" popup anymore. Yippie!
* Typo
Co-authored-by: Lars Hvam <larshp@hotmail.com>