* Possible Solution #1
* Update zcl_abapgit_objects_super.clas.xml
* abapLint
* Removed german language flag
* Fixes
* Removed flag for german language
* Removed test code
* abapLint
* Implemented suggestions from PR
> mo_xml_api is just local now
> li_service removed
> implemented exception handling for calls of xml api methods set_changeable, delete and save
> integrated sy-subrc into all exception calls
> wrote update routine if IAXU object already exists (object will be deleted first and after that local method save is called)
* abapLint
* abapLint
* String template, restructured api methods
* Remove descriptions
* abapLint
* Fixed issues after restructuring api methods calls
* Alternative error handling for existence check
* Use api existence check instead of load
* Fixed some bugs
* added a picture for pull from zip
it can then be used in guide-import-zip.md
* Fix for Issue 2922
https://github.com/larshp/abapGit/issues/2922
Added a new test method find_head_closing_tag.
Implemented fix in method zcl_abapgit_gui_html_processor->find_head_offset.
* Removed dont needed Pull_from_zip.png
Removed dont needed Pull_from_zip.png
* Restored NewLines handling in patch_html
Restored NewLines handling in patch_html
* Fixed some abapLint Warnings
Fixed some abapLint Warnings
* Fixed some abapLint messages
Fixed some abapLint messages
The methods CL_OO_CLASS_SECTION_SOURCE=>SCAN_SECTION_SOURCE calls the
function SCAN_ABAP_OBJECTS_SECTION without the parameter superclsname
which causes that variable scan_result (vse_tabs) holds a broken table of
redefinitions for protected methods which leads into a short dump during
CL_OO_CLASS_SECTION_SOURCE=>REVERT_SCAN_RESULTS.
The problem does not occur for public section because the public section
contains "CLASS ... INHERITING FROM ...", so superclsname gets
populated. It's obvious that the class definition statement is not
present in the protected section.
The crash is reported as DBSQL_DUPLICATE_KEY_ERROR in the program
SAPLSEOR at INSERT_REDEFINITIONS.
The code is the following:
* first refresh db table
perform delete_redefinitions
using inhkey.
delete adjacent duplicates from redefinitions.
* insert again
insert seoredef from table redefinitions.
One might think that the delete statement form clears the table seoredef
but the problem is that the variable inhkey contains the super class
name so no redefinitions are actually removed and the insert statement
attempts to insert the redefinitions without parent class again.
The proper solution is to enhance CL_OO_CLASS_SECTION_SOURCE=>SCAN_SECTION_SOURCE
to pass the super class name to SCAN_ABAP_OBJECTS_SECTION - at least for
the protected section.
However, I am not patient and I am not going to wait for the proper fix
(which the maintainers may refuse).
* Order by on repo page
* move render_cols_pec to zcl_abapgit_gui_chunk_lib
* cleanup
* cleanup
* first new working version
* fix lint
* add OrderByHelper
* add new feature clear
* rename ICON to CLEAR
* cleanup
* refactor actions
* fix typo in method name
* remove duplication
* rename render_col_spec to render_order_by_table_he
* refactor type
* fix eslint warning
* isoltate repo_tab CSS
* fix non-code and metadata files at the top
* refactor
* cleanup
* new features "diffs first" + remove clear
* refactor
* take directories into account
* cleanup
* No log messages for local objects after pull
In case a package contains objects that are are not part of the remote repository, the pull log contains messages like "Object (type ) only exists local; no import required". It is not necessary that messages for local object appears in the log. For pull requests, messages for the affected objects (objects to be imported) are sufficient.
This change ir related to issue #2931.
* rename (z)if_abapgit_definitions
rename (z)if_abapgit_definitions
* UENO: Entity Type Implementation (#1906)
* Resolve ABAPlint issues
Resolve ABAPlint issues
* UENO - Use zcl_abapgit_objects_generic
Removal of many unnecessary methods due to use of zcl_abapgit_objects_generic
* #2725
> Bottom logo is now clickable and links to the repository page on GitHub
> New menu item 'Changelog' under 'Help' which links to the changelog.txt
Special Notes:
> Link to documentation was already implemented
> Link for menu item 'Tutorials' isn't linked to anything. But that seems to be right, because there isn't a tutorial site separated from the documentation website
* abaplint: Normalization
* Update zcl_abapgit_services_abapgit.clas.abap
* Update zcl_abapgit_services_abapgit.clas.abap
* abaplint: fix max line length error
* abaplint
* Removed "|{}|"
* command palette
* support for Ctrl; case insensitive search
* some wip
* refactor KeyNavigation
* eslint
* commandPalette key navigation improved
* last backspace hides the palette
* minor cleanups and ids
JavaGUI does not pass values of options from forms generated via
JavaScript.
This commit adds enhances the base page class to render stub forms
(empty form elements), so the page's JavaScript does not need to create
the form element on its own.
It is an optional behavior and can be enabled by redefining the method
get_events which should return table of required events and the base
page object will add the empty form elements for them. Every table line
will be converted to a form with id = "form_" + the event's name.
On the action submit SAP event in the common JavaScript, the method
checks if there is the stub form and if so, the method uses it instead
of creating the dynamic one. Otherwise, it follows the old approach that
creates the form at run-time.
--- v2
Use 'null' instead of 'undefined' to check the form was not found in
the JavaScript code.
---
Issues: #1866, #2769
* draft rewrite hint to be dynamic
* linter fixes
* remove color setting
* remove backspace and esc handling
* close dropdowns
* return some comments in JS
* linter fixes
* Fix hint for dropdown first time + alw close drdwn
* fixes issue #2815
The existing object handler for CDS metadata extension (DDLX) has been reviewed by an expert.
Doing this, the following feedback has been provided:
enable existing logging capability
include environment specific logic (e.g. import of an inactive version)
improve exception handling so that the related object information can be displayed in log
assign package information to handle abap language version ina proper way
adapt lock object
* fixes saplint issues
* fixes saplint issues
* fixes saplint issues
* extract dependency injection for TADIR_INSERT
* fixes saplint issues
* zcl_abapgit_environment.clas.testclasses.abap set to master version
* changes related to code review
* redo changes
* redo changes
* back to master version
* Refactoring of ZCL_ABAPGIT_ENVIRONMENT #2810
* fixes saplint issues
* fixes saplint isues
* fixes saplint issues
* fixes issue based on review
* align zcl_abapgit_objects.clas.abap to master
* add the test class again
* UI Dark Theme #2610
Proposal - Right now, only the first obvious screens were checked, and there are still a few issues with them.
* CSS cleanup of unused elements
* Improve error information - follow up Part I
- Bug: remove errorenous regex
- Add tooltip for message id and message class
* Replace text of message link
* Improve error information
With this commit errors that are raised with zcx_abapgit_exception=>raise
and issued with message are enriched with two additional functions.
1) Go to source
Navigates to the source code position where zcx_abapgit_exception=>raise
is called
2) Callstack
Shows a popup with the full callstack and the possibility to navigate to
the source of each line with double click
This feature requires the full abapGit repository. Without nothing
changes.
* issue messages directly
* zcx_abapgit_exception: adapt callstack handling
- callstack as attribute
- export callstack to ABAP memory only when SAPGui is available
* rename memory id
* Add comment why we don't delete callstack from MEM
* cleanup
* first try html error display
* add some comments
* add longtext
* goto_source and callstack implemented
* part 2
* remove
* fix
* add close button
* fix long classname
* fix linter
* add jump to SE91
* fix lintmr
* fix and cleanup
* fix linter
* fix linter
* fix eslint
* fix linter
* remove message class
* remove superfluous constant
* add missing method implementation
* refactor
* add hotkey for message longtext toggling
* hotkey 2
* refactor + resize callstack popup
* Refactoring: simplify control flow
* fix goto callstack for merged abapGit
* refactor: simplify control flow
* Refactoring: introduce message helper
* fix linter
* remove TODO pragmas
* ren. render meth + move zcl_abapgit_gui_chunk_lib
* refactoring: simplify control flow
* simplify exception handling
* refactor
* refactor
* refactor
* remove duplication
* Rename method
* rename method
* remove superfluous constant
* call ZCL_ABAPGIT_MESSAGE_HELPER dynamically
* cleanup
* Improve UX
* fix linter
* remove hotkey
* Pass log interface for de-serialization
Interface ZIF_ABAPGIT_LOG is now passed for deseriaization API.
This includes:
- Log messages for FUGR: Imported function modules and includes
- Improved error messages for TABL compare
- Log objects w/o changes
- Log is shown in the UI if available ("Log" entry appears if a log exists, no persistence!)
This PR enhances #2534 and #2694
Another important change: In case an object fails (or a single function module in a group fails), the import continues with the next object!
* small pretty printer changes
small pretty printer changes
* fix abaplint issues
reduce line sizes and ensure 7.02 compatibility
* show errors and warnings from pull
Errors and warnings after a pull are now part of the "message list" above the object list in the main screen and will be shown immediately. The new"Log" button shows errors, warnings and success messages on demand.
The log title is now part of the ZIF_ABAPGIT_LOG interface.
* fix abaplint issue
fix abaplint issue
* New Program : Mass Transport to local zip file
Create new program ZMASSGIT in order to convert multiple tranport request to local zip files ( by giving output folder ).
Timestamped subfolder will be created in the input folder.
* Add files via upload
* Update zmassgit.prog.abap
* Add files via upload
* Add files via upload
* Delete zmassgit.prog.xml
* Delete zmassgit.prog.abap
* Add files via upload
* Add files via upload
* Add files via upload
* Add files via upload
* Delete zabapgit_masstransp2zip.fugr.lzabapgit_masstransp2zipf01.abap
* Delete zabapgit_masstransp2zip.fugr.lzabapgit_masstransp2zipf01.xml
* Delete zabapgit_masstransp2zip.fugr.lzabapgit_masstransp2zipplc.abap
* Delete zabapgit_masstransp2zip.fugr.lzabapgit_masstransp2zipplc.xml
* Delete zabapgit_masstransp2zip.fugr.lzabapgit_masstransp2zipscr.abap
* Rename zabapgit_masstransp2zip.fugr.lzabapgit_masstransp2zipscr.xml to src/zabapgit_masstransp2zip.fugr.lzabapgit_masstransp2zipscr.xml
* Rename zabapgit_masstransp2zip.fugr.lzabapgit_masstransp2ziptop.abap to src/zabapgit_masstransp2zip.fugr.lzabapgit_masstransp2ziptop.abap
* Rename zabapgit_masstransp2zip.fugr.lzabapgit_masstransp2ziptop.xml to src/zabapgit_masstransp2zip.fugr.lzabapgit_masstransp2ziptop.xml
* Rename zabapgit_masstransp2zip.fugr.saplzabapgit_masstransp2zip.abap to src/zabapgit_masstransp2zip.fugr.saplzabapgit_masstransp2zip.abap
* Rename zabapgit_masstransp2zip.fugr.saplzabapgit_masstransp2zip.xml to src/zabapgit_masstransp2zip.fugr.saplzabapgit_masstransp2zip.xml
* Rename zabapgit_masstransp2zip.fugr.xml to src/zabapgit_masstransp2zip.fugr.xml
* Rename zabapgit_masstransp2zip.fugr.z_abapgit_transports_2_zip.abap to src/zabapgit_masstransp2zip.fugr.z_abapgit_transports_2_zip.abap
* Rename zcl_abapgit_transport_mass.clas.abap to src/zcl_abapgit_transport_mass.clas.abap
* Rename zcl_abapgit_transport_mass.clas.xml to src/zcl_abapgit_transport_mass.clas.xml
* Delete zcl_abapgit_zip.clas.abap
* Delete zcl_abapgit_zip.clas.xml
* Add files via upload
* Add files via upload
* Add files via upload
* Add files via upload
* Add files via upload
* Add files via upload
* Update zcl_abapgit_zip.clas.abap
* Update zabapgit_masstransp2zip.fugr.lzabapgit_masstransp2zipf01.abap
* Update zabapgit_masstransp2zip.fugr.lzabapgit_masstransp2zipf01.abap
* Update zabapgit_masstransp2zip.fugr.lzabapgit_masstransp2zipf01.abap
* Update zcl_abapgit_transport_mass.clas.xml
* Update zcl_abapgit_transport_mass.clas.abap
* Update zabapgit_masstransp2zip.fugr.saplzabapgit_masstransp2zip.abap
* Update zabapgit_masstransp2zip.fugr.lzabapgit_masstransp2zipplc.abap
* Update zabapgit_masstransp2zip.fugr.saplzabapgit_masstransp2zip.xml
* Update zabapgit_masstransp2zip.fugr.lzabapgit_masstransp2zipplc.abap
* Update zabapgit_masstransp2zip.fugr.lzabapgit_masstransp2zipplc.abap
* Update zabapgit_masstransp2zip.fugr.saplzabapgit_masstransp2zip.abap
* New version without function group
* Cleanup
* Abaplint
* AbapLint Fixes
* Remove plugins objects from master
* Skip log flag in ZIP export
* Popup to ask the Export logic ( FULL / PREFIX ..)
* line length for abaplint
* Refactoring of code
Avoid redundancy of code and remove unused constant.
* Reduce line 50 length for abaplint ( < 120 )
* Change by the review of code
Refactoring of code
* AbapLint Fix
BEFORE:
In case the webi already existed in the receiving system a dump occured that prevent the import from happening
AFTER
The old webi object will be overwritten with the new changes.
* log: move show functions to new class
Enhance ZIF_ABAPGIT_LOG
- add IS_ITEM structure (object) to message adding functions
- add method "add_exception"
- add method "add_info"
- relocate methods "show", "to_html" and "write" to new class ZCL_ABAPGIT_LOG_VIEWER
Introduction of new log viewer class ZCL_ABAPGIT_LOG_VIEWER
Replacement of relocated methods where used
-> This is the next step providing a log for serialzation/de-serialization (see #2534)
* fix abaplint issues
fix abaplint issues
* fix abaplint issues (2)
fix abaplint issues
* Patch: replace links with checkboxes
With this commit we replace the links on the patch page
with checkboxes.
This has several advantages:
- better performance
- simplified and less cluttered UI
- less and easier to understand code
* refactor
* refactoring: introduce new method add_checkbox
* fix linter
* enable link hint navigation
* Refactoring: remove duplication
* refactor: remove duplication
* fix: link hint activate section/lines
* Added client check
Check if repository objects are modifiable in client. If not make write_protected setting active for all repos and make this setting disabled in repo setting page.
* fix abaplint errors
fix for abaplint errors
* code changes as suggested in review
1) Remove zcl_abapgit_client_check class
2) Add is_repo_object_changes_allowed method to zcl_abapgit_environment class
* Delete zcl_abapgit_client_check class
Delete zcl_abapgit_client_check class
* fixed error when activating on ABAP 7.02
* implemented suggestion, direct assignment instead of casting
* implemented suggestion (now using the interface)
* changed lr_popups to li_popups
Since all object handler contains exactly the same CASE statement for STEP definition, I would recommend that each object handler simply returns the STEP he belongs to.
This fix should "simply" issue #2499.
* Update zcl_abapgit_objects_program.clas.abap
Found a situation on my project where on pulling code from a zip file, the error RS_CUA_INTERNAL_WRITE sy-subrc = 2 popped.
The error was due to the content of XML file exported : <CUA><ADM>ACTCODE was containing an 'X' value for a single file. I corrected the file putting it blank and it worked. But it's a fastidious task so I fixed the method ZCL_ABAPGIT_OBJECTS_PROGRAM->auto_correct_cua_adm in order to fix this field also when it contains only an 'X'. Tested ok on my system so I propose this small change.
* Update zcl_abapgit_objects_program.clas.abap
* Update zcl_abapgit_objects_program.clas.abap
Use the same check SAP does in form check_adm of include LSMPIF03 for the CUA values.
* Leading spaces are lost when pulling bug #2571
Reason: during the pull (deserialization), the method `PARSE` of `ZCL_ABAPGIT_XML` does a `li_parser->set_normalizing( iv_normalize )` whose parameter has the default value "true", which strips leading and trailing spaces.
Solution: use `li_parser->add_strip_space_element( )` instead of using the normalization, which seems to work in elementary objects (clas, devc, doma, dtel, enho, enqu, fugr, intf, prog, scp1, tabl, tran, ttyp), but I fear of side effects throughout all abapGit features.
* #2571 zcl_abapgit_xml iv_normalize removed+AU
- Removal of useless parameter IV_NORMALIZE of method PARSE
- Abap Unit test added for testing the method PARSE for an XML valuecontaining leading and trailing spaces
* renaming attribute lo_xml to mo_xml
* Hotkeys no longer depend on abapGit installation
When this commit is applied hotkeys also work with
the single abapGit report. Limitation is still that users
only can override hotkeys with the installed abapGit repo.
* Fix hotkey display when no user def. hotkeys
* New: Override hotkeys within one file abapGit report
When this commit is applied it's possible to override the default
shortcut also in the one file abapGit report. It's no longer necessary
to installe the full abapGit repo to use this feature
* Extract is_merged + check in hotkey logic
* Allow access to private repos when using ADT
In case of using a private repository in ADT (aka ABAP in Eclipse), username and password are passed to the backend system. The ADT backend coding currently handles this via class ZCL_ABAPGIT_DEFAULT_AUTH_INFO. To avoid sending a password dialog in the backend system, class CL_ABAPGIT_PASSWORD_DIALOG needs to be adjusted to take over user/pw from ZCL_ABAPGIT_DEFAULT_AUTH_INFO in a generic way. I know this is not nice and it would be better to have ZCL_ABAPGIT_DEFAULT_AUTH_INFO in ZABAPGIT. Even the best solution would be to re-use ZCL_ABAPGIT_LOGIN_MANAGER instead, but I would recommend to refactor this in a new pull request later on...
* Add comment
Add comment for temporary solution and link to PR#2635
* Avoid DYNPRO_SEND_IN_BACKGROUND while ADT Pull
When ADT (aka ABAP in Eclipse) is used to trigger a pull request, there is no SAPGUI available in the backend system. Whenever a dynpro is called, a DYNPRO_SEND_IN_BACKGROUND short dump occurs.
This commit fixes issue #2632.
Additional remark: In case of a private repository, username and password are passed to the backend system. The ADT backend coding handles this via class ZCL_ABAPGIT_DEFAULT_AUTH_INFO. To avoid sending a password dialog in the backend system (class CL_ABAPGIT_PASSWORD_DIALOG), ZABAPGIT coding needs to be adjusted to take over user/pw from ZCL_ABAPGIT_DEFAULT_AUTH_INFO. I know this is not nice and it would be better to have ZCL_ABAPGIT_DEFAULT_AUTH_INFO in ZABAPGIT. Even the best solution would be to re-use ZCL_ABAPGIT_LOGIN_MANAGER, but I would recommend to refactor this in a new pull request later on...
* Fix abaplint identiation failure
Fix abaplint identiation failure
* Rest ZCL_ABAPGIT_PASSWORD_DIALOG
Rest ZCL_ABAPGIT_PASSWORD_DIALOG to prelimiary version.
To be changed in a different pull request....
* Add user exit for serialize_abap_clif_source
* Document CLIF serializer exit
* Add exit redirection for CLIF serializer
* Add link to example for CLIF serialization exit
* report name of xml file in case of format error
In case of an error in the XML file, for support reason I want to know which file causes the error. The file name is mentioned if the XML itself is corrupt or if there is an XML version mismatch.
This PR fixes issue #2619.
* fix abaplint issues
fix abaplint issues
Issue #2579: diff still shown after pull of ENHO hooks (implicit enhancements i.e. code added at start/end of existing methods, etc.)
Reason: if the author has created and deleted implicit enhancements in the original system, the numbering doesn't start from 1 (this is the numbering we can see for the statement ENHANCEMENT, for instance ENHANCEMENT 1. ... ENDENHANCEMENT.) When pulling in another system, the numbering will start from 1, so it will differ from the source. As this enhancement number is serialized by abapGit in the XML, it will detect a difference.
Correction: the method SERIALIZE of class ZCL_ABAPGIT_OBJECT_ENHO_HOOK is changed so that to not serialize the enhancement number.
Three issues are corrected:
- Enhancement events are not serialized at all, nor deserialized (missing feature).
- The codeof new enhancement methods (not the implicit enhancements of existing methods, the code for methods added) are serialized but not deserialized (incomplete feature).
- DIFF may also appear after pulling ENHO objects, concerning attributes (OTR text ID being different) and method parameters (author, date, etc.)
Corrections:
- Add serialization/deserialization of events in class ZCL_ABAPGIT_OBJECT_ENHO_CLIF
- Add deserialization of method implementations in class ZCL_ABAPGIT_OBJECT_ENHO_CLASS
- I havealso moved the existing method SERIALIZE_INCLUDES from ZCL_ABAPGIT_OBJECT_ENHO_CLIF to ZCL_ABAPGIT_OBJECT_ENHO_CLASS and created DESERIALIZE_INCLUDES in the latter class because method implementations exist only for classes, not for interfaces, so it should be done in "CLASS", not in "CLIF".
- DIFF criteria cleared in method SERIALIZE of class ZCL_ABAPGIT_OBJECT_ENHO_CLIF
#2498 Two unit tests in ZCL_ABAPGIT_GUI_PAGE_DIFF failing
It concerns two test methods which test zcl_abapgit_gui_page_diff%3D>get_patch_data. The parameter IV_PATCH is passed with an incorrect value.
This issue is due to commit 389512f690 on Feb 26, 2019
Correction of method get_patch_data_add:
- Before: |add_patch_zcl_test_git_add_p.clas.abap_19|
- After: |patch_line_add_zcl_test_git_add_p.clas.abap_0_19|
Correction of method get_patch_data_remove:
- Before: |remove_patch_ztest_patch.prog.abap_39|
- After: |patch_line_remove_ztest_patch.prog.abap_0_39|
* shortdump ZCL_ABAPGIT_ZLIB->Decompress #2483
Short dump ASSERTION_FAILED while pulling from a Git repository.
It's because of block type '00' (variable `lv_btype`) not handled at all.
00 is "non-compressed blocks", see https://www.ietf.org/rfc/rfc1951.txt section 3.2.4
The issue used to happen with Azure DevOps website, for "tree" objects (100644...) but not all tree objects.
Correction : algorithm added to handle non-compressed blocks. Test method added to complete the current test for blocks with fixed Huffman codes (01). Also one test method added for testing blocks with dynamic Huffman codes (10), test data taken from ZAZLIB.
* Lint code alignment issue
Short dump GETWA_NOT_ASSIGNED because of stupid copy/paste error in method SERIALIZE of ZCL_ABAPGIT_OBJECT_ENHO_CLIF:
LOOP AT lt_tab_types ASSIGNING <ls_type>.
CLEAR: <ls_attr>-author,
<ls_attr>-createdon,
<ls_attr>-changedby,
<ls_attr>-changedon.
ENDLOOP.
Replace all <ls_attr> with <ls_type>.
+ clearing of <ls_type>-descript_id (OTR text ID) so that the DIFF ignores this field (new OTR texts, with new IDs, are always created while pulling so the ID must not be compared).
* sfpf: make deserialization errors more verbose
Just to make debugging a little be easier.
* prog: make updating errors more verbose
For simpler debugging.
* Handle calls to repository URL on all pages
Call super class' for unhandled events in all classes displaying repository (identified from where-used list for zcl_abapgit_gui_chunk_lib%3D>render_repo_top).
I suppose it should be safe to add the 'super' call everywhere, but for now this will solve the bug.
* Revert "Merge branch 'unknown-action-url' into 'master'"
This reverts merge request !1
* Handle calls to repository URL on all pages
Call super class' for unhandled events in all classes displaying repository to handle URL click.
Relevant classes were identified by the where-used list for method render_repo_top in class zcl_abapgit_gui_chunk_lib.
I suppose it should be safe to add the 'super' call everywhere, but for now this will solve the bug.
* objects: add a method checking presence of a file
The method is called 'contains' because then you can write:
if mo_files->contains( iv_ext = 'abap' ) = abap_true.
In newer system, you can even leave out the suffix '= abap_true'.
I am not sure how to make the logic deciding how to the select
shared with the method read_file.
For future developers: if you change the type of raised exception of the
method read_file when the passed file is not found, you can stop using
the method contains and you can save some time in the cases where it is
highly unexpected that the file is missing. You could also remove the
method contains which will have the benefit of having one place with the
select statement.
* sfpf: save layout in solo XDP file
Manually tested pushing and pulling but it still might cause some
problems.
This commit adds a new file with the suffix XDP for every XFPF object.
The new file contains the form layout which can be edited in Adobe
LiveCycle Designer. During debugging I learned that we put layouts in
all supported languages to the serialized SFPF XML file but the new
layout file contains only the layout of the Form's language.
I am not sure if removing the layout data make sense because thelayout
object contains layout data for all supported languages and the call
set_layout_data changes only the form's language.
--- v2
Removed the statement:
li_fp_form->get_layout( )->set_layout_data( i_layout_data = conv #('') ).
Because it did not save any space in the SFPF XML file (because there
are layouts for other languages) and the statement instantly removes
the layout from caches and breaks forms.
--- v3
Added a check for the presence of the XDP file to make this change
backward compatible with already existing repositories where the XDP
file does not exist. Pointed out by Lars in the review.
In this version, I also "beautified" the code by a constant for the
layout file extension.
--- v4
Re-added the statement:
li_fp_form->get_layout( )->set_layout_data( i_layout_data = conv #('')
i_set_xliff_ids = abap_false ).
and added the re-cover layout data statement:
li_fp_form->get_layout( )->set_layout_data( i_layout_data = lv_layout_bck
i_set_xliff_ids = abap_false ).
The parameter i_set_xliff_ids is required by the layout type 'XFA'. It
is not possible to set layout data to an empty string without that
parameter, if you do, an exception is thrown.
The layout type 'XFA2' uses the parameter by default.
---
Closes#2554
* repo: do not validate sub-packages when ignored
In our landscape, we often need to version a package which has
sub-packages and those sub-packages have own repositories - the super
package provides framework and the sub-packages provides production
functionality.
When adding a new repository for these "framework" super-packages,
we need want to configure "Ignore sub-packages" because they are
already versioned in standalone repositories.
We also need to turn of the sub-package repo package check which is done
by this patch.
Dependency of #2395
* repo: allow creating with folder logic and ignore package
I need to enable users to add a new online repo with ignored
sub-packages and PREFIX folder logic because we often deal with
framework + implementations packages hierarchies.
Dependency of #2395
* repo: add folder logic and ign. sub.pkg to the new repo popup
This patch adds the parameters Folder logic and Ignore subpackages to
the new online repo popup to help us deal with old package which do not
follow the prefix approach for subpackages and to allow us to version
superpackages (which are shared by many developers) in separate
repositories.
I am not sure how to add a check-box to the popup window. I think I need
to find the right table with the righ column of the type char(1).
Closes#2395
* TABL: Simplify control flow
When this commit is applied the control flow in object serializer TABL
is eased. The idoc check returns now a boolean instead of raising an exception. Main purpose is to ease debugging due to reducing the use of
zcx_abapgit_exception%3D>raise.
* TABL: fill rv_deleted on early exit
I was approached by a colleague of mine who was not sure how to deal
with the message:
- 'Package $FOO_BAR already in use'
I thought it was caused by the fact that some super or sub-package was
already watched by abapgit but whenI found the message in source codes I
figured out that there is already a repo for that package.
This patch should make the message easier to understand, so the new
version is:
- 'Package $FOO_BAR already versioned as FOO by DEVELOPER'
move file_download to ui package, part of #2510
the zip class should ideally work without frontend interaction, and just provide/parse the raw xstrings, this way it can be reused across different frontend technologies
* Adding HTML new elements to BOverview Page
* Adding gitGraph CSS propertires
* Adding gitGraph scroller function
* Set gitGraph Scroller css width dynamically
* Initialize Top Horizontal Scroller on GitGraph
* Adding setGitGraphScroller() to BOverview HTML
* Fixed HTML wrong TAG
* Adding some comments
* Fixing abaplint messages
* Refactoring Indentation for Travis
* Refactoring for Travis
* Removing trailing spaces for Travis
* add method to determine if running in cloud
add new class and method to determine if abapGit is running on ABAP cloud/Steampunk systems, part of an effort to align codelines #2511
* fix naming
* add simple unit test
* Implement deserialize steps swap DDIC/ÁBAP order
* fix for wapa and abaplint
* bugfix in falback logic and type definition
* fixed constant usage
* fixed abaplint and constant usage
* focus only on design change of deserialze
* focus only on design change of deserialze
* Bugfix for CI because of changes of the order
* cleanup
* cleanup
* minor changes
* move types to IF
* Add serialization for APACK manifests
* Add documentation for APACK serialization
* APACK docs: Add more information about dependency format
* APACK: Some words about transporting ZIF_APACK_MANIFEST
* APACK: Move definitions in own interface
* APACK: Don't build the manifest file twice...
* font
* css fix and icon rendering
* assets and font link in html head
* more icons
* more css fixes
* replace icon names
* dev docs
* Fonts update
* icons rename
* doc update
* linter fixes
* fix for abapmerge
IWPR basic version #75
can later be extended with implementations of IS_LOCKED, JUMP, and CHANGED_BY
this uses the generic serializer via OBJH, like abapGit-Plugins
With this commit we fix the filename construction so that for
objects without file extension the correct filename is constructed.
Before this commit is applied these objects create file names with
an additional dot at the end.
* delete method GET_INSPECTION
delete method GET_INSPECTION, not called from anywhere
* delete class ZCL_ABAPGIT_ABAP_UNIT_TESTS
* delete class ZCL_ABAPGIT_SYNTAX_CHECK
* delete class ZCL_ABAPGIT_ADHOC_CODE_INSP
* move VARIANT to importing in RUN
instead of in the constructor
* one variable containing the name
instaed of 2 with same contents
* linting
With this commit a new user setting called 'disable octicons' is
introduced. Octicons should be disabled when the client doesn't have
internet access or the abapGit UI hangs sometimes.
By default this option isn't active.
With this commit we add an existence check the delete method
of ENHO serializer because some enhancements, like implicit source code
enhancements of classes, are deleted implicitly.
* ECATT: remove dynamic method calls
This commit introduces two new interfaces to remove dynamic method calls.
- ZIF_ABAPGIT_ECATT_DOWNLOAD
- ZIF_ABAPGIT_ECATT_UPLOAD
* ECATT: Rename method
Rename method z_set_stream_for_upload to set_stream_for_upload
as we now use our own interface and there's no risk that SAP
standard introduces a method with the same name
* delete method CHECK_PROG_CHANGED_SINCE
not in use anymore
* delete method ADD_XML_FROM_PLUGIN
looks like it is not used anywhere, also not in plugins
* naming conventions
* Changed default text in branch popup
* Downgrade to Abap 7.02 syntax
* Reduce line length of commit (for abaplint)
* Ignore files that are not in local repo
Ignore files that are not in local repo when doing transport to branch
* Changed line indent
* More indentation fixes
Function groups can use includes that were separately created as programs of type include. Those includes could be reusedin various other programs and function groups. They might even be created in a different package. This type of include is an object of it's own that get serialized with it's package as a separate object. Therefore it should not be included in serialization of any function group that uses it. This fix checks for which includes TADIR entries of type PROG exists and excludes them from serialization in FUGR serializer.
* SFPF, SFPI: Error by import (issue #2353)
The renumbering of the attributes "id" and "href" is reworked
* Pretty printer of the full class source
* indentation
allow changing remote and branch for write protected repos. In the old days changing remote and branch triggered a pull, this is decoupled, so there should be no changes to the local code when switching remote or branch
* add missing functions in plugin VCLS
* fix pretty print
* fix check usage for abaplint
* adjust detection of locks
* german type
* move fix to deserialize
* fix syntax for 7.02
* PINF: Improve error handling
This commit introduces a facade for IF_PACKAGE_INTERFACE which
unifies the exception handling from classic exceptions to
new class based exceptions. Thereby we ensure that all classic
exceptions are catched.
* fix lint errors
* interface for progress class
* adjust branch overview
* adjust git pack
* adjust diff page
* adjust objects class
* adjust activation class
* adjust repo online class
* adjust serialize class
few methods moved
* adjust tadir class
* fix dynpro set/get parameter
* Dynpro Generation - Flag SET-/GET_PARAM
* Update zif_abapgit_definitions.intf.abap
* Update zif_abapgit_definitions.intf.xml
* add byte order mark back
* rename local constant to LC_
* improve error handling of function modules
* fix abaplint errors
* refactor to hardcoded error strings
* refactor fm error handling to string templates
* removing msag class
* add IDoc Segement support as part of TABL
IDoc Segement type/definition is just customizing and has no own transport object but it generates a structure and is coupled to it
The segment type/definitions have their own XML at the TABL object
* fix abaplint errors
* move segment type/defintion to TABL xml
Ignored files posses the property that they do not exist in remotes but do exist in local
repositories.
Before this patch, local ignored files were displayed in the Stage.
* Sapscript : sequence of Windows in tdlines files
Hello Lars,
You can find a code modification in the method _read_form of class zcl_abapgit_object_form related to the issue #2188
I have added a logic to sort by windows name the contains of the internal table ET_LINES . It allows to have always thre same sequence of windows code in the file (xxxxxxxxxxgit.form.tdlines). Then file comparison will work with all export.
Regards
Christophe
* Sapscript : sequence of Windows in tdlines files
Hello Lars,
I have moved the code to a new private method _sort_tdlines_by_windows
But I don't add 'ASSERT sy-subrc = 0.'.
The reason is that during my tests I found some windows in the form without elements inside (windows is not used anymore but it sill exists. The devlopper ddin't remove it). In this case the result of the ASSERT is a dump.
Using the loop from SY-TABIX there is no risk. If no entry exists in the internal table then the loop is not executed.
if needed I can add the following condition before doing the loop :
IF line_exists( lt_lines[ tdformat = lv_elt_windows
tdline = ls_form_windows-tdwindow ] ).
Christophe
* Sapscript : sequence of Windows in tdlines files
I have done the adjustments for the CLEAR and to be compatible with 702
Christophe
* Sapscript : sequence of Windows in tdlines files
Whitespace at end of line removed
* Package names validations
validate if package has more than 30 characters name and if root packages does not contain a package with the same name as his.
* Validate grandchildren package names
Method determine_max_threads of class zcl_abapgit_serialize did not return a value, when function Z_ABAPGIT_SERIALIZE_PARALLEL is not available. This commit will fix this.
* parallel serialization #1714
* use latest abaplint
* Update abaplint.json
* add function group
* fallback to sequential
* fix error when running in background mode
* SUSC: delete in more direct way - no confirm popup
delete needs to be done with a code copy of FM SUSR_DELETE_OBJECT_CLASS
I really hate this but there is no other way
* SUSC: delete in more direct way - no confirm popup
* test
* test
* naming conventions
* PP
* Implement facade for Change Transport System
* Render lock item in VIEW_REPO
* Add jump to SE01
* Display transport on stage page
* Optimize transport read on stage page
* Error handling CTS
* Fix indentation
* Disable transport column for local packages
* Code review changes
This commit refactors the logic from zcl_abapgit_syntax_check to the new class zcl_abapgit_adhoc_code_insp. Which can be used to run arbitrary code inspections adhoc. zcl_abapgit_syntax_check delegates to zcl_abapgit_adhoc_code_insp.
Additionally the new class zcl_abapgit_abap_unit_tests is introduced to run ABAP unit tests for a particular package (hierarchy). It can be acessed via zcl_abapgit_factory%3D>get_abap_unit_tests.
This commit adds an indirection for function module GUI_IS_AVAILABLE
via interface ZIF_ABAPGIT_GUI_FUNCTIONS and factory ZCL_ABAPGIT_UI_FACTORY.
For tests the implementation can be replaced with
ZCL_ABAPGIT_UI_INJECTOR=>SET_GUI_FUNCTIONS
* mark inactive objects in repo list
Inactive object are marked in the repo list
The sort order for changed files is not changed
unchanged inactive files come right after the changed files
* move acitve check to object interface
* add is_active for objects up to F
* add is_active for objects up to P
* add is_active for objects up to T
* add is_active for objects up to X
all core object implement (except SSFO) the standard active check via FM RS_INACTIVE_OBJECTS_WARNING now
* add is_active to plugins bridge - always active
* finish object interface implementation + objects
* add is_active for offline with object interface
* rename returning to RV_
* use returning for serialize
* cleanup, PP, UT
* add code line attribute for leading spaces
Use attribute abapgit-leadig-spaces to store leading spaces of coding lines at serialization. This is used in deserialization to restoreformatting after XML normalization.
* add attribute also for global types and forms
* fix code formatting
Before this commit is applied the FIX_IDS methods was errorneous
and lead to subsequent dump. This commit fixes the algorithm to
replace IDs and IDREFs
* pretty print
* definitions to top of routine
* space before .
* omit parameter names where possible
* double space after if
* remove pseudo comments where possible
* clear PRESP and PWORK
clear username fields PRESP and PWORK
* remove unused FM exceptions
if sy-subrc is analysed (only <> 0) no detailed FM exceptions are needed, only OTHERS
* set PRESP and PWORK on deserialization
PRESP and PWORK is not set to SY-UNAME by default so set it explicitly
* Object Type UDMO Data Model #1905
Support for Object Type UDMO Data Model #1905
* Object Type UDMO Data Model #1905
* Object Type UDMO Data Model #1905
* Object Type UDMO Data Model #1905 Bad formatting correction
* Object Type UDMO Data Model #1905 Bad formatting
* Object Type UDMO Data Model #1905 Reformulation
* Update package.json
* pretty print
Before this commit is applied DDLX source code was recorded
in the xml file. We changed this so that now a separte .asddls
file is created. The change is downward compatible. Previously
recorded DDLX objects will show a diff the next time and the new
.asddls file has to be committed.
* add smart response checks for ref discovery
Added content-type check and content regex check for reference discovery
see https://github.com/schacon/igithub/blob/master/http-protocol.txt
* move ref check constants to TRANSPORT class
the check constants - content regex and responce Content-Type - don't have to be global right now so moved from zif_abapgit_definitionsto zcl_abapgit_git_transport
* PP and activate
* removed popup saving msag
* fixed capitalization
* refactored with variable prefixes
* refactored exceptions and split methods
also removed S messages.
Previous code was mostly copy %26 paste of the original
* Cleaned up
* more cleanup
* enable ADT jump from CI result
* enable ADT jump from CI result for all objects
* cleanup + PP
* cleanup + PP + save/activate in ADT
* remove commented code
git patch, added to staging page
serialize all longtexts
ENQU clear redundant fields
suppress SHMA package popup
branch overview sorted by parent instead of time
handle error from RS_CUA_INTERNAL_FETCH
fix problem with branch list from bitbucket.org
allow empty blobs
* Staging smaller chunks of code like git add -p
With this commit a new feature which works similar to git add -p
is added. We are now able to patch, which means that we can
commit on line basis. And are not restricted anymore to commit
only on file basis.
* move get_page_patch to stage page
* Refactor JS
* Refactor JS
* objects: use a different constant for 'R3TR'
The constant rs_c_pgmid_r3tr comes from the package RS which is not
available in pure BASIS systems.
The constant seok_pgmid_r3tr comes from the package SEOK and abapGit is
already using another constants from this package - seok_access_*.
Related to #1826
* objects: replace rs_c_true with abap_true
The constant rs_c_true comes from the package RS which is no available
in pure BASIS systems.
I believe that the constant rs_c_true was used by mistake.
The constant was assigned to a variable which is of the type abap_bool
and the variable is initialized with abap_false.
Related to #1826
With this commit the hotkey 'd' for diff always shows the
global diff. Previously only the last file diff was shown.
We changed the implementation so that the first matched href
specified by the hotkey is called.
This commit adds three new methods to ZCL_ABAPGIT_OBJECTS_SUPER:
- SERIALIZE_LONGTEXTS
- DESERIALIZE_LONGTEXTS
- DELETE_LONGTEXTS
They can be called on demand in concrete object type serializers.
In this commit they were called from DTEL, DOMA and TABL
* Insert initial line before bothsequence and action
* Change settings boolean read to support Java GUI
Standard netweaver and Java GUI netweaver parse differently the checkboxes on HTML pages. This commit consider the value on the checkbox aseither "on" or "X".
With this commit we are able to define global hotkeys. Which means
that the hotkey is active on all pages. The global hotkeys are
defined in ZCL_ABAPGIT_GUI_PAGE=>GET_HOTKEY_ACTIONS. The first
globally defined hotkey is the hotkey overview with the default
hotkey '?' assigned to it. This was previously hard coded in the js.
* Introduce customizable hotkeys
With this commit customizable hotkeys are introduced. They can
be defined in the user specific settings. Currently we support
only one letter keybindigs e.g. 's', 't' or 'x' and no modifiers.
Every page in the UI can decide which actions it offers for the
hotkeys. Therefore we introduce the interface ZIF_ABAPGIT_GUI_PAGE_HOTKEY
with the method GET_HOTKEY_ACTIONS. At this point in time only
the main page offers actions for hotkeys, but the mechanism works
already for all pages. New actions for hotkeys can be defined
easily.
Hotkeys are only available for installed abapGit repositories.
Because we need to detect the classes which implement the above
mentioned interface and it seems that there is no easy way to do
that for local classes. Maybe we can add it later when we know more.
We don't supply default key bindings. So it is totally up to the
user to define them.
* provide default hotkeys
Refactoring
Downport
Descriptions in new online popup
Optimized git object handling
SSST package popup fixed
PARA popup fixed
Package validations
Diff still shows after pushing
TABL field ROWORCOLST cleared
Staging page optimizations
Correct CUA if needed during pull
* correct xml errors of CUA interfaces
Issue error RS_CUA_INTERNAL_WRITE while pulling an old abapgit repository #1807. Same issue as #562 (error RS_CUA_INTERNAL_WRITE) which is solved by correcting manually the XML of the CUA interfaces (fastidious), or by regenerating the XML (but unfortunately sometimes the abapGit repository is from someone else).
Automatically fix this before RS_CUA_INTERNAL_WRITE is called. It's useless having this as a configuration option.
* refactor: extract code to a new method
* Better refactoring of auto correction CUA
When we try to add a new online repository and we have a repository
whose package does not exist in abapGit we get a short dump caused
by assert in the method zif_abapgit_sap_package~read_parent of
the class zcl_abapgit_sap_pacakge.
This commit makes sure we skip such repositories because we believe it
does not make sense to prevent us from cloning in these cases.
Thank you Petr Benes <petr.benes@sap.com>!