Commit Graph

148 Commits

Author SHA1 Message Date
Marc Bernard
dd85924244
Properly ignore files during deserialize (#5427)
* 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>
2022-04-26 16:52:19 +02:00
Alexander Tsybulsky
2cc3f53fc5
Rework checksums (#5328) 2022-04-13 11:29:23 +02:00
buca92
4d503876a2
Several methods moved from zcl_abapgit_repo to zif_abapgit_repo (#5466) 2022-04-11 13:36:38 +02:00
Marc Bernard
9d9b4327ad
Avoid logon when comparing with remote (#5458)
"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>
2022-04-08 17:00:54 +02:00
Marc Bernard
30371b9a8f
Check if package name is allowed (#5416)
* 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>
2022-03-31 14:57:48 +02:00
Marc Bernard
f712eb17a5
Folder logic "mixed" (#5413)
* 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>
2022-03-31 13:35:34 +02:00
Alexander Tsybulsky
91cd4c3653
Separate zif_abapgit_repo (#5329)
* zif_repo basis

* all but zcl_abapgit_repo_srv

* fix zcl_abapgit_repo_srv

* remove create_new_log from interface

* "hack" -> "TODO"

Co-authored-by: Lars Hvam <larshp@hotmail.com>
2022-02-19 09:22:46 +01:00
Marc Bernard
5086b7226d
Add refresh after pull errors (#5312)
* Add refresh after pull errors

Follow-up #5303

* Indent
2022-02-01 16:41:58 +01:00
Marc Bernard
e3fc3e57d6
Branch is optional when creating online repo (#5299) 2022-01-30 14:11:49 -05:00
Frank Müller
c932426b44
Pre Filter Backend and GUI Logic (#5227)
* 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>
2022-01-25 10:00:09 +01:00
Alexander Tsybulsky
cb90be9ce7
Fix lost remote on favorite refresh (#5277)
* Fix reinstantiation on fav_refresh

* rename list_favorites to list_by_keys

* linter fix
2022-01-20 12:05:54 +01:00
Lars Hvam
1387128719
unit testing updates (#5246)
* unit testing updates

* fix

* split unit test method, ZCL_ABAPGIT_HTML_FORM_UTIL

* run is_empty

* type changes

* update notes

* update

* upd

* update notes

* run check_author_regex

* run parse_commits

* update notes

* add notes

* update

* run extract_author_data1

* run extract_author_data2

* run extract_author_data9

* update notes
2022-01-06 08:14:43 +01:00
Frank Müller
b67c06dc2d
Pre Filter Backend Logic (#5226)
* 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>
2022-01-04 07:35:57 +01:00
Marc Bernard
c7e4af3be2
Add user exit for serialize postprocessing (#5194)
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>
2021-12-11 07:30:50 +01:00
Marc Bernard
b46c8b4599
Refactor: Consolidate front-end classes (#5172)
* 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>
2021-12-09 06:49:43 +01:00
Christian Günter
500d7eeb9f
hotkeys for form actions (#5133) 2021-11-14 14:55:38 +01:00
Christian Günter
53343a98d6
Files: Introduce secondary keys (#5101)
Co-authored-by: Lars Hvam <larshp@hotmail.com>
2021-11-05 05:32:39 +01:00
Marc Bernard
45806c5a95
Refactor serializer class (#4994)
* Refactor serializer class

- Consolidate i18n parameters
- Move determination of translation languages into serializer class
- Pass translation language setting when parallel processing (was a bug)

* Lint

* Add unit tests

Co-authored-by: Lars Hvam <larshp@hotmail.com>
2021-10-25 16:01:40 +02:00
Alexander Tsybulsky
65701dbcc8
pull on package reassign (#4999)
Co-authored-by: Marc Bernard <59966492+mbtools@users.noreply.github.com>
Co-authored-by: Lars Hvam <larshp@hotmail.com>
2021-10-13 06:12:19 +02:00
Lars Hvam
93d14fcc81
repo content list: keep last changed_by in memory (#5019)
#5016
2021-10-06 15:36:51 +02:00
Frederik Hudák
00934cfdaf
Only show favorites on startup (#4997)
* Only load favorites on startup

* downport

* Escape sql

* Fix select, refactoring

* Fix parameter name

* Refactoring

* Update src/repo/zcl_abapgit_repo_srv.clas.abap

Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>

* Update src/repo/zcl_abapgit_repo_srv.clas.abap

Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>

* Update src/repo/zcl_abapgit_repo_srv.clas.abap

Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>

* indent

* remove me

* Add type column to select

* lint

* Add info message at the bottom of the list

Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>
Co-authored-by: Lars Hvam <larshp@hotmail.com>
2021-10-06 08:04:09 +02:00
Marc Bernard
b331de6bc7
Naming of class constants (#4945)
* 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>
2021-09-14 16:47:48 +02:00
Lars Hvam
2bdb06519c
check exists() before changed_by() (#4925)
Co-authored-by: Christian Günter <christianguenter@googlemail.com>
2021-08-31 07:29:10 +02:00
Lars Hvam
54036c11dd
workaround changed_by (#4924)
* workaround changed_by

* ugh
2021-08-30 10:46:19 +02:00
Jacek W
5f6b5a73c8
Add "Last changed by" to repo page (#4920)
* 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>
2021-08-30 07:26:02 +02:00
Lars Hvam
329fd9dc0e
interface and factory for ZCL_ABAPGIT_PERSIST_SETTINGS (#4882)
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
2021-08-03 15:13:16 +02:00
Lars Hvam
e075b951a4
align use of unescape_url() (#4878) 2021-07-29 16:49:38 +02:00
Marc Bernard
6ff7074aec
Auto creation of package during new online (#4814)
* Auto creation of package during new online 

If you create a new online repository and the repo does not contain any SAP package, then abapGit will prompt you for the package attributes and create the package for you. This is, for example, the case when you use an newly created online repo as a starting point. 

If the repo does contain a package, then the package will be created automatically when you pull from the repo (as described in [docs](https://docs.abapgit.org/ref-packages.html)).

Closes #4538

* Update docs

Co-authored-by: Lars Hvam <larshp@hotmail.com>
Co-authored-by: Christian Günter <christianguenter@googlemail.com>
2021-07-09 15:28:55 +02:00
Marc Bernard
ad244abacd
Terminology: Inclusive Language - Part 6 (#4791)
* 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>
2021-05-28 13:15:00 +02:00
Christian Günter
f97320f1dc
Create branch: Add existence check (#4794)
Co-authored-by: Lars Hvam <larshp@hotmail.com>
2021-05-28 06:09:27 +02:00
Marc Bernard
c2e9e58319
Enhance "Force Pull" to become "Selective Pull" (#4733)
* 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>
2021-05-20 06:19:00 +02:00
Marc Bernard
d47c72f429
Remote Settings: Toolbar icon & clean-up (#4724)
* Remote Settings: Clean-up

Continue #4718

- Branch > Switch to PR: removed
- Advanced > Checkout commit: removed
- Advanced > Make Offline / Online: removed menu items and popups
- Advanced > Change Remote: removed menu item and page

* Remove ty_popups

* Remove checkout_commit

* Remove repo_view switch_to_pr

* Remove get_switched

* Add "Edit" icon also for offline

Co-authored-by: Lars Hvam <larshp@hotmail.com>
2021-04-27 19:03:06 +02:00
Marc Bernard
a225e05950
New "Remote" tab in repo settings (#4705)
* 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>
2021-04-25 09:59:00 +02:00
Marc Bernard
f18a8ee82b
Terminology: Inclusive Language - Part 5 (#4702)
* 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
2021-04-15 08:32:09 +02:00
Marc Bernard
1104c88e48
Data deserialize (#4654)
* Data deserialize

Continuing on #3441 

- Fixes issue with namespaced tables 
- Adds deserialize of table content during pull but does NOT persist changes to database

`zcl_abapgit_repo->deserialize` now contains the following call to deserialize "data":

```abap
    zcl_abapgit_data_factory=>get_deserializer( )->deserialize(
      ii_config  = get_data_config( )
      it_files   = get_files_remote( )
      iv_persist = abap_false ). "<<no persisting, just test for now
```

Closes #4650

* Fixes and max record check

* Get result preview

* Split deser/actualize

Co-authored-by: Lars Hvam <larshp@hotmail.com>
2021-03-23 06:40:09 +01:00
yellappam
0f2020b5c1
Unsupported object count in repo statistics (#4601)
* Add unsupported object count in repo statistics

* lint fix: Keep single parameter on one line

* Fix indentation

* Undo changes to TADIR and DEFINITIONS

Undo changes to ZCL_ABAPGIT_TADIR and ZIF_ABAPGIT_DEFINITIONS

* Refactor code

Co-authored-by: Lars Hvam <larshp@hotmail.com>
2021-03-09 12:13:10 +01:00
Alexander Tsybulsky
3df4863feb
LXE langs refactoring (#4494)
* main refactoring part

* linter fix

Co-authored-by: Lars Hvam <larshp@hotmail.com>
2021-03-01 07:02:04 +01:00
Frederik Hudák
add83f5b94
Repo overview performance improvements (#4541)
* Repo overview performance improvements

* Rework map_repo_list_to_overview

* Reduce usages of get_key

* Fix inline data

* Don't load package descriptions in repo overview

the select is expensive

* suppress titles for non-favorite repositories

* lint

* Update src/ui/zcl_abapgit_gui_page_repo_over.clas.abap

Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>

* optimize render_repo_palette

* Optimize gui_router

* Update zcl_abapgit_gui_page_repo_over.clas.abap

* Update zcl_abapgit_migrations.clas.abap

* remove unused variable

Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>
Co-authored-by: Lars Hvam <larshp@hotmail.com>
2021-02-21 11:29:01 +01:00
Marc Bernard
8c9bca3a4f
Fix display of log after uninstall (#4490)
The uninstall log was dropped too early during refresh of repo. Now it's passed properly to the UI.

Co-authored-by: Lars Hvam <larshp@hotmail.com>
2021-02-09 07:37:04 +01:00
JustACasual
bcbc3d527d
I18N: LXE Translations (#4415)
* Issue 2424

https://github.com/abapGit/abapGit/issues/2424

* Issue 2424

https://github.com/abapGit/abapGit/issues/2424

* Update src/objects/zcl_abapgit_object_fugr.clas.abap

Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>

* Fixing LINT issues

* Fixing LINT issues

* TABL, default ROWORCOLST on deserialize (#4430) (#4)

* Fix for #4425

* Remove whitespace at end of line

Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>

* Remove whitespace at end of line

Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>

Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>

Co-authored-by: DerGuteWolf <DerGuteWolf@users.noreply.github.com>
Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>

* Centralize LXE functionality

* Fix FUGR LXE

* delete issue reference comments

* Delete issue reference comments

* Remove Aliases for LXE types

* Review Changes

* Copy from #4452

Integrate changes from #4452 into #4415

Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>
Co-authored-by: Lars Hvam <larshp@hotmail.com>
Co-authored-by: DerGuteWolf <DerGuteWolf@users.noreply.github.com>
Co-authored-by: Sebastian Koitka <sebastian.koitka@dematic.com>
Co-authored-by: Marc Bernard <marc@marcbernardtools.com>
Co-authored-by: Marc Bernard <59966492+mbtools@users.noreply.github.com>
2021-01-31 10:36:28 +01:00
Marc Bernard
40efc567f6
Automatic creation of top repository package (#4431)
* Automatic creation of top repository package

When adding a repository, it is not necessary anymore that the top SAP package assigned to the repository exists. Just enter a package name and clone (works for offline, too). 

The initial diff will now show that the top package exists remotely only. Therefore, when pulling, you will not get the "confirm overwrite package" popup anymore. Yippie!

* Typo

Co-authored-by: Lars Hvam <larshp@hotmail.com>
2021-01-23 10:11:54 +01:00
Alexander Tsybulsky
47dae10ab0
I18n settings (#4416)
* dot abapGit i18n_langs

* rewrite dot abapgit (better design)

* settings

* linter fix

* review fixes

Co-authored-by: Lars Hvam <larshp@hotmail.com>
2021-01-18 09:32:55 +01:00
Lars Hvam
db6db7cf79
remove more unused variables (#4413) 2021-01-15 17:22:51 +01:00
Lars Hvam
889d062e1c
data, basic serialization (#4369)
* data

* refactor ZCL_ABAPGIT_SERIALIZE

* upd

* serializing

* cleanup

* fix

* fix

* rename
2021-01-09 10:50:58 +01:00
Marc Bernard
9f91e4f3ad
Move method is_sap_object_allowed (#4385)
Closes https://github.com/abapGit/abapGit/issues/4382

Co-authored-by: Lars Hvam <larshp@hotmail.com>
2021-01-08 12:06:06 +01:00
Lars Hvam
8b506aa077
omit some default parameter names (#4370)
* apack, omit parameter names

* mass and objects

* omit

* omit
2021-01-04 10:41:20 +01:00
Lars Hvam
4f95be22ad
REPO changes (#4361)
* method ZCL_ABAPGIT_REPO->FIND_REMOTE_DOT_APACK changed to private
* method ZCL_ABAPGIT_REPO->RESET_LOG deleted

#2127
2021-01-02 09:02:52 +01:00
Marc Bernard
98ecc1a51c
Package Structure - Part 5 (#4360)
* Package Structure - Part 5

Final part of package structure reorg. Moving repo related classes and interfaces.

$ABAPGIT_REPO:

ZCL_ABAPGIT_DOT_ABAPGIT
ZCL_ABAPGIT_REPO
ZCL_ABAPGIT_REPO_CONTENT_LIST
ZCL_ABAPGIT_REPO_FILTER
ZCL_ABAPGIT_REPO_OFFLINE
ZCL_ABAPGIT_REPO_ONLINE
ZCL_ABAPGIT_REPO_SRV
ZIF_ABAPGIT_DOT_ABAPGIT
ZIF_ABAPGIT_REPO_LISTENER
ZIF_ABAPGIT_REPO_ONLINE
ZIF_ABAPGIT_REPO_SRV

Closes https://github.com/abapGit/abapGit/issues/4253

* Remove delta

* Remove delta

* Remove delta

Co-authored-by: Lars Hvam <larshp@hotmail.com>
2020-12-29 11:34:29 +01:00