- 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>
* Repo overview - cosmetic changes
* extract logic to method
* Update src/ui/zcl_abapgit_gui_page_repo_over.clas.abap
Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>
* fix if in if
* unshorten remote, move package, improve wrapping
* Add max width for columns
* Mostly working now
* add prefixes
* Remove checkbox, move package where it was
* Keyboard navigation
< > to navigate in list (arrow keys don't seem to trigger), enter to open selected
* Ellipsis for repo url, use css variable
* Fix css, js persistence
* Fix invalid function name
* add back !important to override hover color
* abaplint
* Don't use const in js
* more eslint
* Remove unused field symbol
* eslint
* Bring back repo lock icon, styling improvements
Co-authored-by: Marc Bernard <59966492+mbtools@users.noreply.github.com>
* Focus HTML control on abapGit startup
`cl_gui_control=>set_focus` must be called during PBO. Maybe there's a nicer way to pass the HTML control to the PBO.
* Move to output form
* Set focus
* Add autofocus
* Offline repo: "Import via RFC" feature
Adds option to **offline** repositories for importing a repo via an RFC connection from another SAP system. It's a shortcut for doing "Export ZIP" in one system, and "Import ZIP" in the other.
Closes#4784
Pre-requisite: abapGit develop version (with this change) is installed on remote SAP system.
Note: The general recommendation is to use **online** repositories and a git server for comparing and synchronizing systems.
* Lint
* Create guide-import-rfc.md
* Langu
* Langu
* Write-protect only
* Compare
* Compare
* Compare
* Compare
* Git
* Update docs/guide-import-rfc.md
Co-authored-by: Lars Hvam <larshp@hotmail.com>
Co-authored-by: Lars Hvam <larshp@hotmail.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>
For local packages, the application component is now stored in AG persistence. This will avoid the diff, if transportable packages are pulled into local packages.
Closes#1880
* Fix menu hover background
In default theme, the background color when hovering over menu items was bearly visible in HTML GUI and not visible at all in Win GUI.
The fix explicitly set the background color so both GUIs look the same.
* Keep subitem highlight
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>
- Differentiate between Developer and Standalone versions
- Add link to contribution guidelines
- Add listing of user exits with implementation status (based on include for standalone, class for developer version)
- Add feature to save debug info output as HTML page which can be used for attaching to Github issues
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>
Combines `zcl_abapgit_file_status=>identify_object` and `zcl_abapgit_object_files=>filename` into new class `zcl_abapgit_filename_logic`. This class provides `file_to_object` and `object_to_file` conversion logic similar to what `zcl_abapgit_folder_logic` does for packages and git folders.
Also includes unit tests which were missing for the old methods.
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
* Improve reuse of HTML viewer
Adding optional parameters to allow reuse of HTML viewer in subscreens and allow testing of query parameter table (potential replacement of `zcl_abapgit_html_action_util=>parse...`).
* Lint
Co-authored-by: Lars Hvam <larshp@hotmail.com>