mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 04:08:27 +08:00
isolate page to new include, #272
This commit is contained in:
parent
0edcd91f91
commit
a4c3d8e083
|
@ -65,6 +65,8 @@ INCLUDE zabapgit_object.
|
|||
INCLUDE zabapgit_repo_impl.
|
||||
INCLUDE zabapgit_background.
|
||||
INCLUDE zabapgit_zip.
|
||||
INCLUDE zabapgit_page.
|
||||
INCLUDE zabapgit_page_branch_overview.
|
||||
INCLUDE zabapgit_gui.
|
||||
INCLUDE zabapgit_app_impl.
|
||||
INCLUDE zabapgit_unit_test.
|
||||
|
|
|
@ -2,29 +2,6 @@
|
|||
*& Include ZABAPGIT_GUI
|
||||
*&---------------------------------------------------------------------*
|
||||
|
||||
*----------------------------------------------------------------------*
|
||||
* INTERFACE lif_gui_page DEFINITION
|
||||
*----------------------------------------------------------------------*
|
||||
INTERFACE lif_gui_page.
|
||||
|
||||
METHODS on_event
|
||||
IMPORTING iv_action TYPE clike
|
||||
iv_frame TYPE clike
|
||||
iv_getdata TYPE clike
|
||||
it_postdata TYPE cnht_post_data_tab
|
||||
it_query_table TYPE cnht_query_table
|
||||
RETURNING VALUE(rv_state) TYPE i
|
||||
RAISING lcx_exception.
|
||||
|
||||
METHODS render
|
||||
RETURNING VALUE(ro_html) TYPE REF TO lcl_html_helper
|
||||
RAISING lcx_exception.
|
||||
|
||||
METHODS get_assets
|
||||
RETURNING VALUE(rt_assets) TYPE tt_web_assets.
|
||||
|
||||
ENDINTERFACE.
|
||||
|
||||
*----------------------------------------------------------------------*
|
||||
* CLASS lcl_gui_router DEFINITION
|
||||
*----------------------------------------------------------------------*
|
||||
|
@ -417,409 +394,6 @@ CLASS lcl_gui IMPLEMENTATION.
|
|||
|
||||
ENDCLASS. "lcl_gui IMPLEMENTATION
|
||||
|
||||
CLASS lcl_gui_page_super DEFINITION ABSTRACT.
|
||||
PUBLIC SECTION.
|
||||
INTERFACES lif_gui_page ABSTRACT METHODS render.
|
||||
|
||||
PROTECTED SECTION.
|
||||
METHODS header
|
||||
IMPORTING io_include_style TYPE REF TO lcl_html_helper OPTIONAL
|
||||
RETURNING VALUE(ro_html) TYPE REF TO lcl_html_helper.
|
||||
|
||||
METHODS footer
|
||||
IMPORTING io_include_script TYPE REF TO lcl_html_helper OPTIONAL
|
||||
RETURNING VALUE(ro_html) TYPE REF TO lcl_html_helper.
|
||||
|
||||
METHODS title
|
||||
IMPORTING iv_title TYPE string
|
||||
io_menu TYPE REF TO lcl_html_toolbar OPTIONAL
|
||||
RETURNING VALUE(ro_html) TYPE REF TO lcl_html_helper.
|
||||
|
||||
METHODS redirect
|
||||
IMPORTING iv_url TYPE string
|
||||
RETURNING VALUE(ro_html) TYPE REF TO lcl_html_helper.
|
||||
|
||||
PRIVATE SECTION.
|
||||
METHODS styles RETURNING VALUE(ro_html) TYPE REF TO lcl_html_helper.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
CLASS lcl_gui_page_super IMPLEMENTATION.
|
||||
|
||||
METHOD header.
|
||||
|
||||
CREATE OBJECT ro_html.
|
||||
|
||||
ro_html->add( '<!DOCTYPE html>' ). "#EC NOTEXT
|
||||
ro_html->add( '<html>' ). "#EC NOTEXT
|
||||
ro_html->add( '<head>' ). "#EC NOTEXT
|
||||
ro_html->add( '<title>abapGit</title>' ). "#EC NOTEXT
|
||||
ro_html->add( styles( ) ).
|
||||
|
||||
IF io_include_style IS BOUND.
|
||||
ro_html->add( '<style type="text/css">' ). "#EC NOTEXT
|
||||
ro_html->add( io_include_style ).
|
||||
ro_html->add( '</style>' ). "#EC NOTEXT
|
||||
ENDIF.
|
||||
|
||||
ro_html->add( '<meta http-equiv="content-type" content="text/html; charset=utf-8">' ). "#EC NOTEXT
|
||||
ro_html->add( '</head>' ). "#EC NOTEXT
|
||||
ro_html->add( '<body>' ). "#EC NOTEXT
|
||||
|
||||
ENDMETHOD. "render html header
|
||||
|
||||
METHOD title.
|
||||
|
||||
CREATE OBJECT ro_html.
|
||||
|
||||
ro_html->add( '<div id="header">' ). "#EC NOTEXT
|
||||
ro_html->add( '<table width="100%"><tr>' ). "#EC NOTEXT
|
||||
|
||||
ro_html->add( '<td class="logo">' ). "#EC NOTEXT
|
||||
ro_html->add( '<a href="sapevent:abapgithome">' ). "#EC NOTEXT
|
||||
ro_html->add( '<img src="img/logo">' ). "#EC NOTEXT
|
||||
ro_html->add( '</a>' ). "#EC NOTEXT
|
||||
ro_html->add( '</td>' ). "#EC NOTEXT
|
||||
|
||||
ro_html->add( '<td class="headpad"><span class="page_title">' ). "#EC NOTEXT
|
||||
ro_html->add( |► { iv_title }| ). "#EC NOTEXT
|
||||
ro_html->add( '</span></td>' ). "#EC NOTEXT
|
||||
|
||||
IF io_menu IS BOUND.
|
||||
ro_html->add( '<td class="headpad right">' ). "#EC NOTEXT
|
||||
ro_html->add( io_menu->render( ) ).
|
||||
ro_html->add( '</td>' ). "#EC NOTEXT
|
||||
ENDIF.
|
||||
|
||||
ro_html->add( '</tr></table>' ). "#EC NOTEXT
|
||||
ro_html->add( '</div>' ). "#EC NOTEXT
|
||||
|
||||
ENDMETHOD. "render page title
|
||||
|
||||
METHOD footer.
|
||||
|
||||
CREATE OBJECT ro_html.
|
||||
|
||||
ro_html->add( '<div id="footer">' ). "#EC NOTEXT
|
||||
ro_html->add( '<img src="img/logo" >' ). "#EC NOTEXT
|
||||
ro_html->add( |<span class="version">{ gc_abap_version }</span>| ). "#EC NOTEXT
|
||||
ro_html->add( '</div>' ). "#EC NOTEXT
|
||||
ro_html->add( '</body>' ). "#EC NOTEXT
|
||||
|
||||
IF io_include_script IS BOUND.
|
||||
ro_html->add( '<script type="text/javascript">' ).
|
||||
ro_html->add( io_include_script ).
|
||||
ro_html->add( '</script>' ).
|
||||
ENDIF.
|
||||
|
||||
ro_html->add( '</html>'). "#EC NOTEXT
|
||||
|
||||
ENDMETHOD. "render html footer & logo
|
||||
|
||||
METHOD redirect.
|
||||
|
||||
CREATE OBJECT ro_html.
|
||||
|
||||
ro_html->add( '<!DOCTYPE html>' ). "#EC NOTEXT
|
||||
ro_html->add( '<html><head>' ). "#EC NOTEXT
|
||||
ro_html->add( |<meta http-equiv="refresh" content="0; url={ iv_url }">| ). "#EC NOTEXT
|
||||
ro_html->add( '</head></html>'). "#EC NOTEXT
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD styles.
|
||||
|
||||
DEFINE _add.
|
||||
ro_html->add( &1 ) ##NO_TEXT.
|
||||
END-OF-DEFINITION.
|
||||
|
||||
CREATE OBJECT ro_html.
|
||||
|
||||
_add '<style type="text/css">'.
|
||||
|
||||
" Global styles
|
||||
_add '/* GLOBALS */'.
|
||||
_add 'body {'.
|
||||
_add ' font-family: Arial,Helvetica,sans-serif;'.
|
||||
_add ' font-size: 12pt;'.
|
||||
_add ' background: #E8E8E8;'.
|
||||
_add '}'.
|
||||
_add 'a, a:visited {'.
|
||||
_add ' color: #4078c0;'.
|
||||
_add ' text-decoration: none;'.
|
||||
_add '}'.
|
||||
_add 'a:hover, a:active {'.
|
||||
_add ' cursor: pointer;'.
|
||||
_add ' text-decoration: underline;'.
|
||||
_add '}'.
|
||||
_add 'img { border: 0px; vertical-align: middle; }'.
|
||||
_add 'table { border-collapse: collapse; }'.
|
||||
_add 'pre { display: inline; }'.
|
||||
|
||||
_add 'form input, textarea {'.
|
||||
_add ' border: 1px solid #DDD;'.
|
||||
_add ' padding: 3px 6px;'.
|
||||
_add '}'.
|
||||
_add 'form input:focus, textarea:focus {'.
|
||||
_add ' border: 1px solid #8cadd9;'.
|
||||
_add '}'.
|
||||
|
||||
" Modifiers
|
||||
_add '/* MODIFIERS */'.
|
||||
_add '.grey { color: lightgrey !important; }'.
|
||||
_add '.emphasis { font-weight: bold !important; }'.
|
||||
_add '.attention { color: red !important; }'.
|
||||
_add '.right { text-align:right; }'.
|
||||
_add '.paddings { padding: 0.5em 0.5em 0.5em 0.5em; }'.
|
||||
|
||||
" Structure div styles: header, footer, toc
|
||||
_add '/* STRUCTURE DIVS, HEADER & FOOTER */'.
|
||||
_add 'td.headpad { padding-top: 11px; }'.
|
||||
_add 'td.logo { width: 164px; }'.
|
||||
_add 'div#header {'.
|
||||
_add ' padding: 0.5em 0.5em 0.5em 0.5em;'.
|
||||
_add ' border-bottom: 3px double lightgrey;'.
|
||||
_add '}'.
|
||||
_add 'div#toc {'.
|
||||
_add ' padding: 0.5em 1em 0.5em 1em;'.
|
||||
_add ' background-color: #f2f2f2;'.
|
||||
_add '}'.
|
||||
_add 'div#footer {'.
|
||||
_add ' padding: 0.5em 1em 0.5em 1em;'.
|
||||
_add ' border-top: 3px double lightgrey;'.
|
||||
_add ' text-align: center;'.
|
||||
_add '}'.
|
||||
_add 'div.dummydiv {'.
|
||||
_add ' background-color: #f2f2f2;'.
|
||||
_add ' padding: 0.5em 1em 0.5em 1em;'.
|
||||
_add ' text-align: center;'.
|
||||
_add '}'.
|
||||
_add 'span.version {'.
|
||||
_add ' display: block;'.
|
||||
_add ' color: grey;'.
|
||||
_add ' margin-top: 0.3em;'.
|
||||
_add '}'.
|
||||
_add 'span.page_title {'.
|
||||
_add ' font-weight: normal;'.
|
||||
_add ' font-size: 18pt;'.
|
||||
_add ' color: #bbb;'.
|
||||
_add ' padding-left: 0.4em;'.
|
||||
_add '}'.
|
||||
|
||||
" Menu styles
|
||||
_add '/* MENU */'.
|
||||
_add 'div.menu { display: inline; }'.
|
||||
_add 'div.menu .menu_end { border-right: 0px !important; }'.
|
||||
_add 'div.menu a {'.
|
||||
_add ' padding-left: 0.5em;'.
|
||||
_add ' padding-right: 0.5em;'.
|
||||
_add ' border-right: 1px solid lightgrey;'.
|
||||
_add ' font-size: 12pt;'.
|
||||
_add '}'.
|
||||
_add 'div.menu_vertical { display: inline; }'.
|
||||
_add 'div.menu_vertical a {'.
|
||||
_add ' display: block; '.
|
||||
_add ' font-size: 12pt;'.
|
||||
_add '}'.
|
||||
|
||||
" Drop down styles
|
||||
_add '/*DROP DOWN*/'.
|
||||
_add '.dropdown {'.
|
||||
_add ' position: relative;'.
|
||||
_add ' display: inline;'.
|
||||
_add '}'.
|
||||
_add '.dropdown_content {'.
|
||||
_add ' display: none;'.
|
||||
_add ' z-index: 1;'.
|
||||
_add ' position: absolute;'.
|
||||
_add ' right: 0;'.
|
||||
_add ' top: 1.1em; /*IE7 woraround*/'.
|
||||
_add ' background-color: #f9f9f9;'.
|
||||
_add ' white-space: nowrap;'.
|
||||
* _add ' min-width: 10em;'.
|
||||
_add ' border-bottom: 1px solid lightgrey;'.
|
||||
_add '}'.
|
||||
_add '.dropdown_content a {'.
|
||||
_add ' padding: 0.2em;'.
|
||||
_add ' text-decoration: none;'.
|
||||
_add ' display: block;'.
|
||||
_add '}'.
|
||||
_add '.dropdown_content a:hover { background-color: #f1f1f1 }'.
|
||||
_add '.dropdown:hover .dropdown_content { display: block; }'.
|
||||
_add '.dropdown:hover .dropbtn { color: #79a0d2; }'.
|
||||
|
||||
" Other and outdated (?) styles
|
||||
_add '/* MISC AND REFACTOR */'.
|
||||
_add 'a.grey:link {color: grey; font-size: smaller;}'.
|
||||
_add 'a.grey:visited {color: grey; font-size: smaller;}'.
|
||||
_add 'a.plain:link {color: black; text-decoration: none;}'.
|
||||
_add 'a.plain:visited {color: black; text-decoration: none;}'.
|
||||
_add 'a.bkg:link {color: #E8E8E8;}'.
|
||||
_add 'a.bkg:visited {color: #E8E8E8;}'.
|
||||
_add 'h1 {display: inline;}'.
|
||||
_add 'h2 {display: inline;}'.
|
||||
_add 'h3 {'.
|
||||
_add ' display: inline;'.
|
||||
_add ' color: grey;'.
|
||||
_add ' font-weight:normal;'.
|
||||
_add ' font-size: smaller;'.
|
||||
_add '}'.
|
||||
|
||||
_add '.hidden-submit {'.
|
||||
_add ' border: 0 none;'.
|
||||
_add ' height: 0;'.
|
||||
_add ' width: 0;'.
|
||||
_add ' padding: 0;'.
|
||||
_add ' margin: 0;'.
|
||||
_add ' overflow: hidden;'.
|
||||
_add '}'.
|
||||
|
||||
_add '</style>'.
|
||||
|
||||
ENDMETHOD. "common styles
|
||||
|
||||
METHOD lif_gui_page~get_assets. " Common images here
|
||||
|
||||
DATA ls_image TYPE ty_web_asset.
|
||||
|
||||
ls_image-url = 'img/logo'.
|
||||
ls_image-content =
|
||||
'iVBORw0KGgoAAAANSUhEUgAAAKMAAAAoCAYAAACSG0qbAAAABHNCSVQICAgIfAhkiAAA'
|
||||
&& 'AAlwSFlzAAAEJQAABCUBprHeCQAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9y'
|
||||
&& 'Z5vuPBoAAA8VSURBVHic7Zx7cJzVeYef31nJAtvYko1JjM3FYHlXimwZkLWyLEMcwIGQ'
|
||||
&& 'cEkDJWmTltLStGkoDCkzwBAuCemUlksDNCkhJTTTljJpZhIuBQxxAWPvyuYiW7UkG8Il'
|
||||
&& 'UByIsS1sLEu75+0fu5JXu9/etAJz0TOzM/rOec85765+37m+3yczY8w0NU3qrwv9npfa'
|
||||
&& 'Hfx02pPPd469sgk+7misYnyjpWXy5IOG7kd8ZjjNjEtr13TdOm7eTfCxwo2lUJAQASRu'
|
||||
&& '2dnRfMn4uDbBx42yxZhPiMNMCHKCsVK2GGuqqqoQUwrZTAhygrFQshjfaGmZ/M7yxQtm'
|
||||
&& 'xGL9/qDqzwLxQvYTgpygXEoS4/DQ7LE1O05atLBu1YZdE4KcYLwpupoOmCO+5Z2dXPfE'
|
||||
&& 'xk07Tm2ZroGhBwX1wAygKqiOiVX2Rw9Jam/gyH0wuGGzvTEudRYSY4HFyogghxN2n7Sw'
|
||||
&& 'IendvcCioLoOtCCXNeqohOf0oDwPq9f3Wt/77dOHlWhYzUj/BRybTnrGEnZO5wv2m0rq'
|
||||
&& 'DezJoOiqeZbzegzpk6TVPPWJTT39y5svMogF1ZcesjlQgkwYp4F+EJQXwv4E+MiLUZJa'
|
||||
&& 'F7AIcRq4hWZ2mMRhQD/oZcErXv7FScaja3rt/wpU9E/sFyLACQq57wB/XIl/gWIstn2T'
|
||||
&& 'xpHVre7ZW71p8sFDeQscSEHKu3pTBadNH2Lq61VT57iwNazLgaNSqYaUaWXLDZCJIbBo'
|
||||
&& 'g3tK2A2xHns0oMrm3CRrqdTPnAVMiUIEmLlz2XGLMxNmH7YrifFcoUIHalHj8f8p6UfA'
|
||||
&& 'O+932weStno1zghps6Q7GBFiUYRxopkeaZ2vIwLyfxtQ4vV8lbWHNScacf+T/vwqn90o'
|
||||
&& 'MZYhRADJ+bv725vmj6Q8tHWffPKUD6IgO/tsfawneRHYd97Pdg8kSyJaZiGtBY4pYPYO'
|
||||
&& 'kH84C0Cyv8tKSiK7OZ99EpYAJ2V8AhkRY5lCHGaxhaq+BLCzY/EXd5y0aOG0td1vf1AF'
|
||||
&& 'CWCw7/1u80DQEtahQvcB03MyjQfM7Hwnmxfv9dPivX5SssqOwuzPSqk71mN3ymw5ZtdK'
|
||||
&& 'dmVIdly8xx7JZ29yy0qptwrGLMRRCA6T1w93nLTo5Lq13Zv625tOMRd6DLF4v0lWmQO8'
|
||||
&& 'qPko45y7TWaHZyUnwa6M99mN2fYbuu1V4K5oxF1B4Z4UgFifrQHWFLNbvkh1QheV5DNN'
|
||||
&& 'TZMqFWIGs5zX48M95PTqGa3TZ4erzbvj8/WUErf0L2++uNyGJLn2Js1oDeuYlkbNbmlR'
|
||||
&& 'deXup2hq0qS2es2VlHMDFaOlRdXL5uuwlnodG23QTEljCkbJV3d7WHOK+dXWqHqZnZeb'
|
||||
&& 'Y1fGe3OFOArRU5GTGbSHNWdwUL8Epo1qIQ9V/bXu3HES4jCznNfjb7e1zZ8Ri/UD1MLz'
|
||||
&& 'u05s/huMx4IKGNy4+8Tj/2Pqk8++Vaji86TQqxEuNNM5rWGtSCaokSDkgd0QjbidoPvN'
|
||||
&& '+5s7t9jz5TgdbdBMvLsG2cop6FgLUdUaZk804jYKuyrWa6vzlT2+XrOqQnxd6KwQOj5R'
|
||||
&& 'hULpL9Yaxkcj7g3QT6zK397ZbdtGtbtAZ+B0U3adkt0c67E7OyI6fFDuSpktC6HGpJjU'
|
||||
&& 'GmZ3NOI2mdnVnX32eHZZ7903hGXfBG8mp3J7sd/B0DPCTgUmBf9O7lmMybk56or3Jn8f'
|
||||
&& 'oLVB7Q5dZ9Iy4OBsw2jYbUUk96fwQrzHf955iBZzsDA+aL9k1owZ20fNzaY/tfFXwK48'
|
||||
&& 'ldQkSZ5YqJXmZk15JaJfmOmfgdOAmgCzWrCvyum5aIO+Uor3AIbOx7QV2TeBMPu3vKYA'
|
||||
&& 'Sw091hbWt4PKRhu0oDqkmND1wAnk3vkOmAN2lRLa2hrWMVm5Tek2R3286YzWiK4eQltk'
|
||||
&& '9g1gMfsFMhVYKunR1obQddk+SXZqwLe8acMGe7fYb9HZk7wm3utrBmpsqiXsyClHMHK6'
|
||||
&& '0hLWoRjHBfmLbP9K3bPYjFPIFWLaQeZnlZ8H4JyFflrMwcK4wG63v3/ycZnXOzqalxE0'
|
||||
&& 'mU7x9rvvVv93oVZqBtzNGGeU7Jbp9pZGzS7ReiVQVyDfmXRda4PaA9p5mBLmWGmmSron'
|
||||
&& 'M0FytUGGgjPTAi8UIeVk9u1og5YOJ0QbNBOjIac+Y22JPgLQ1WV7Ol+w36xebYnhtGpj'
|
||||
&& 'FjBYTj3l4KY9/dx6My4d74pN/Ki/Y9HpSG5HR/Nyh/1DHtO9OM6dvWFDwbtWslOykt6U'
|
||||
&& 's5VWZbOFnQtsyMqvc56Ty3T7NeBhLGAfDZDpe5nX6V5uXpbZ43K2NGQ2V9glwLas/I62'
|
||||
&& 'hfrE8EWsJ3mFsGYs+OQqze+A1cBLgbmma4f/9AmOJGBe5vKVLYN1W6wnOWSHmdkVhexM'
|
||||
&& 'PG6yC0x2AbmjoQ3njdh4uwrSw1Htmq5bd3Y0I3FLpQ5n0GTSQ7s6Fva70RPYTPbi+Pz0'
|
||||
&& 'J7ryboRC+m5PnRfsJjVEAfp5bLNflTb52dKIBj36RWY5ZyX2WCLukvbX67ZYHFLHZtGw'
|
||||
&& '+1fD/jDL8qQljWpav9m6Uw3wKYzXgUNJTxsk+0Fssw0L6x+j4dCx6eF/BEtwDBkbx7Fe'
|
||||
&& '29gWCa0yrC2rvXXO26WZfrWG3V2kji8zWbm0QUev67GX5ZgZ8A0H121hXIIZNrxou9oW'
|
||||
&& '6m4b4m/z2aTP+fsAohF3PaNHROvssZ8ElRs5DnyPBAkovxDFF4oJESDeY9tJD4Ur5umg'
|
||||
&& 'PSFm1Uy23Zk2SaM7e43p5Y4uxUMzu2f4H56+tuZmff2gfTqHrGEy5DkW6Abo7LH7gfsB'
|
||||
&& '2uo1LQGzBmoYFSwg57vNcjqqo4F1JXh2S7Zfx83TZZNqdD6MXkQkU369jONgcmfxe83M'
|
||||
&& 'B7XQEdEhg1B0HzDk2ZHpy3vBqLPpMQhyi/f2AIA3WyPZG6KkeVpKiE925awEi7H6JRsA'
|
||||
&& 'cqJDfIi9oayfW8ZB5dY/TFeX7YlGQg+RmgJkcnSQfWyr9QP92enmGcgeNCvx67mXbGdb'
|
||||
&& 'xD1hjI5AklJ+ydgTUGz6iiZNXd09+gYGGIRlQgXn6wDesZYSRFsJOYES5QjSw7fqnu7q'
|
||||
&& 'Bqh7uqu7f3nzdw3uKFJszEIcpqVRs12SRuAYiTrJ1YXMzSGgS6iQnHmWyQWe70pySz/F'
|
||||
&& 'MZagMWnMlaiTuTqTTih7s7IIHm1T1ncVI37l3BAAA4McAYF7iAvG17uxExi1U6Igd9XN'
|
||||
&& 'Dj+UmZA8qPrf3MDQbeSPIN8Ldub0JzeWLcT2I3Swn8JFhr4VQnMze5uKnv0ugOHfUXa3'
|
||||
&& 'ZhySedkR0eGDuMtbw/rTZCI1pA9PF0yWf4e3MnJ7YKXm0pOr6H03QRIIZeYnUj1njhid'
|
||||
&& '8aaRscKX/VGWSRLsCjnK2rcdC3njGUsQ5PSdv92yqJaMk5WBoRMpJsSnNgZufBdCkmsN'
|
||||
&& '60FgRbllK8PNzOlttT/qpz2sOUnpeWGHvq9ewcyc28/7XQCru213NOL+l6wgZ0kXAjnD'
|
||||
&& 'cazP7gXuTdu41rCyxbgr3mt/P16+F6LgUVXtmq5bC237yNsNu5YtPBZgx4kLFznZ1XlM'
|
||||
&& 'BzB/1liECBAN801yhfiq0HflbKXz1ojZ4qCylSBsbm6q/93wX0n0Q1Ir6UzWYXaZyZaF'
|
||||
&& 'qqxeZn813n4ZlhPWJWXMo00P5OTDF5c0qmm8fRlPip6bFhHk6Ti3ddfy5i3OXBemJQE2'
|
||||
&& 'A5g/c/qaTasC8krC0KdzE+3qWG/y6thmW7Vui/UkQ7w51vqDaGnRZFInPdlshNQ2C8oJ'
|
||||
&& 'h0oqaefF++zmzh5bu7bbXrBxjp88bp5qgZzNdyfWD/9t+B+TO4GW8/p+R0SHcGBxLWEF'
|
||||
&& 'jiQlHeIXEaRIPZAVRMVCTDcQCUh8LfOyaqjgCcr+YpY7NRFa2VY/egsqtNtdw8ie5gjJ'
|
||||
&& 'oUTqicjofOYA2f/YgcR03s5MMBF4wlIa7rMr5mnUyru6xl0LZAeFvDG3l83DF5199muk'
|
||||
&& 'oJO1FUMoviSi8Nh9Kg+Ru7qvUvCqPO+cMZsxbPsM4HXW9KcrEyKApTa7s9BVSyLaF3Ik'
|
||||
&& 'SbLSQros18RyInkkV2u5q+6zLaS+aCT0oJl/QVI78IWcsvDos1vtLYCE551QKNuCKW63'
|
||||
&& '+157g36cMOYI9yWhC3K+j4KDEHKxC9+t0altDaFHwL/kvVZIBJw761/uM5/MTJlU7S/Z'
|
||||
&& 'N6hTBNlhZA0OPReNuGdM6nL4jR4G5ZnRusAtKmVHwg1Slcxe11nODZJKh1fJ6kwM3dQa'
|
||||
&& 'VgOw3omjkGuL9/o/L/vFTzs7mi8pQZBpIT4f9PxE2bRFQncY9pdjKDoExDH7ebzPbgFo'
|
||||
&& 'bQjdng48KBfvzZau77ORN61FI66PsW2N7ARiZnZTZ589BtAWCV1v5J1zF+JNVdui2CbL'
|
||||
&& 'OcJsq1ejD2lVgCDL4e14r58J0N6k+cmEu0HYIssdrbxgnaGeeG9yJEg32hC6GbOix81y'
|
||||
&& 'trTsWLtiixpgQNLZ4yVEgCT++xSP0H7C0N1ZadVAh6SR3kRm2WfJO0H/XqTuQcn+IlOI'
|
||||
&& 'AFjRVaZhus3g2az0WuA0wcIi5QP3DDNIIPtakBABYltts7AO4OEi9eTFYGCksSRzwM4L'
|
||||
&& 'ECKAM1gG9tVR5UP+RkqZN5s7a0yBnwUEOSDp7GlPPp83BH0srO+1PmQrDIIen9wOdnln'
|
||||
&& 'n31G5n9ZtDLL6ck2x3uTf6DUee8rASX6vNnyWI/dmZ0R77O7LNXLBkWy9CE7Pd6XvNih'
|
||||
&& 'QkEQeZHZl9PBFtsDstebtyWFwv0B4r32UrzXn+6xDtBdwIslNL0N+JnMvravxiraFO/s'
|
||||
&& 'tm0y+xzQlcfkddCNCe/vGfP7GQH6lzdfbHAjqSCBHZK+PN5CzESSlixgnhMLzXAeXp+3'
|
||||
&& 'hWfuM0sWL10abQv1CdtHixzvmtiYPhcvSFOTJk1NEPEQkWdPUry4oc96y2o3YJiWs5Wx'
|
||||
&& 'zbYq83THHHu9Y1N2kG45tDRqdsgzxxuznKPOGbsTsN2M7d6zfXhePJ5Ici1h6mUcAcw0'
|
||||
&& '8Zo5fp35NoqKxAjwTrRhZmLSpPY9ySmPzV27dm+lTn9cKSTGA+XT+03Jq+l8HBLv2Q7c'
|
||||
&& 'X9K+ygQTFGDcHhaaoGJyouDNV7JH+eGj4mF6gspoC+tzJt1ObsT4MDsF2zxs886+Ml5v'
|
||||
&& '/PogUvEwPUGFiE+SX4gAtQa1gkhV7onQR4oJMR5oxC6stDeghd7Dh6E+CPw/HL4vVO2f'
|
||||
&& 'cpUAAAAASUVORK5CYII='.
|
||||
APPEND ls_image TO rt_assets.
|
||||
|
||||
ENDMETHOD. "lif_gui_page~get_assets
|
||||
|
||||
METHOD lif_gui_page~on_event.
|
||||
rv_state = gc_event_state-not_handled.
|
||||
ENDMETHOD. "lif_gui_page~on_event
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
CLASS lcl_gui_page_branch_overview DEFINITION FINAL INHERITING FROM lcl_gui_page_super.
|
||||
|
||||
PUBLIC SECTION.
|
||||
METHODS:
|
||||
constructor
|
||||
IMPORTING io_repo TYPE REF TO lcl_repo_online,
|
||||
lif_gui_page~render REDEFINITION.
|
||||
|
||||
PRIVATE SECTION.
|
||||
DATA: mo_repo TYPE REF TO lcl_repo_online.
|
||||
|
||||
ENDCLASS. "lcl_gui_page_explore DEFINITION
|
||||
|
||||
CLASS lcl_gui_page_branch_overview IMPLEMENTATION.
|
||||
|
||||
METHOD constructor.
|
||||
super->constructor( ).
|
||||
mo_repo = io_repo.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD lif_gui_page~render.
|
||||
|
||||
CREATE OBJECT ro_html.
|
||||
|
||||
ro_html->add( header( ) ).
|
||||
ro_html->add( title( 'BRANCH_OVERVIEW' ) ).
|
||||
|
||||
ro_html->add( 'hello world' ).
|
||||
ro_html->add( '<svg width="100" height="100">' ).
|
||||
ro_html->add( '<circle cx="50" cy="50" r="40" stroke="green" stroke-width="4" fill="yellow" />' ).
|
||||
ro_html->add( '</svg>' ).
|
||||
ro_html->add( '<canvas id="myCanvas" width="200" height="100" style="border:1px solid #000000;">' ).
|
||||
ro_html->add( '</canvas>' ).
|
||||
ro_html->add( '<script>' ).
|
||||
ro_html->add( 'var c = document.getElementById("myCanvas");' ).
|
||||
ro_html->add( 'var ctx = c.getContext("2d");' ).
|
||||
ro_html->add( 'ctx.moveTo(0,0);' ).
|
||||
ro_html->add( 'ctx.lineTo(200,100);' ).
|
||||
ro_html->add( 'ctx.stroke();' ).
|
||||
ro_html->add( '</script>' ).
|
||||
|
||||
ro_html->add( footer( ) ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
CLASS lcl_gui_page_explore DEFINITION FINAL INHERITING FROM lcl_gui_page_super.
|
||||
PUBLIC SECTION.
|
||||
METHODS lif_gui_page~render REDEFINITION.
|
||||
|
|
382
src/zabapgit_page.prog.abap
Normal file
382
src/zabapgit_page.prog.abap
Normal file
|
@ -0,0 +1,382 @@
|
|||
*&---------------------------------------------------------------------*
|
||||
*& Include ZABAPGIT_PAGE
|
||||
*&---------------------------------------------------------------------*
|
||||
|
||||
*----------------------------------------------------------------------*
|
||||
* INTERFACE lif_gui_page DEFINITION
|
||||
*----------------------------------------------------------------------*
|
||||
INTERFACE lif_gui_page.
|
||||
|
||||
METHODS on_event
|
||||
IMPORTING iv_action TYPE clike
|
||||
iv_frame TYPE clike
|
||||
iv_getdata TYPE clike
|
||||
it_postdata TYPE cnht_post_data_tab
|
||||
it_query_table TYPE cnht_query_table
|
||||
RETURNING VALUE(rv_state) TYPE i
|
||||
RAISING lcx_exception.
|
||||
|
||||
METHODS render
|
||||
RETURNING VALUE(ro_html) TYPE REF TO lcl_html_helper
|
||||
RAISING lcx_exception.
|
||||
|
||||
METHODS get_assets
|
||||
RETURNING VALUE(rt_assets) TYPE tt_web_assets.
|
||||
|
||||
ENDINTERFACE.
|
||||
|
||||
CLASS lcl_gui_page_super DEFINITION ABSTRACT.
|
||||
PUBLIC SECTION.
|
||||
INTERFACES lif_gui_page ABSTRACT METHODS render.
|
||||
|
||||
PROTECTED SECTION.
|
||||
METHODS header
|
||||
IMPORTING io_include_style TYPE REF TO lcl_html_helper OPTIONAL
|
||||
RETURNING VALUE(ro_html) TYPE REF TO lcl_html_helper.
|
||||
|
||||
METHODS footer
|
||||
IMPORTING io_include_script TYPE REF TO lcl_html_helper OPTIONAL
|
||||
RETURNING VALUE(ro_html) TYPE REF TO lcl_html_helper.
|
||||
|
||||
METHODS title
|
||||
IMPORTING iv_title TYPE string
|
||||
io_menu TYPE REF TO lcl_html_toolbar OPTIONAL
|
||||
RETURNING VALUE(ro_html) TYPE REF TO lcl_html_helper.
|
||||
|
||||
METHODS redirect
|
||||
IMPORTING iv_url TYPE string
|
||||
RETURNING VALUE(ro_html) TYPE REF TO lcl_html_helper.
|
||||
|
||||
PRIVATE SECTION.
|
||||
METHODS styles RETURNING VALUE(ro_html) TYPE REF TO lcl_html_helper.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
CLASS lcl_gui_page_super IMPLEMENTATION.
|
||||
|
||||
METHOD header.
|
||||
|
||||
CREATE OBJECT ro_html.
|
||||
|
||||
ro_html->add( '<!DOCTYPE html>' ). "#EC NOTEXT
|
||||
ro_html->add( '<html>' ). "#EC NOTEXT
|
||||
ro_html->add( '<head>' ). "#EC NOTEXT
|
||||
ro_html->add( '<title>abapGit</title>' ). "#EC NOTEXT
|
||||
ro_html->add( styles( ) ).
|
||||
|
||||
IF io_include_style IS BOUND.
|
||||
ro_html->add( '<style type="text/css">' ). "#EC NOTEXT
|
||||
ro_html->add( io_include_style ).
|
||||
ro_html->add( '</style>' ). "#EC NOTEXT
|
||||
ENDIF.
|
||||
|
||||
ro_html->add( '<meta http-equiv="content-type" content="text/html; charset=utf-8">' ). "#EC NOTEXT
|
||||
ro_html->add( '</head>' ). "#EC NOTEXT
|
||||
ro_html->add( '<body>' ). "#EC NOTEXT
|
||||
|
||||
ENDMETHOD. "render html header
|
||||
|
||||
METHOD title.
|
||||
|
||||
CREATE OBJECT ro_html.
|
||||
|
||||
ro_html->add( '<div id="header">' ). "#EC NOTEXT
|
||||
ro_html->add( '<table width="100%"><tr>' ). "#EC NOTEXT
|
||||
|
||||
ro_html->add( '<td class="logo">' ). "#EC NOTEXT
|
||||
ro_html->add( '<a href="sapevent:abapgithome">' ). "#EC NOTEXT
|
||||
ro_html->add( '<img src="img/logo">' ). "#EC NOTEXT
|
||||
ro_html->add( '</a>' ). "#EC NOTEXT
|
||||
ro_html->add( '</td>' ). "#EC NOTEXT
|
||||
|
||||
ro_html->add( '<td class="headpad"><span class="page_title">' ). "#EC NOTEXT
|
||||
ro_html->add( |► { iv_title }| ). "#EC NOTEXT
|
||||
ro_html->add( '</span></td>' ). "#EC NOTEXT
|
||||
|
||||
IF io_menu IS BOUND.
|
||||
ro_html->add( '<td class="headpad right">' ). "#EC NOTEXT
|
||||
ro_html->add( io_menu->render( ) ).
|
||||
ro_html->add( '</td>' ). "#EC NOTEXT
|
||||
ENDIF.
|
||||
|
||||
ro_html->add( '</tr></table>' ). "#EC NOTEXT
|
||||
ro_html->add( '</div>' ). "#EC NOTEXT
|
||||
|
||||
ENDMETHOD. "render page title
|
||||
|
||||
METHOD footer.
|
||||
|
||||
CREATE OBJECT ro_html.
|
||||
|
||||
ro_html->add( '<div id="footer">' ). "#EC NOTEXT
|
||||
ro_html->add( '<img src="img/logo" >' ). "#EC NOTEXT
|
||||
ro_html->add( |<span class="version">{ gc_abap_version }</span>| ). "#EC NOTEXT
|
||||
ro_html->add( '</div>' ). "#EC NOTEXT
|
||||
ro_html->add( '</body>' ). "#EC NOTEXT
|
||||
|
||||
IF io_include_script IS BOUND.
|
||||
ro_html->add( '<script type="text/javascript">' ).
|
||||
ro_html->add( io_include_script ).
|
||||
ro_html->add( '</script>' ).
|
||||
ENDIF.
|
||||
|
||||
ro_html->add( '</html>'). "#EC NOTEXT
|
||||
|
||||
ENDMETHOD. "render html footer & logo
|
||||
|
||||
METHOD redirect.
|
||||
|
||||
CREATE OBJECT ro_html.
|
||||
|
||||
ro_html->add( '<!DOCTYPE html>' ). "#EC NOTEXT
|
||||
ro_html->add( '<html><head>' ). "#EC NOTEXT
|
||||
ro_html->add( |<meta http-equiv="refresh" content="0; url={ iv_url }">| ). "#EC NOTEXT
|
||||
ro_html->add( '</head></html>'). "#EC NOTEXT
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD styles.
|
||||
|
||||
DEFINE _add.
|
||||
ro_html->add( &1 ) ##NO_TEXT.
|
||||
END-OF-DEFINITION.
|
||||
|
||||
CREATE OBJECT ro_html.
|
||||
|
||||
_add '<style type="text/css">'.
|
||||
|
||||
" Global styles
|
||||
_add '/* GLOBALS */'.
|
||||
_add 'body {'.
|
||||
_add ' font-family: Arial,Helvetica,sans-serif;'.
|
||||
_add ' font-size: 12pt;'.
|
||||
_add ' background: #E8E8E8;'.
|
||||
_add '}'.
|
||||
_add 'a, a:visited {'.
|
||||
_add ' color: #4078c0;'.
|
||||
_add ' text-decoration: none;'.
|
||||
_add '}'.
|
||||
_add 'a:hover, a:active {'.
|
||||
_add ' cursor: pointer;'.
|
||||
_add ' text-decoration: underline;'.
|
||||
_add '}'.
|
||||
_add 'img { border: 0px; vertical-align: middle; }'.
|
||||
_add 'table { border-collapse: collapse; }'.
|
||||
_add 'pre { display: inline; }'.
|
||||
|
||||
_add 'form input, textarea {'.
|
||||
_add ' border: 1px solid #DDD;'.
|
||||
_add ' padding: 3px 6px;'.
|
||||
_add '}'.
|
||||
_add 'form input:focus, textarea:focus {'.
|
||||
_add ' border: 1px solid #8cadd9;'.
|
||||
_add '}'.
|
||||
|
||||
" Modifiers
|
||||
_add '/* MODIFIERS */'.
|
||||
_add '.grey { color: lightgrey !important; }'.
|
||||
_add '.emphasis { font-weight: bold !important; }'.
|
||||
_add '.attention { color: red !important; }'.
|
||||
_add '.right { text-align:right; }'.
|
||||
_add '.paddings { padding: 0.5em 0.5em 0.5em 0.5em; }'.
|
||||
|
||||
" Structure div styles: header, footer, toc
|
||||
_add '/* STRUCTURE DIVS, HEADER & FOOTER */'.
|
||||
_add 'td.headpad { padding-top: 11px; }'.
|
||||
_add 'td.logo { width: 164px; }'.
|
||||
_add 'div#header {'.
|
||||
_add ' padding: 0.5em 0.5em 0.5em 0.5em;'.
|
||||
_add ' border-bottom: 3px double lightgrey;'.
|
||||
_add '}'.
|
||||
_add 'div#toc {'.
|
||||
_add ' padding: 0.5em 1em 0.5em 1em;'.
|
||||
_add ' background-color: #f2f2f2;'.
|
||||
_add '}'.
|
||||
_add 'div#footer {'.
|
||||
_add ' padding: 0.5em 1em 0.5em 1em;'.
|
||||
_add ' border-top: 3px double lightgrey;'.
|
||||
_add ' text-align: center;'.
|
||||
_add '}'.
|
||||
_add 'div.dummydiv {'.
|
||||
_add ' background-color: #f2f2f2;'.
|
||||
_add ' padding: 0.5em 1em 0.5em 1em;'.
|
||||
_add ' text-align: center;'.
|
||||
_add '}'.
|
||||
_add 'span.version {'.
|
||||
_add ' display: block;'.
|
||||
_add ' color: grey;'.
|
||||
_add ' margin-top: 0.3em;'.
|
||||
_add '}'.
|
||||
_add 'span.page_title {'.
|
||||
_add ' font-weight: normal;'.
|
||||
_add ' font-size: 18pt;'.
|
||||
_add ' color: #bbb;'.
|
||||
_add ' padding-left: 0.4em;'.
|
||||
_add '}'.
|
||||
|
||||
" Menu styles
|
||||
_add '/* MENU */'.
|
||||
_add 'div.menu { display: inline; }'.
|
||||
_add 'div.menu .menu_end { border-right: 0px !important; }'.
|
||||
_add 'div.menu a {'.
|
||||
_add ' padding-left: 0.5em;'.
|
||||
_add ' padding-right: 0.5em;'.
|
||||
_add ' border-right: 1px solid lightgrey;'.
|
||||
_add ' font-size: 12pt;'.
|
||||
_add '}'.
|
||||
_add 'div.menu_vertical { display: inline; }'.
|
||||
_add 'div.menu_vertical a {'.
|
||||
_add ' display: block; '.
|
||||
_add ' font-size: 12pt;'.
|
||||
_add '}'.
|
||||
|
||||
" Drop down styles
|
||||
_add '/*DROP DOWN*/'.
|
||||
_add '.dropdown {'.
|
||||
_add ' position: relative;'.
|
||||
_add ' display: inline;'.
|
||||
_add '}'.
|
||||
_add '.dropdown_content {'.
|
||||
_add ' display: none;'.
|
||||
_add ' z-index: 1;'.
|
||||
_add ' position: absolute;'.
|
||||
_add ' right: 0;'.
|
||||
_add ' top: 1.1em; /*IE7 woraround*/'.
|
||||
_add ' background-color: #f9f9f9;'.
|
||||
_add ' white-space: nowrap;'.
|
||||
* _add ' min-width: 10em;'.
|
||||
_add ' border-bottom: 1px solid lightgrey;'.
|
||||
_add '}'.
|
||||
_add '.dropdown_content a {'.
|
||||
_add ' padding: 0.2em;'.
|
||||
_add ' text-decoration: none;'.
|
||||
_add ' display: block;'.
|
||||
_add '}'.
|
||||
_add '.dropdown_content a:hover { background-color: #f1f1f1 }'.
|
||||
_add '.dropdown:hover .dropdown_content { display: block; }'.
|
||||
_add '.dropdown:hover .dropbtn { color: #79a0d2; }'.
|
||||
|
||||
" Other and outdated (?) styles
|
||||
_add '/* MISC AND REFACTOR */'.
|
||||
_add 'a.grey:link {color: grey; font-size: smaller;}'.
|
||||
_add 'a.grey:visited {color: grey; font-size: smaller;}'.
|
||||
_add 'a.plain:link {color: black; text-decoration: none;}'.
|
||||
_add 'a.plain:visited {color: black; text-decoration: none;}'.
|
||||
_add 'a.bkg:link {color: #E8E8E8;}'.
|
||||
_add 'a.bkg:visited {color: #E8E8E8;}'.
|
||||
_add 'h1 {display: inline;}'.
|
||||
_add 'h2 {display: inline;}'.
|
||||
_add 'h3 {'.
|
||||
_add ' display: inline;'.
|
||||
_add ' color: grey;'.
|
||||
_add ' font-weight:normal;'.
|
||||
_add ' font-size: smaller;'.
|
||||
_add '}'.
|
||||
|
||||
_add '.hidden-submit {'.
|
||||
_add ' border: 0 none;'.
|
||||
_add ' height: 0;'.
|
||||
_add ' width: 0;'.
|
||||
_add ' padding: 0;'.
|
||||
_add ' margin: 0;'.
|
||||
_add ' overflow: hidden;'.
|
||||
_add '}'.
|
||||
|
||||
_add '</style>'.
|
||||
|
||||
ENDMETHOD. "common styles
|
||||
|
||||
METHOD lif_gui_page~get_assets. " Common images here
|
||||
|
||||
DATA ls_image TYPE ty_web_asset.
|
||||
|
||||
ls_image-url = 'img/logo'.
|
||||
ls_image-content =
|
||||
'iVBORw0KGgoAAAANSUhEUgAAAKMAAAAoCAYAAACSG0qbAAAABHNCSVQICAgIfAhkiAAA'
|
||||
&& 'AAlwSFlzAAAEJQAABCUBprHeCQAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9y'
|
||||
&& 'Z5vuPBoAAA8VSURBVHic7Zx7cJzVeYef31nJAtvYko1JjM3FYHlXimwZkLWyLEMcwIGQ'
|
||||
&& 'cEkDJWmTltLStGkoDCkzwBAuCemUlksDNCkhJTTTljJpZhIuBQxxAWPvyuYiW7UkG8Il'
|
||||
&& 'UByIsS1sLEu75+0fu5JXu9/etAJz0TOzM/rOec85765+37m+3yczY8w0NU3qrwv9npfa'
|
||||
&& 'Hfx02pPPd469sgk+7misYnyjpWXy5IOG7kd8ZjjNjEtr13TdOm7eTfCxwo2lUJAQASRu'
|
||||
&& '2dnRfMn4uDbBx42yxZhPiMNMCHKCsVK2GGuqqqoQUwrZTAhygrFQshjfaGmZ/M7yxQtm'
|
||||
&& 'xGL9/qDqzwLxQvYTgpygXEoS4/DQ7LE1O05atLBu1YZdE4KcYLwpupoOmCO+5Z2dXPfE'
|
||||
&& 'xk07Tm2ZroGhBwX1wAygKqiOiVX2Rw9Jam/gyH0wuGGzvTEudRYSY4HFyogghxN2n7Sw'
|
||||
&& 'IendvcCioLoOtCCXNeqohOf0oDwPq9f3Wt/77dOHlWhYzUj/BRybTnrGEnZO5wv2m0rq'
|
||||
&& 'DezJoOiqeZbzegzpk6TVPPWJTT39y5svMogF1ZcesjlQgkwYp4F+EJQXwv4E+MiLUZJa'
|
||||
&& 'F7AIcRq4hWZ2mMRhQD/oZcErXv7FScaja3rt/wpU9E/sFyLACQq57wB/XIl/gWIstn2T'
|
||||
&& 'xpHVre7ZW71p8sFDeQscSEHKu3pTBadNH2Lq61VT57iwNazLgaNSqYaUaWXLDZCJIbBo'
|
||||
&& 'g3tK2A2xHns0oMrm3CRrqdTPnAVMiUIEmLlz2XGLMxNmH7YrifFcoUIHalHj8f8p6UfA'
|
||||
&& 'O+932weStno1zghps6Q7GBFiUYRxopkeaZ2vIwLyfxtQ4vV8lbWHNScacf+T/vwqn90o'
|
||||
&& 'MZYhRADJ+bv725vmj6Q8tHWffPKUD6IgO/tsfawneRHYd97Pdg8kSyJaZiGtBY4pYPYO'
|
||||
&& 'kH84C0Cyv8tKSiK7OZ99EpYAJ2V8AhkRY5lCHGaxhaq+BLCzY/EXd5y0aOG0td1vf1AF'
|
||||
&& 'CWCw7/1u80DQEtahQvcB03MyjQfM7Hwnmxfv9dPivX5SssqOwuzPSqk71mN3ymw5ZtdK'
|
||||
&& 'dmVIdly8xx7JZ29yy0qptwrGLMRRCA6T1w93nLTo5Lq13Zv625tOMRd6DLF4v0lWmQO8'
|
||||
&& 'qPko45y7TWaHZyUnwa6M99mN2fYbuu1V4K5oxF1B4Z4UgFifrQHWFLNbvkh1QheV5DNN'
|
||||
&& 'TZMqFWIGs5zX48M95PTqGa3TZ4erzbvj8/WUErf0L2++uNyGJLn2Js1oDeuYlkbNbmlR'
|
||||
&& 'deXup2hq0qS2es2VlHMDFaOlRdXL5uuwlnodG23QTEljCkbJV3d7WHOK+dXWqHqZnZeb'
|
||||
&& 'Y1fGe3OFOArRU5GTGbSHNWdwUL8Epo1qIQ9V/bXu3HES4jCznNfjb7e1zZ8Ri/UD1MLz'
|
||||
&& 'u05s/huMx4IKGNy4+8Tj/2Pqk8++Vaji86TQqxEuNNM5rWGtSCaokSDkgd0QjbidoPvN'
|
||||
&& '+5s7t9jz5TgdbdBMvLsG2cop6FgLUdUaZk804jYKuyrWa6vzlT2+XrOqQnxd6KwQOj5R'
|
||||
&& 'hULpL9Yaxkcj7g3QT6zK397ZbdtGtbtAZ+B0U3adkt0c67E7OyI6fFDuSpktC6HGpJjU'
|
||||
&& 'GmZ3NOI2mdnVnX32eHZZ7903hGXfBG8mp3J7sd/B0DPCTgUmBf9O7lmMybk56or3Jn8f'
|
||||
&& 'oLVB7Q5dZ9Iy4OBsw2jYbUUk96fwQrzHf955iBZzsDA+aL9k1owZ20fNzaY/tfFXwK48'
|
||||
&& 'ldQkSZ5YqJXmZk15JaJfmOmfgdOAmgCzWrCvyum5aIO+Uor3AIbOx7QV2TeBMPu3vKYA'
|
||||
&& 'Sw091hbWt4PKRhu0oDqkmND1wAnk3vkOmAN2lRLa2hrWMVm5Tek2R3286YzWiK4eQltk'
|
||||
&& '9g1gMfsFMhVYKunR1obQddk+SXZqwLe8acMGe7fYb9HZk7wm3utrBmpsqiXsyClHMHK6'
|
||||
&& '0hLWoRjHBfmLbP9K3bPYjFPIFWLaQeZnlZ8H4JyFflrMwcK4wG63v3/ycZnXOzqalxE0'
|
||||
&& 'mU7x9rvvVv93oVZqBtzNGGeU7Jbp9pZGzS7ReiVQVyDfmXRda4PaA9p5mBLmWGmmSron'
|
||||
&& 'M0FytUGGgjPTAi8UIeVk9u1og5YOJ0QbNBOjIac+Y22JPgLQ1WV7Ol+w36xebYnhtGpj'
|
||||
&& 'FjBYTj3l4KY9/dx6My4d74pN/Ki/Y9HpSG5HR/Nyh/1DHtO9OM6dvWFDwbtWslOykt6U'
|
||||
&& 's5VWZbOFnQtsyMqvc56Ty3T7NeBhLGAfDZDpe5nX6V5uXpbZ43K2NGQ2V9glwLas/I62'
|
||||
&& 'hfrE8EWsJ3mFsGYs+OQqze+A1cBLgbmma4f/9AmOJGBe5vKVLYN1W6wnOWSHmdkVhexM'
|
||||
&& 'PG6yC0x2AbmjoQ3njdh4uwrSw1Htmq5bd3Y0I3FLpQ5n0GTSQ7s6Fva70RPYTPbi+Pz0'
|
||||
&& 'J7ryboRC+m5PnRfsJjVEAfp5bLNflTb52dKIBj36RWY5ZyX2WCLukvbX67ZYHFLHZtGw'
|
||||
&& '+1fD/jDL8qQljWpav9m6Uw3wKYzXgUNJTxsk+0Fssw0L6x+j4dCx6eF/BEtwDBkbx7Fe'
|
||||
&& '29gWCa0yrC2rvXXO26WZfrWG3V2kji8zWbm0QUev67GX5ZgZ8A0H121hXIIZNrxou9oW'
|
||||
&& '6m4b4m/z2aTP+fsAohF3PaNHROvssZ8ElRs5DnyPBAkovxDFF4oJESDeY9tJD4Ur5umg'
|
||||
&& 'PSFm1Uy23Zk2SaM7e43p5Y4uxUMzu2f4H56+tuZmff2gfTqHrGEy5DkW6Abo7LH7gfsB'
|
||||
&& '2uo1LQGzBmoYFSwg57vNcjqqo4F1JXh2S7Zfx83TZZNqdD6MXkQkU369jONgcmfxe83M'
|
||||
&& 'B7XQEdEhg1B0HzDk2ZHpy3vBqLPpMQhyi/f2AIA3WyPZG6KkeVpKiE925awEi7H6JRsA'
|
||||
&& 'cqJDfIi9oayfW8ZB5dY/TFeX7YlGQg+RmgJkcnSQfWyr9QP92enmGcgeNCvx67mXbGdb'
|
||||
&& 'xD1hjI5AklJ+ydgTUGz6iiZNXd09+gYGGIRlQgXn6wDesZYSRFsJOYES5QjSw7fqnu7q'
|
||||
&& 'Bqh7uqu7f3nzdw3uKFJszEIcpqVRs12SRuAYiTrJ1YXMzSGgS6iQnHmWyQWe70pySz/F'
|
||||
&& 'MZagMWnMlaiTuTqTTih7s7IIHm1T1ncVI37l3BAAA4McAYF7iAvG17uxExi1U6Igd9XN'
|
||||
&& 'Dj+UmZA8qPrf3MDQbeSPIN8Ldub0JzeWLcT2I3Swn8JFhr4VQnMze5uKnv0ugOHfUXa3'
|
||||
&& 'ZhySedkR0eGDuMtbw/rTZCI1pA9PF0yWf4e3MnJ7YKXm0pOr6H03QRIIZeYnUj1njhid'
|
||||
&& '8aaRscKX/VGWSRLsCjnK2rcdC3njGUsQ5PSdv92yqJaMk5WBoRMpJsSnNgZufBdCkmsN'
|
||||
&& '60FgRbllK8PNzOlttT/qpz2sOUnpeWGHvq9ewcyc28/7XQCru213NOL+l6wgZ0kXAjnD'
|
||||
&& 'cazP7gXuTdu41rCyxbgr3mt/P16+F6LgUVXtmq5bC237yNsNu5YtPBZgx4kLFznZ1XlM'
|
||||
&& 'BzB/1liECBAN801yhfiq0HflbKXz1ojZ4qCylSBsbm6q/93wX0n0Q1Ir6UzWYXaZyZaF'
|
||||
&& 'qqxeZn813n4ZlhPWJWXMo00P5OTDF5c0qmm8fRlPip6bFhHk6Ti3ddfy5i3OXBemJQE2'
|
||||
&& 'A5g/c/qaTasC8krC0KdzE+3qWG/y6thmW7Vui/UkQ7w51vqDaGnRZFInPdlshNQ2C8oJ'
|
||||
&& 'h0oqaefF++zmzh5bu7bbXrBxjp88bp5qgZzNdyfWD/9t+B+TO4GW8/p+R0SHcGBxLWEF'
|
||||
&& 'jiQlHeIXEaRIPZAVRMVCTDcQCUh8LfOyaqjgCcr+YpY7NRFa2VY/egsqtNtdw8ie5gjJ'
|
||||
&& 'oUTqicjofOYA2f/YgcR03s5MMBF4wlIa7rMr5mnUyru6xl0LZAeFvDG3l83DF5199muk'
|
||||
&& 'oJO1FUMoviSi8Nh9Kg+Ru7qvUvCqPO+cMZsxbPsM4HXW9KcrEyKApTa7s9BVSyLaF3Ik'
|
||||
&& 'SbLSQros18RyInkkV2u5q+6zLaS+aCT0oJl/QVI78IWcsvDos1vtLYCE551QKNuCKW63'
|
||||
&& '+157g36cMOYI9yWhC3K+j4KDEHKxC9+t0altDaFHwL/kvVZIBJw761/uM5/MTJlU7S/Z'
|
||||
&& 'N6hTBNlhZA0OPReNuGdM6nL4jR4G5ZnRusAtKmVHwg1Slcxe11nODZJKh1fJ6kwM3dQa'
|
||||
&& 'VgOw3omjkGuL9/o/L/vFTzs7mi8pQZBpIT4f9PxE2bRFQncY9pdjKDoExDH7ebzPbgFo'
|
||||
&& 'bQjdng48KBfvzZau77ORN61FI66PsW2N7ARiZnZTZ589BtAWCV1v5J1zF+JNVdui2CbL'
|
||||
&& 'OcJsq1ejD2lVgCDL4e14r58J0N6k+cmEu0HYIssdrbxgnaGeeG9yJEg32hC6GbOix81y'
|
||||
&& 'trTsWLtiixpgQNLZ4yVEgCT++xSP0H7C0N1ZadVAh6SR3kRm2WfJO0H/XqTuQcn+IlOI'
|
||||
&& 'AFjRVaZhus3g2az0WuA0wcIi5QP3DDNIIPtakBABYltts7AO4OEi9eTFYGCksSRzwM4L'
|
||||
&& 'ECKAM1gG9tVR5UP+RkqZN5s7a0yBnwUEOSDp7GlPPp83BH0srO+1PmQrDIIen9wOdnln'
|
||||
&& 'n31G5n9ZtDLL6ck2x3uTf6DUee8rASX6vNnyWI/dmZ0R77O7LNXLBkWy9CE7Pd6XvNih'
|
||||
&& 'QkEQeZHZl9PBFtsDstebtyWFwv0B4r32UrzXn+6xDtBdwIslNL0N+JnMvravxiraFO/s'
|
||||
&& 'tm0y+xzQlcfkddCNCe/vGfP7GQH6lzdfbHAjqSCBHZK+PN5CzESSlixgnhMLzXAeXp+3'
|
||||
&& 'hWfuM0sWL10abQv1CdtHixzvmtiYPhcvSFOTJk1NEPEQkWdPUry4oc96y2o3YJiWs5Wx'
|
||||
&& 'zbYq83THHHu9Y1N2kG45tDRqdsgzxxuznKPOGbsTsN2M7d6zfXhePJ5Ici1h6mUcAcw0'
|
||||
&& '8Zo5fp35NoqKxAjwTrRhZmLSpPY9ySmPzV27dm+lTn9cKSTGA+XT+03Jq+l8HBLv2Q7c'
|
||||
&& 'X9K+ygQTFGDcHhaaoGJyouDNV7JH+eGj4mF6gspoC+tzJt1ObsT4MDsF2zxs886+Ml5v'
|
||||
&& '/PogUvEwPUGFiE+SX4gAtQa1gkhV7onQR4oJMR5oxC6stDeghd7Dh6E+CPw/HL4vVO2f'
|
||||
&& 'cpUAAAAASUVORK5CYII='.
|
||||
APPEND ls_image TO rt_assets.
|
||||
|
||||
ENDMETHOD. "lif_gui_page~get_assets
|
||||
|
||||
METHOD lif_gui_page~on_event.
|
||||
rv_state = gc_event_state-not_handled.
|
||||
ENDMETHOD. "lif_gui_page~on_event
|
||||
|
||||
ENDCLASS.
|
48
src/zabapgit_page.prog.xml
Normal file
48
src/zabapgit_page.prog.xml
Normal file
|
@ -0,0 +1,48 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_PROG" serializer_version="v1.0.0">
|
||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<PROGDIR>
|
||||
<NAME>ZABAPGIT_PAGE</NAME>
|
||||
<STATE>A</STATE>
|
||||
<SQLX/>
|
||||
<EDTX/>
|
||||
<VARCL>X</VARCL>
|
||||
<DBAPL/>
|
||||
<DBNA/>
|
||||
<CLAS/>
|
||||
<TYPE/>
|
||||
<OCCURS/>
|
||||
<SUBC>I</SUBC>
|
||||
<APPL/>
|
||||
<SECU/>
|
||||
<CNAM/>
|
||||
<CDAT>0000-00-00</CDAT>
|
||||
<UNAM/>
|
||||
<UDAT>0000-00-00</UDAT>
|
||||
<VERN/>
|
||||
<LEVL/>
|
||||
<RSTAT/>
|
||||
<RMAND/>
|
||||
<RLOAD>E</RLOAD>
|
||||
<FIXPT/>
|
||||
<SSET/>
|
||||
<SDATE>0000-00-00</SDATE>
|
||||
<STIME/>
|
||||
<IDATE>0000-00-00</IDATE>
|
||||
<ITIME/>
|
||||
<LDBNAME/>
|
||||
<UCCHECK>X</UCCHECK>
|
||||
</PROGDIR>
|
||||
<TPOOL>
|
||||
<item>
|
||||
<ID>R</ID>
|
||||
<KEY/>
|
||||
<ENTRY>Include ZABAPGIT_PAGE</ENTRY>
|
||||
<LENGTH>21</LENGTH>
|
||||
<SPLIT/>
|
||||
</item>
|
||||
</TPOOL>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
52
src/zabapgit_page_branch_overview.prog.abap
Normal file
52
src/zabapgit_page_branch_overview.prog.abap
Normal file
|
@ -0,0 +1,52 @@
|
|||
*&---------------------------------------------------------------------*
|
||||
*& Include ZABAPGIT_PAGE_BRANCH_OVERVIEW
|
||||
*&---------------------------------------------------------------------*
|
||||
|
||||
CLASS lcl_gui_page_branch_overview DEFINITION FINAL INHERITING FROM lcl_gui_page_super.
|
||||
|
||||
PUBLIC SECTION.
|
||||
METHODS:
|
||||
constructor
|
||||
IMPORTING io_repo TYPE REF TO lcl_repo_online,
|
||||
lif_gui_page~render REDEFINITION.
|
||||
|
||||
PRIVATE SECTION.
|
||||
DATA: mo_repo TYPE REF TO lcl_repo_online.
|
||||
|
||||
ENDCLASS. "lcl_gui_page_explore DEFINITION
|
||||
|
||||
CLASS lcl_gui_page_branch_overview IMPLEMENTATION.
|
||||
|
||||
METHOD constructor.
|
||||
super->constructor( ).
|
||||
mo_repo = io_repo.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD lif_gui_page~render.
|
||||
|
||||
CREATE OBJECT ro_html.
|
||||
|
||||
ro_html->add( header( ) ).
|
||||
ro_html->add( title( 'BRANCH_OVERVIEW' ) ).
|
||||
|
||||
ro_html->add( 'todo, see https://github.com/larshp/abapGit/issues/272' ).
|
||||
ro_html->add( '<br>' ).
|
||||
ro_html->add( '<svg width="100" height="100">' ).
|
||||
ro_html->add( '<circle cx="50" cy="50" r="40" stroke="green" stroke-width="4" fill="yellow" />' ).
|
||||
ro_html->add( '</svg>' ).
|
||||
ro_html->add( '<br>' ).
|
||||
ro_html->add( '<canvas id="myCanvas" width="200" height="100" style="border:1px solid #000000;">' ).
|
||||
ro_html->add( '</canvas>' ).
|
||||
ro_html->add( '<script>' ).
|
||||
ro_html->add( 'var c = document.getElementById("myCanvas");' ).
|
||||
ro_html->add( 'var ctx = c.getContext("2d");' ).
|
||||
ro_html->add( 'ctx.moveTo(0,0);' ).
|
||||
ro_html->add( 'ctx.lineTo(200,100);' ).
|
||||
ro_html->add( 'ctx.stroke();' ).
|
||||
ro_html->add( '</script>' ).
|
||||
|
||||
ro_html->add( footer( ) ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
48
src/zabapgit_page_branch_overview.prog.xml
Normal file
48
src/zabapgit_page_branch_overview.prog.xml
Normal file
|
@ -0,0 +1,48 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_PROG" serializer_version="v1.0.0">
|
||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<PROGDIR>
|
||||
<NAME>ZABAPGIT_PAGE_BRANCH_OVERVIEW</NAME>
|
||||
<STATE>A</STATE>
|
||||
<SQLX/>
|
||||
<EDTX/>
|
||||
<VARCL>X</VARCL>
|
||||
<DBAPL/>
|
||||
<DBNA/>
|
||||
<CLAS/>
|
||||
<TYPE/>
|
||||
<OCCURS/>
|
||||
<SUBC>I</SUBC>
|
||||
<APPL/>
|
||||
<SECU/>
|
||||
<CNAM/>
|
||||
<CDAT>0000-00-00</CDAT>
|
||||
<UNAM/>
|
||||
<UDAT>0000-00-00</UDAT>
|
||||
<VERN/>
|
||||
<LEVL/>
|
||||
<RSTAT/>
|
||||
<RMAND/>
|
||||
<RLOAD>E</RLOAD>
|
||||
<FIXPT/>
|
||||
<SSET/>
|
||||
<SDATE>0000-00-00</SDATE>
|
||||
<STIME/>
|
||||
<IDATE>0000-00-00</IDATE>
|
||||
<ITIME/>
|
||||
<LDBNAME/>
|
||||
<UCCHECK>X</UCCHECK>
|
||||
</PROGDIR>
|
||||
<TPOOL>
|
||||
<item>
|
||||
<ID>R</ID>
|
||||
<KEY/>
|
||||
<ENTRY>Include ZABAPGIT_PAGE_BRANCH_OVERVIEW</ENTRY>
|
||||
<LENGTH>37</LENGTH>
|
||||
<SPLIT/>
|
||||
</item>
|
||||
</TPOOL>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
Loading…
Reference in New Issue
Block a user