* Fix "Unexpected package naming" error
Previously, when an object existed in the repo and locally but was *not* included in the package hierarchy of the repository, you would get the following error (when opening the repo):
...
With this PR, log messages will list all objects that are not included in the package hierarchy. When pulling, the popup will show these objects and ask for confirmation to overwrite. I added an icon and description to the "package overwrite" popup similar to the "object selection" popup.
Closes#5728
* Update unit tests
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* improvements in abapgit_html
* linter fix
* repo over code styling
* repo overview refactoring part 1
* move universal cod to chunks
* cleanup new code temporarily
* more clean ups
* ui_component register_hotkeys helper
* move relevant hotkeys to repo overview
* forgotten part
* move event handling to repo over
* reuse td
* move render_repo_url to chunks
* minor
* linter fix
* new > create
Co-authored-by: Lars Hvam <larshp@hotmail.com>
Co-authored-by: Marc Bernard <59966492+mbtools@users.noreply.github.com>
* improvements in abapgit_html
* linter fix
* Try to workaround transpiler bug
* exclude uts from transpiler
* new -> create
Co-authored-by: Marc Bernard <59966492+mbtools@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>
* fixed "Add via Transport" short keys
* replace trobj_name with TYPE C LENTH 120
* Pretty Printer (VALUE uppercase)
* add skip
* add skip
* removed pretty printer comments
* running
* Replace with dtel
Works should SAP change the max key length
* Replace dtel
For abaplint
Co-authored-by: Lars Hvam <larshp@hotmail.com>
Co-authored-by: Marc Bernard <59966492+mbtools@users.noreply.github.com>
* 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>
* Refactor: Create Tag
Replaces the old style page with a nice HTML form for creating a new tag.
* Update validation
* Allow empty comment and tagger
Co-authored-by: Lars Hvam <larshp@hotmail.com>
Package is now required for CLAS deletion for RS_CORR_INSERT but was not correctly determined for object deletions because of different field names when using MOVE-CORRESPONDING and another missing assignment.
Co-authored-by: Marc Bernard <59966492+mbtools@users.noreply.github.com>
* Refactor: Commit list popup
- Move popup for selecting a commit to `zcl_abapgit_popup`
- Allow to skip sorting of commits in `zcl_abapgit_git_commit` which often led to "too many commits" error (on GitHub you get the 300 most recent commits)
Popup will be used in `zcl_abapgit_gui_page_sett_remo` and `zcl_abapgit_gui_page_tags` (separate PR)
* Fix test classes
* Replace popup in remote settings
* Remove type
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>
* Fix commit message encoding
- Properly encode % and & symbols
- Add unit test for special characters
Closes https://github.com/abapGit/abapGit/issues/2448
* Exclude testclass
* Comment
* update to 2.0.17
* update to 2.0.18
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>
* 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>
* 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>
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>
* 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>
- 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>
* 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>
* 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>
* 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>
* 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>
* 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>
* 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
* UI: Sticky Top
With this change, the top bar will become sticky. Meaning, it remains on the top of the page when scrolling down.
It's CSS + JS since IE does not support the "sticky" CSS feature.
There's a bit of a "wiggle" when scrolling begins and alignment is not the best on the diff page (which has full width). Maybe some of you CSS wizards can figure these things out.
Closes#5035
* Upload with LF + UTF8
* Remove todo
- already includes changes of 5083
Co-authored-by: Christian Günter <christianguenter@googlemail.com>
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* wip, unit testing
* refactor popup
* update abaplint
* transpile additional classes
* all data classes
* all git
* update
* fix
* change type
* all gui
* all http
* ZCL_ABAPGIT_USER_RECORD
* all zlib
* all exceptions
* all xml
* all html
* all html zif
* all gui zif
* all xml zif
* all repo zif
* more generic
* star
* zif_abapgit_longtexts
* sort
* zcl_abapgit_news
* zcl_abapgit_adt_link
* ZCL_ABAPGIT_DIFF
* more
* add zcl_abapgit_services_git
* Commit Page: Repo Header and Summary
- Added repo header back
- Changed summary as suggested by @sbcgua
- Adjusted display of details accordingly
* Remove var
* Revert color on details
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* New hotkeys for remote settings page
* Enable hotkeys for non-input fields
* Prioritize link hint activation key over hotkey
* cleanup
* resolve 2
* resolve 3
Co-authored-by: Marc Bernard <59966492+mbtools@users.noreply.github.com>
* Diff and Patch Pages Update
- Fix refresh of a single file on diff page (it was displaying all diffs afterwards)
- Add some hotkey assignments
- Replace "Refresh" after filename with icon
normal:
hover:
* Local refresh on patch page
* Update zcl_abapgit_gui_page_patch.clas.abap
* Patch page: Add js for refresh all hotkey
Co-authored-by: Christian Günter <christianguenter@googlemail.com>
* Commit Page Update
Here's the redesigned commit page moving to the HTML forms you know form other dialogs (goes together with #5047 for best look).
New features:
- check of mandatory entries
- validation of email address format
- link to docs (t.b..d.)
- summary of changes on top, list of changed filed on bottom
- placeholder for body
Closes#5029
* rm > remove
* Create guide-stage-commit.md
* Add files via upload
* Update guide-stage-commit.md
* Delete commit_done.png
* Add files via upload
* Update guide-moving-package.md
* Add files via upload
* Add files via upload
* Update zcl_abapgit_gui_page_patch.clas.xml
* Update zcl_abapgit_gui_page_stage.clas.xml
* Update zcl_abapgit_gui_page_merge.clas.xml
* Update zcl_abapgit_gui_page_commit.clas.xml
* Update zcl_abapgit_gui_page_code_insp.clas.xml
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* CSS adjustments
I made a few small CSS adjustments to make things a bit more consistent
- Repo overview: Adjust hightlight for current row
- Repo: Add background color to table header to match staging
- Repo: Fix hightlight for current row
- Staging: Slight color and table border adjustments
- Forms: Slight color adjustments for textarea placeholder
- DB Utility: Add hightlight for current row
* Update to dark theme
Co-authored-by: Lars Hvam <larshp@hotmail.com>
This measures the time it takes in the backend to prepare the HTML page. Result is shown when hovering over abapGit logo in the page footer.
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Diff-page: Enable refresh functions
* cleanup
* Diff: add refresh local hotkey
* Rename 'Refresh' to 'Refresh All'
Co-authored-by: Alexander Tsybulsky <sbcgua@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: Frederik Hudák <frederik.hudak@sap.com>
* sci result at stage and commit pages
* improvements
Co-authored-by: Lars Hvam <larshp@hotmail.com>
Co-authored-by: Christian Günter <christianguenter@googlemail.com>
* Fix dump during "New Online"
I accidentally used a copied link `sapevent:url?url=https://github.com/abapGit-tests/TABL` into the "New Online" diaplog. AG would dump in this case.
Now you get a proper error message.
* Strip leading/trailing spaces for URLs
* Add
* Update
Co-authored-by: Lars Hvam <larshp@hotmail.com>
Co-authored-by: g-back <27279305+g-back@users.noreply.github.com>
- Removed "class analysis logic" from hotkey collection
- Hotkeys are now registered directly in the hotkey controller (similar to asset manager)
- `zif_abapgit_hotkeys->get_hotkey_actions` was changed to instance method and can therefore be redefined in subclasses
- Renamed the controller class to match the interface name
Co-authored-by: Christian Günter <christianguenter@googlemail.com>
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>
SAP GUI for Java 7.70 has trailing null values in postdata (if data >256 characters). This is a bug that SAP will have to fix.
As a workaround, abapGit will strip the trailing null values. The workaround shall be removed 2022-12-31 latest.
Closes#4832
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Add icon link for changing remote repo on the list
Proposition for #4737
* Add icon link for changing remote repo on the list
- corrections for PR #4907
- fixed syntax
* Update zcl_abapgit_gui_page_repo_over.clas.abap
Co-authored-by: Lars Hvam <larshp@hotmail.com>
Co-authored-by: Marc Bernard <59966492+mbtools@users.noreply.github.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
* Dialogs: Set autofocus on first form element
Improves usability.
Closes#4816
* Autofocus for commit page
- Works in case JS is not an option
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Add more shortcuts for main page
* Update zabapgit_css_common.w3mi.data.css
* Update zcl_abapgit_gui_router.clas.abap
* Change keyboard shortcuts
* fix js
* fix js
* deindent
* indentation
* one more
Co-authored-by: Lars Hvam <larshp@hotmail.com>
Co-authored-by: Marc Bernard <59966492+mbtools@users.noreply.github.com>