- Add documentation for Web Dynpro component and controllers
- Fix diffs of view components due to missing sort
- Updated https://github.com/abapGit-tests/WDYN
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>
Uninstalling objects like `ENHC` just removes their references to OTR entries (`sotr_use/u` tables). Therefore, when the package is uninstalled, the remaining OTR entries will be completely removed.
Co-authored-by: Lars Hvam <larshp@hotmail.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>
* Add zcl_abapgit_rule and zif_abapgit_rule
* Insert clear and fill logic
* Pass rule to the generic serializer in IWSG class
* Remove extra space
* Remove inline declaration
* Format the code
* Replace CHECK with IF
* Rename class/interface
* Multiple changes
Rename method name
Change method signature
Remove clear field
* loop over all fields of given fields
* Align method call parameters
* Remove class reference for member
* Use string template to convert to type
Co-authored-by: Lars Hvam <larshp@hotmail.com>
Co-authored-by: Marc Bernard <59966492+mbtools@users.noreply.github.com>
* Allow different user/password per repository
Clear auth buffer to allow different user/password per repository in background mode
* Uppercase for class name
Co-authored-by: Marc Bernard <59966492+mbtools@users.noreply.github.com>
Starting with ABAP Platform 2208 DTDC does no longer have an own workbench data class but instead uses CL_BLUE_SOURCE_OBJECT_DATA directly.
In addition:
The field that carries the ABAP language version changed from ABAP_LANGUAGE_VERSION to ABAP_LANGU_VERSION in ABAP Platform 2208. So to make it work in both releases < and >= ABAP Platform 2208 we have to try to clear both versions of that field.
Co-authored-by: Lars Hvam <larshp@hotmail.com>
Co-authored-by: Marc Bernard <59966492+mbtools@users.noreply.github.com>
* Remove "Tag Overview" popup
- The "Tag > Overview" feature has been removed (because of bad performance and low value)
- The tag select popup has been refactored. The code has been moved to `zcl/if_abapgit_popups`. Only change is that the popup is now centered like the others.
- Therefore, class `zcl_abapgit_tag_popups` has been removed
* Update injectors
* Remove interface
* Secondary key
* Remove "Branch Overview" page
- The "Branch > Overview" feature has been removed (see #5411 for reasoning).
- The merge feature has been refactored into a new HTML page under "Branch > Merge" (#5402)
Closes#5411
* Remove old page
Co-authored-by: Lars Hvam <larshp@hotmail.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>
* TABU: Add "jump" to SE16
When using "Data Cofiguration" you can now jump from the repo view to the data browser (`se16`).
* Simplify
Co-authored-by: Lars Hvam <larshp@hotmail.com>
When deserializing SAP packages that do not exist in background, AG will dump with `DYNPRO_SEND_IN_BACKGROUND`. This is caused by a popup asking for the transport.
Fixed by passing the transport to the save method.
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Improve LXE error handling
Raise exception in case of error messages
* Remove space
Co-authored-by: Lars Hvam <larshp@hotmail.com>
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* DEVC: Raise error for main/structure packages
Main or structure package and cannot be used in local packages (`$...`).
abapGit will now raise an error, if one tries to pull main or structure packages into a local package.
* Split into two messages
* Locally
* Local
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* DOMA: Deletion of domains with append
On newer releases, suppressing the confirmation popup does not work since the parameter has changed.
Added a call using the new parameter.
* No if
Co-authored-by: Lars Hvam <larshp@hotmail.com>
If default transport is set and its type matches to what is required, then use it as default for the transport popup.
This will make it easier for example if a pull or uninstall failed and needs to be repeated since you want to continue using the same transport.
Co-authored-by: Lars Hvam <larshp@hotmail.com>
Change documents left a diff when pulled once that would go away after second pull. In debugging warning CD 763 could be seen "No TADIR entry found'. The `tadir` entry is now created properly.
Uninstall would fail with "Function group ... does not exist". Reason was that the function group was already deleted by `chdo` object. The deletion of such generated function groups is now skipped.
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Deserialize textpool for some objects
Fixes inserting the textpool for objects that are not handled by `RPY_PROGRAM_INSERT`. This applies for example to function groups and exit includes (`zx...`).
* Fix deserialize_textpool
Co-authored-by: Lars Hvam <larshp@hotmail.com>
CI tests have shown that several object types are not properly recorded in transports. For some objects there was no transport entry when creating the objects, for others when deleting it.
This PR add the necessary calls to `corr_insert()`.
(some SE80 reorders)
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>
Function module WEBI_GET_OBJECT returns several internal tables. Sometimes, the sorting order of these internal tables is different in each system ex: S/4HANA and non-S/4HANA. This fixes#5389.
* Fix data elem type ref to class in same repository
* simpler solution by testing refkind and reftype
Co-authored-by: sandraros <sandra.rossi@gmail.com>
Co-authored-by: Marc Bernard <59966492+mbtools@users.noreply.github.com>
* Fix proposal for issue #5347: added support for 'TYPE REF TO DATA' DDIC data elements as components in DDIC structures
* Fix proposal for issue #5347. Added support for 'REF TO DATA' DTEL DDIC element residing in DDIC structure
* Fix proposal for issue #5347, added support for 'TYPE REF TO DATA' DDIC data element residing in DDIC data structurees
* REF TO DATA for DDIC element support (#5347)
* No error if ddic type has warning (abapGit#5361) during import
* Update zcl_abapgit_objects_activation.clas.abap
* Fix for (abapGit#5361). Warnings during DDIC objects activation shouldn't be considered as error but will be shown as 'yellow' messages after activation
* Fix for (#5361).
Warnings during DDIC objects activation shouldn't be considered as error but will be shown as 'yellow' messages after activation
Co-authored-by: Lars Hvam <larshp@hotmail.com>
In some systems, function modules RS_GET_ALL_INCLUDES returns an include *T00. Where *T00 include is not returned, abapGit adds to the internal table. This results in different sorting order in different systems. Sort to keep the same order.
- Eliminate flashing of progress bar during deserialize
- Updated description for deserialize steps
- Add steps to log (see below)
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* TABL: Properly show inactive objects
Current `is_active` check is insufficient for DDIC objects and can't detect "new" or "partically active" objects.
Introduces a new `is_active_ddic` method in `zcl_abapgit_objects_super` which should be used by all DDIC types (follow-up).
Ref #5294
* Update zcl_abapgit_objects.clas.abap
* Update
- Allow for radio options to be arranged in column (instead of side-by-side)
- Render maxlength for text fields only when provided
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>
* Change icon for user settings
Reduce confusion because of same icon for different settings.
Closes https://github.com/abapGit/abapGit/issues/5088
* Icon
* Update toolbars
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Avoid double deserialize of text symbols
Text symbols are already deserialized in `ZCL_ABAPGIT_OBJECTS_PROGRAM->DESERIALIZE_TEXTPOOL`.
* remove method
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* UI: Center Popups
GUI popups were showing up all over the screen. On bigger screens, they often display outside the abapGit HTML frame.
With this change, most popups will show nicely centered or close to it (some fine tuning might still be required).
Notes:
- Some popups like the one prompting for a transport request do not allow to influence the screen position.
- Follow-up: Consolidate "Tag Popups" from `ZCL_ABAPGIT_TAG_POPUPS` to `ZCL_ABAPGIT_POPUPS` and adjust accordingly.
* Lint
Co-authored-by: Lars Hvam <larshp@hotmail.com>
When serializing objects in parallel threads, it can happen that there are not sufficient system resources available (free dialog processes). In this case, abapGit can run into error "RFC task <task name> already open". This is caused by reusing the same task name in subsequent tries to serialize an object.
The correction appends a sequential number to the previous task name so each try will result in a unique task name.
Closes#5224.
PS: This does not fix any resource issues but should prevent the error. It will lead to wait situations and longer processing, however.
* Don't include XML when serializing AFF
Avoids output of metadata XML when serialized object contains JSON (ABAP file format).
Preparation for #5126
PS: Contains new and updated unit tests
* Rename is_json_metadata
* CP
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Adjust diff algorithm
This implements a workaround for the kernel issue when determining diffs (see https://github.com/abapGit/abapGit/issues/4395 for background).
Here's an example of the change.
Before:
After:
* Lint + check
* Add test
* Ignore new tests
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* objects: use provided Transport in deserialization of ENHO+SFPF
I have been working on RFC enabled functions modules for executing
abapGit operations and I found out that transported objects of type ENHO
and SFPF cannot be pulled over my RFC methods because the specified
transport was not used.
This commit simply takes over the approach from other objects where
we already read the transport number.
For SFPF, I had to add "darkmode" which was missing and which is
necessary to avoid any dialogues.
I am not sure if there are other objects with the same problem, so
I might be posting similar patches in future.
* Downport #5199
* Fix indentation
* Always pass transport in SFPF
Co-authored-by: Jakub Filak <jakub.filak@sap.com>
Co-authored-by: Lars Hvam <larshp@hotmail.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>
After #5216
Replaces `zcl_abapgit_default_transport=>get_instance( )->get( )` logic with `iv_transport` for the following object types:
`AMSD, BDEF, DRUL, DTDC, FDT0, FUGR, INTF, PROG, SQSC, SRVB, SRVD, WDCA`
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Repo View: Improve view with folders
I made some improvements to the folder view:
- Boxed display of path
- Separate links for folders within path
- Remove leading/trailing `/` in folder display
- Better alignment of `..` parent folder
- Fix incorrect HTML since `%26lt;tr%26gt;` was before `%26lt;thead%26gt;`
Ref https://github.com/abapGit/abapGit/pull/5159#issuecomment-976124592
* Update CSS
Co-authored-by: Lars Hvam <larshp@hotmail.com>
Co-authored-by: Christian Günter <christianguenter@googlemail.com>
Adds transport number for `zif_abapgit_object~deserialize` and `zif_abapgit_object~delete` to pass the transport number to the object classes.
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>
* performance optimization parallel mode
in parallel mode a new session is created for each object to be serialized. method IS_TYPE_SUPPORTED is called in each new session with only one object type. however all objects are loaded via method SUPPORTED_LIST. this change implements a specific cache for method IS_TYPE_SUPPORTED.
* Update src/objects/zcl_abapgit_objects.clas.abap
Co-authored-by: Christian Günter <christianguenter@googlemail.com>
* moved type defintion to PRIVATE SECTION
Co-authored-by: Lars Hvam <larshp@hotmail.com>
Co-authored-by: Christian Günter <christianguenter@googlemail.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>
* Repo view: Set minimum width of status column
As seen in https://github.com/abapGit/abapGit/issues/5178, if the repo view table is very wide, the status column might not wide enough and be wrapped.
Change ensures a minimum width of the column.
* Reduce
Co-authored-by: Lars Hvam <larshp@hotmail.com>
The filenames can become very long, for example, usage of many sub-packages, namespaces, objects like function groups, or BSP/Fiori apps with many sub-objects, or a long paths as starting folder. This can make the repository view very busy or render the output as a very wide table (see #5169, #5178).
This exit allows to adjust the filename according to your own rules.
Here's an example for shortening the display of files for sub-objects:
```abap
METHOD zif_abapgit_exit~adjust_display_filename.
DATA:
lv_path TYPE string,
lv_name TYPE string,
lv_ext1 TYPE string,
lv_ext2 TYPE string.
SPLIT iv_filename AT '.' INTO lv_path lv_name lv_ext1 lv_ext2.
IF lv_ext2 IS INITIAL.
" Main object
rv_filename = iv_filename.
ELSE.
" Sub object
rv_filename = |…{ lv_ext1 }.{ lv_ext2 }|.
ENDIF.
ENDMETHOD.
```
* Commit page: option to hide author fields
The vast majority of time the committer is the same as the author (I assume). This adds an option to hide the author name and email fields on the commit form.
* Update docs
* Update docs
Co-authored-by: Christian Günter <christianguenter@googlemail.com>
* Refactor: Jump to Object Logic
Continue #5114
- Removes jump_adt and jump_se11 from zcl_abapgit_objects_super
- Remove almost all object-specific jump handlers (zif_abapgit_object~jump) since they are covered by GUI Jumper now
* Remove ZCL_ABAPGIT_OBJECT_SICF
* Remove obsolete RS_TOOL_ACCESS
* FUGR
* IATU
* PDXX
* SRVD
* XINX
Co-authored-by: Lars Hvam <larshp@hotmail.com>
Co-authored-by: Christian Günter <christianguenter@googlemail.com>
* Add new methods
directory_create and directory_exis
* clean up whitespace
* normalize whitespace, formatting, comments
* decouple direct usage of cl_gui_frontend_services
* downport + concatenate to string template
* move param to single line
Co-authored-by: Marc Bernard <59966492+mbtools@users.noreply.github.com>
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Add DRUL and DTDC to mass activation
DDIC mass activation supports Dependency Rules (DRUL) and Dynamic Cache (DTDC) object
* Len
* Update abap_transpile.json
* Make exceptions compatible with 702
702 does not deserialize exception classes correctly that have a constructor in a super class (see #1273). Adding an explicit constructor that calls the super-constructor, the issue is avoided.
* Pretty
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Adjust syntax highlighter output
Minor adjustment to output of syntax highlighter. There's no need to escape quotes, so `e_html_text` is sufficient.
PS: Change will make implementing "Highlight parts where a changed line is changed" a bit easier (#2804)
* Adjust tests
* Update abap_transpile.json
* Update test case
* Revert
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Exclude package from AJSON mirror
Just copy `z*` objects which keeps `package.devc.xml`
* Update package.devc.xml
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* add feature: create new branch for commit
* add clarifying comments
* add check for empty branch name
* remove check box, add condense to new branch name
* add duplicate check for branch name
Co-authored-by: Marc Bernard <59966492+mbtools@users.noreply.github.com>
Use hotkey activation logic also for link hints. Previously it was possble to activate link hints on some input fields (e.g. search on stage page). This is now fixed.
Co-authored-by: Lars Hvam <larshp@hotmail.com>
Activates buffer mode for menus (same logic as in function BMENU_CREATE_TREE).
Closes#5077
Co-authored-by: Alexander Tsybulsky <sbcgua@users.noreply.github.com>
* Refactor: Jump to Object Logic
The goal is to greatly simplify the code to jump to an object, and to separate UI and object layers some more.
This PR introduces GUI Jumper (`zcl/if_abapgit_gui_jumper`), which covers all generic options to show an object. It tries the following options in order:
- ADT (if enabled)
- Workbench with line number
- Workbench without line number
- Transport System (new)
Only if all fail, abapGit will call the object-specific handler.
Next steps:
- Remove `jump_adt` and `jump_se11` from `zcl_abapgit_objects_super` and replace by GUI Jumper
- Remove almost all object-specific jump handler since they are covered by GUI Jumper now
* Add class
* Lint
* Misleading name