new generated UI (#1472)

* update

* update

* update

* update

* update
This commit is contained in:
oblomov-dev 2024-10-02 15:06:22 +02:00 committed by GitHub
parent 7b47b3bba9
commit 03d1f83723
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
58 changed files with 23 additions and 2458 deletions

View File

@ -17,5 +17,5 @@ npm run start
#### Before PR #### Before PR
Transform UI5 App to stringified ABAP Transform UI5 App to stringified ABAP
``` ```
node trans/trans2abap.js npm run transform
``` ```

View File

@ -1,6 +1,6 @@
{ {
"global": { "global": {
"files": "/../../src/01/99/**/*.*" "files": "/../../src/01/03/**/*.*"
}, },
"dependencies": [ "dependencies": [
{ {

View File

@ -5,7 +5,7 @@ const xmlTemplate = require('./abapXMLTemplate');
// Define source and target directories // Define source and target directories
const sourceDir = path.join(__dirname, '../webapp'); const sourceDir = path.join(__dirname, '../webapp');
const targetDir = path.join(__dirname, '../../src/01/99'); const targetDir = path.join(__dirname, '../../src/01/03');
// Initial XML content with BOM // Initial XML content with BOM
const initialXMLContent = `\uFEFF<?xml version="1.0" encoding="utf-8"?> const initialXMLContent = `\uFEFF<?xml version="1.0" encoding="utf-8"?>
@ -111,7 +111,7 @@ async function main() {
console.log(`Source file content fetched successfully for ${file}.`); console.log(`Source file content fetched successfully for ${file}.`);
const className = generateClassName(file); const className = generateClassName(file);
const isSpecialFile = file.endsWith('.xml') || file.endsWith('.json') || file.endsWith('.html'); const isSpecialFile = file.endsWith('.xml') || file.endsWith('.json') || file.endsWith('.html')|| file.endsWith('.css');
const abapClassContent = formatAsAbapClass(sourceContent, className, isSpecialFile); const abapClassContent = formatAsAbapClass(sourceContent, className, isSpecialFile);
const targetFilePath = path.join(targetDir, `${className.toLowerCase()}.clas.abap`); const targetFilePath = path.join(targetDir, `${className.toLowerCase()}.clas.abap`);

View File

@ -3,7 +3,7 @@
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0"> <asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values> <asx:values>
<DEVC> <DEVC>
<CTEXT>abap2UI5 - app (manual)</CTEXT> <CTEXT>abap2UI5 - app (generated)</CTEXT>
</DEVC> </DEVC>
</asx:values> </asx:values>
</asx:abap> </asx:abap>

View File

@ -18,7 +18,7 @@ CLASS z2ui5_cl_app_style_css IMPLEMENTATION.
METHOD get. METHOD get.
result = `/* Enter your custom styles here */` && |\n| && result = `/* Enter your custom styles here */` &&
``. ``.
ENDMETHOD. ENDMETHOD.

View File

@ -1,54 +0,0 @@
CLASS z2ui5_cl_ui5_app_js DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
CLASS-METHODS get
RETURNING
VALUE(result) TYPE string.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS z2ui5_cl_ui5_app_js IMPLEMENTATION.
METHOD get.
result = `sap.ui.define(["sap/ui/core/mvc/Controller",` && |\n| &&
` "z2ui5/controller/View1.controller",` && |\n| &&
`], function (BaseController, Controller) {` && |\n| &&
` return BaseController.extend("z2ui5.controller.App", {` && |\n| &&
|\n| &&
` onInit: async function () {` && |\n| &&
|\n| &&
` z2ui5.oConfig.pathname = this.getView().getModel().sServiceUrl;` && |\n| &&
` if (z2ui5.oConfig.pathname == '_LOCAL_') { ` && |\n| &&
` z2ui5.oConfig.pathname = window.location.href; ` && |\n| &&
` }; ` && |\n| &&
` z2ui5.oController = new Controller();` && |\n| &&
` z2ui5.oController.setApp(this.getView().byId("app"));` && |\n| &&
|\n| &&
` z2ui5.oControllerNest = new Controller();` && |\n| &&
` z2ui5.oControllerNest2 = new Controller();` && |\n| &&
` z2ui5.oControllerPopup = new Controller();` && |\n| &&
` z2ui5.oControllerPopover = new Controller();` && |\n| &&
|\n| &&
` z2ui5.onBeforeRoundtrip = [];` && |\n| &&
` z2ui5.onAfterRendering = [];` && |\n| &&
` z2ui5.onBeforeEventFrontend = [];` && |\n| &&
` z2ui5.onAfterRoundtrip = [];` && |\n| &&
|\n| &&
` z2ui5.checkNestAfter = false;` && |\n| &&
|\n| &&
` }` && |\n| &&
` });` && |\n| &&
`});`.
ENDMETHOD.
ENDCLASS.

View File

@ -1,16 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>Z2UI5_CL_UI5_APP_JS</CLSNAME>
<LANGU>E</LANGU>
<DESCRIPT>abap2UI5 - App.js</DESCRIPT>
<STATE>1</STATE>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -1,32 +0,0 @@
CLASS z2ui5_cl_ui5_app_xml DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
CLASS-METHODS get
RETURNING
VALUE(result) TYPE string.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS z2ui5_cl_ui5_app_xml IMPLEMENTATION.
METHOD get.
result = |<mvc:View controllerName="z2ui5.controller.App"| &
| xmlns:html="http://www.w3.org/1999/xhtml"| &
| xmlns:mvc="sap.ui.core.mvc" displayBlock="true"| &
| xmlns="sap.m">| &
| <App id="app">| &
| </App>| &
|</mvc:View>|.
ENDMETHOD.
ENDCLASS.

View File

@ -1,16 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>Z2UI5_CL_UI5_APP_XML</CLSNAME>
<LANGU>E</LANGU>
<DESCRIPT>abap2UI5 - App.xml</DESCRIPT>
<STATE>1</STATE>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -1,745 +0,0 @@
CLASS z2ui5_cl_ui5_cc_js DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
CLASS-METHODS get
RETURNING
VALUE(result) TYPE string.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS z2ui5_cl_ui5_cc_js IMPLEMENTATION.
METHOD get.
result = `if (!z2ui5.Timer) {sap.ui.define("z2ui5/Timer" , [` && |\n| &&
` "sap/ui/core/Control"` && |\n| &&
`], (Control) => {` && |\n| &&
` "use strict";` && |\n| &&
|\n| &&
` return Control.extend("z2ui5.Timer", {` && |\n| &&
` metadata : {` && |\n| &&
` properties: {` && |\n| &&
` delayMS: {` && |\n| &&
` type: "string",` && |\n| &&
` defaultValue: ""` && |\n| &&
` },` && |\n| &&
` checkActive: {` && |\n| &&
` type: "boolean",` && |\n| &&
` defaultValue: true` && |\n| &&
` },` && |\n| &&
` checkRepeat: {` && |\n| &&
` type: "boolean",` && |\n| &&
` defaultValue: false` && |\n| &&
` },` && |\n| &&
` },` && |\n| &&
` events: {` && |\n| &&
` "finished": { ` && |\n| &&
` allowPreventDefault: true,` && |\n| &&
` parameters: {},` && |\n| &&
` }` && |\n| &&
` }` && |\n| &&
` },` && |\n| &&
` onAfterRendering() {` && |\n| &&
` },` && |\n| &&
` delayedCall( oControl){` && |\n| &&
` ` && |\n| &&
` if ( oControl.getProperty("checkActive") == false ){ return; }` && |\n| &&
` setTimeout((oControl) => {` && |\n| &&
` oControl.setProperty( "checkActive", false )` && |\n| &&
` oControl.fireFinished();` && |\n| &&
` if ( oControl.getProperty( "checkRepeat" ) ) { oControl.delayedCall( oControl ); } ` && |\n| &&
` }, parseInt( oControl.getProperty("delayMS") ), oControl );` && |\n| &&
` },` && |\n| &&
` renderer(oRm, oControl) {` && |\n| &&
` oControl.delayedCall( oControl );` && |\n| &&
` }` && |\n| &&
` });` && |\n| &&
`}); }` && |\n| &&
`sap.ui.define("z2ui5/Focus", ["sap/ui/core/Control",], (Control) => {` && |\n| &&
` "use strict";` && |\n| &&
` return Control.extend("z2ui5.Focus", {` && |\n| &&
` metadata: {` && |\n| &&
` properties: {` && |\n| &&
` setUpdate: {` && |\n| &&
` type: "boolean",` && |\n| &&
` defaultValue: true` && |\n| &&
` },` && |\n| &&
` focusId: {` && |\n| &&
` type: "string"` && |\n| &&
` },` && |\n| &&
` selectionStart: {` && |\n| &&
` type: "string",` && |\n| &&
` defaultValue: "0"` && |\n| &&
` },` && |\n| &&
` selectionEnd: {` && |\n| &&
` type: "string",` && |\n| &&
` defaultValue: "0"` && |\n| &&
` },` && |\n| &&
` }` && |\n| &&
` },` && |\n| &&
` init() { },` && |\n| &&
` setFocusId(val) {` && |\n| &&
` try {` && |\n| &&
` this.setProperty("focusId", val);` && |\n| &&
` var oElement = z2ui5.oView.byId(val);` && |\n| &&
` var oFocus = oElement.getFocusInfo();` && |\n| &&
` oElement.applyFocusInfo(oFocus);` && |\n| &&
` } catch (e) { }` && |\n| &&
` },` && |\n| &&
` renderer(oRm, oControl) {` && |\n| &&
` if (!oControl.getProperty("setUpdate")) {` && |\n| &&
` return;` && |\n| &&
` }` && |\n| &&
` oControl.setProperty("setUpdate", false);` && |\n| &&
` setTimeout((oControl) => {` && |\n| &&
` var oElement = z2ui5.oView.byId(oControl.getProperty("focusId"));` && |\n| &&
` var oFocus = oElement.getFocusInfo();` && |\n| &&
` oFocus.selectionStart = parseInt(oControl.getProperty("selectionStart"));` && |\n| &&
` oFocus.selectionEnd = parseInt(oControl.getProperty("selectionEnd"));` && |\n| &&
` oElement.applyFocusInfo(oFocus);` && |\n| &&
` }` && |\n| &&
` , 100, oControl);` && |\n| &&
` }` && |\n| &&
` });` && |\n| &&
`}` && |\n| &&
`);` && |\n| &&
|\n| &&
`sap.ui.define("z2ui5/Title", ["sap/ui/core/Control"], (Control) => {` && |\n| &&
` "use strict";` && |\n| &&
` return Control.extend("z2ui5.Title", {` && |\n| &&
` metadata: {` && |\n| &&
` properties: {` && |\n| &&
` title: {` && |\n| &&
` type: "string"` && |\n| &&
` },` && |\n| &&
` }` && |\n| &&
` },` && |\n| &&
` setTitle(val) {` && |\n| &&
` this.setProperty("title", val);` && |\n| &&
` document.title = val;` && |\n| &&
` },` && |\n| &&
` renderer(oRm, oControl) { }` && |\n| &&
` });` && |\n| &&
`}` && |\n| &&
`);` && |\n| &&
`sap.ui.define("z2ui5/LPTitle", ["sap/ui/core/Control"], (Control) => {` && |\n| &&
` "use strict";` && |\n| &&
` return Control.extend("z2ui5.LPTitle", {` && |\n| &&
` metadata: {` && |\n| &&
` properties: {` && |\n| &&
` title: {` && |\n| &&
` type: "string"` && |\n| &&
` },` && |\n| &&
` }` && |\n| &&
` },` && |\n| &&
` setTitle(val) {` && |\n| &&
` try {` && |\n| &&
` this.setProperty("title", val);` && |\n| &&
` z2ui5.oLaunchpadService.setTitle(val);` && |\n| &&
` } catch (e) {` && |\n| &&
` console.error("Launchpad Service to set Title not found");` && |\n| &&
` }` && |\n| &&
` },` && |\n| &&
` renderer(oRm, oControl) { }` && |\n| &&
` });` && |\n| &&
`}` && |\n| &&
`);` && |\n| &&
`sap.ui.define("z2ui5/History", ["sap/ui/core/Control"], (Control) => {` && |\n| &&
` "use strict";` && |\n| &&
` return Control.extend("z2ui5.History", {` && |\n| &&
` metadata: {` && |\n| &&
` properties: {` && |\n| &&
` search: {` && |\n| &&
` type: "string"` && |\n| &&
` },` && |\n| &&
` }` && |\n| &&
` },` && |\n| &&
` setSearch(val) {` && |\n| &&
` this.setProperty("search", val);` && |\n| &&
` history.replaceState(null, null, window.location.pathname + val);` && |\n| &&
` },` && |\n| &&
` renderer(oRm, oControl) { }` && |\n| &&
` });` && |\n| &&
`}` && |\n| &&
`);` && |\n| &&
`sap.ui.define("z2ui5/Scrolling", ["sap/ui/core/Control"], (Control) => {` && |\n| &&
` "use strict";` && |\n| &&
|\n| &&
` return Control.extend("z2ui5.Scrolling", {` && |\n| &&
` metadata: {` && |\n| &&
` properties: {` && |\n| &&
` setUpdate: {` && |\n| &&
` type: "boolean",` && |\n| &&
` defaultValue: true` && |\n| &&
` },` && |\n| &&
` items: {` && |\n| &&
` type: "Array"` && |\n| &&
` }` && |\n| &&
` }` && |\n| &&
` },` && |\n| &&
|\n| &&
` setBackend() {` && |\n| &&
` const items = this.getProperty("items");` && |\n| &&
|\n| &&
` if (items) {` && |\n| &&
` items.forEach(item => {` && |\n| &&
` try {` && |\n| &&
` const scrollDelegate = z2ui5.oView.byId(item.N).getScrollDelegate();` && |\n| &&
` item.V = scrollDelegate ? scrollDelegate.getScrollTop() : 0;` && |\n| &&
` } catch {` && |\n| &&
` try {` && |\n| &&
` const element = document.getElementById(``${z2ui5.oView.byId(item.N).getId()}-inner``);` && |\n| &&
` item.V = element ? element.scrollTop : 0;` && |\n| &&
` } catch {}` && |\n| &&
` }` && |\n| &&
` });` && |\n| &&
` }` && |\n| &&
` },` && |\n| &&
|\n| &&
` init() {` && |\n| &&
` z2ui5.onBeforeRoundtrip.push(this.setBackend.bind(this));` && |\n| &&
` },` && |\n| &&
|\n| &&
` renderer(oRm, oControl) {` && |\n| &&
` if (!oControl.getProperty("setUpdate")) return;` && |\n| &&
|\n| &&
` oControl.setProperty("setUpdate", false);` && |\n| &&
` const items = oControl.getProperty("items");` && |\n| &&
` if (!items) return;` && |\n| &&
|\n| &&
` setTimeout(() => {` && |\n| &&
` items.forEach(item => {` && |\n| &&
` try {` && |\n| &&
` z2ui5.oView.byId(item.N).scrollTo(item.V);` && |\n| &&
` } catch {` && |\n| &&
` try {` && |\n| &&
` const element = document.getElementById(``${z2ui5.oView.byId(item.N).getId()}-inner``);` && |\n| &&
` if (element) element.scrollTop = item.V;` && |\n| &&
` } catch {` && |\n| &&
` setTimeout(() => {` && |\n| &&
` z2ui5.oView.byId(item.N).scrollTo(item.V);` && |\n| &&
` }, 1);` && |\n| &&
` }` && |\n| &&
` }` && |\n| &&
` });` && |\n| &&
` }, 100);` && |\n| &&
` }` && |\n| &&
` });` && |\n| &&
`});` && |\n| &&
`sap.ui.define("z2ui5/Info", ["sap/ui/core/Control", "sap/ui/VersionInfo", "sap/ui/Device"], (Control, VersionInfo, Device) => {` && |\n| &&
` "use strict";` && |\n| &&
|\n| &&
` return Control.extend("z2ui5.Info", {` && |\n| &&
` metadata: {` && |\n| &&
` properties: {` && |\n| &&
` ui5_version: {` && |\n| &&
` type: "string"` && |\n| &&
` },` && |\n| &&
` device_phone: {` && |\n| &&
` type: "string"` && |\n| &&
` },` && |\n| &&
` device_desktop: {` && |\n| &&
` type: "string"` && |\n| &&
` },` && |\n| &&
` device_tablet: {` && |\n| &&
` type: "string"` && |\n| &&
` },` && |\n| &&
` device_combi: {` && |\n| &&
` type: "string"` && |\n| &&
` },` && |\n| &&
` device_height: {` && |\n| &&
` type: "string"` && |\n| &&
` },` && |\n| &&
` device_width: {` && |\n| &&
` type: "string"` && |\n| &&
` },` && |\n| &&
` ui5_theme: {` && |\n| &&
` type: "string"` && |\n| &&
` },` && |\n| &&
` device_os: {` && |\n| &&
` type: "string"` && |\n| &&
` },` && |\n| &&
` device_systemtype: {` && |\n| &&
` type: "string"` && |\n| &&
` },` && |\n| &&
` device_browser: {` && |\n| &&
` type: "string"` && |\n| &&
` },` && |\n| &&
` },` && |\n| &&
` events: {` && |\n| &&
` "finished": {` && |\n| &&
` allowPreventDefault: true,` && |\n| &&
` parameters: {},` && |\n| &&
` }` && |\n| &&
` }` && |\n| &&
` },` && |\n| &&
|\n| &&
` init() { },` && |\n| &&
|\n| &&
` onAfterRendering() {` && |\n| &&
` },` && |\n| &&
|\n| &&
` async renderer(oRm, oControl) {` && |\n| &&
|\n| &&
` debugger;` && |\n| &&
` let oDevice = z2ui5.oView.getModel("device").oData;` && |\n| &&
` oControl.setProperty("device_phone", oDevice.system.phone);` && |\n| &&
` oControl.setProperty("device_desktop", oDevice.system.desktop);` && |\n| &&
` oControl.setProperty("device_tablet", oDevice.system.tablet);` && |\n| &&
` oControl.setProperty("device_combi", oDevice.system.combi);` && |\n| &&
` oControl.setProperty("device_height", oDevice.resize.height);` && |\n| &&
` oControl.setProperty("device_width", oDevice.resize.width);` && |\n| &&
` oControl.setProperty("device_os", oDevice.os.name);` && |\n| &&
` oControl.setProperty("device_browser", oDevice.browser.name);` && |\n| &&
` oControl.fireFinished();` && |\n| &&
|\n| &&
` }` && |\n| &&
` });` && |\n| &&
`}` && |\n| &&
`);` && |\n| &&
|\n| &&
`sap.ui.define("z2ui5/Geolocation", ["sap/ui/core/Control"], (Control) => {` && |\n| &&
` "use strict";` && |\n| &&
|\n| &&
` return Control.extend("z2ui5.Geolocation", {` && |\n| &&
` metadata: {` && |\n| &&
` properties: {` && |\n| &&
` longitude: {` && |\n| &&
` type: "string",` && |\n| &&
` defaultValue: ""` && |\n| &&
` },` && |\n| &&
` latitude: {` && |\n| &&
` type: "string",` && |\n| &&
` defaultValue: ""` && |\n| &&
` },` && |\n| &&
` altitude: {` && |\n| &&
` type: "string",` && |\n| &&
` defaultValue: ""` && |\n| &&
` },` && |\n| &&
` accuracy: {` && |\n| &&
` type: "string",` && |\n| &&
` defaultValue: ""` && |\n| &&
` },` && |\n| &&
` altitudeAccuracy: {` && |\n| &&
` type: "string",` && |\n| &&
` defaultValue: ""` && |\n| &&
` },` && |\n| &&
` speed: {` && |\n| &&
` type: "string",` && |\n| &&
` defaultValue: false` && |\n| &&
` },` && |\n| &&
` heading: {` && |\n| &&
` type: "string",` && |\n| &&
` defaultValue: false` && |\n| &&
` },` && |\n| &&
` enableHighAccuracy: {` && |\n| &&
` type: "boolean",` && |\n| &&
` defaultValue: false` && |\n| &&
` },` && |\n| &&
` timeout: {` && |\n| &&
` type: "string",` && |\n| &&
` defaultValue: "5000"` && |\n| &&
` }` && |\n| &&
` },` && |\n| &&
` events: {` && |\n| &&
` "finished": {` && |\n| &&
` allowPreventDefault: true,` && |\n| &&
` parameters: {},` && |\n| &&
` }` && |\n| &&
` }` && |\n| &&
` },` && |\n| &&
|\n| &&
` callbackPosition(position) {` && |\n| &&
|\n| &&
` var test = position.coords.longitude` && |\n| &&
` this.setProperty("longitude", position.coords.longitude, true);` && |\n| &&
` this.setProperty("latitude", position.coords.latitude, true);` && |\n| &&
` this.setProperty("altitude", position.coords.altitude, true);` && |\n| &&
` this.setProperty("accuracy", position.coords.accuracy, true);` && |\n| &&
` this.setProperty("altitudeAccuracy", position.coords.altitudeAccuracy, true);` && |\n| &&
` this.setProperty("speed", position.coords.speed, true);` && |\n| &&
` this.setProperty("heading", position.coords.heading, true);` && |\n| &&
` this.fireFinished();` && |\n| &&
` //this.getParent().getParent().getModel().refresh();` && |\n| &&
|\n| &&
` },` && |\n| &&
|\n| &&
` async init() {` && |\n| &&
|\n| &&
` navigator.geolocation.getCurrentPosition(this.callbackPosition.bind(this));` && |\n| &&
` //navigator.geolocation.watchPosition(this.callbackPosition.bind(this));` && |\n| &&
|\n| &&
` },` && |\n| &&
|\n| &&
` exit() {//clearWatch` && |\n| &&
` },` && |\n| &&
|\n| &&
` onAfterRendering() {` && |\n| &&
` },` && |\n| &&
|\n| &&
` renderer(oRm, oControl) {` && |\n| &&
` }` && |\n| &&
` });` && |\n| &&
`}` && |\n| &&
`);` && |\n| &&
|\n| &&
`sap.ui.define("z2ui5/FileUploader", ["sap/ui/core/Control", "sap/m/Button", "sap/ui/unified/FileUploader", "sap/m/HBox"], function (Control, Button, FileUploader, HBox) {` && |\n| &&
` "use strict";` && |\n| &&
|\n| &&
` return Control.extend("z2ui5.FileUploader", {` && |\n| &&
|\n| &&
` metadata: {` && |\n| &&
` properties: {` && |\n| &&
` value: {` && |\n| &&
` type: "string",` && |\n| &&
` defaultValue: ""` && |\n| &&
` },` && |\n| &&
` path: {` && |\n| &&
` type: "string",` && |\n| &&
` defaultValue: ""` && |\n| &&
` },` && |\n| &&
` tooltip: {` && |\n| &&
` type: "string",` && |\n| &&
` defaultValue: ""` && |\n| &&
` },` && |\n| &&
` fileType: {` && |\n| &&
` type: "string",` && |\n| &&
` defaultValue: ""` && |\n| &&
` },` && |\n| &&
` placeholder: {` && |\n| &&
` type: "string",` && |\n| &&
` defaultValue: ""` && |\n| &&
` },` && |\n| &&
` buttonText: {` && |\n| &&
` type: "string",` && |\n| &&
` defaultValue: ""` && |\n| &&
` },` && |\n| &&
` style: {` && |\n| &&
` type: "string",` && |\n| &&
` defaultValue: ""` && |\n| &&
` },` && |\n| &&
` uploadButtonText: {` && |\n| &&
` type: "string",` && |\n| &&
` defaultValue: "Upload"` && |\n| &&
` },` && |\n| &&
` enabled: {` && |\n| &&
` type: "boolean",` && |\n| &&
` defaultValue: true` && |\n| &&
` },` && |\n| &&
` icon: {` && |\n| &&
` type: "string",` && |\n| &&
` defaultValue: "sap-icon://browse-folder"` && |\n| &&
` },` && |\n| &&
` iconOnly: {` && |\n| &&
` type: "boolean",` && |\n| &&
` defaultValue: false` && |\n| &&
` },` && |\n| &&
` buttonOnly: {` && |\n| &&
` type: "boolean",` && |\n| &&
` defaultValue: false` && |\n| &&
` },` && |\n| &&
` multiple: {` && |\n| &&
` type: "boolean",` && |\n| &&
` defaultValue: false` && |\n| &&
` },` && |\n| &&
` visible: {` && |\n| &&
` type: "boolean",` && |\n| &&
` defaultValue: true` && |\n| &&
` },` && |\n| &&
` checkDirectUpload: {` && |\n| &&
` type: "boolean",` && |\n| &&
` defaultValue: false` && |\n| &&
` }` && |\n| &&
` },` && |\n| &&
|\n| &&
` aggregations: {},` && |\n| &&
` events: {` && |\n| &&
` "upload": {` && |\n| &&
` allowPreventDefault: true,` && |\n| &&
` parameters: {}` && |\n| &&
` }` && |\n| &&
` },` && |\n| &&
` renderer: null` && |\n| &&
` },` && |\n| &&
|\n| &&
` renderer: function (oRm, oControl) {` && |\n| &&
|\n| &&
` if (!oControl.getProperty("checkDirectUpload")) {` && |\n| &&
` oControl.oUploadButton = new Button({` && |\n| &&
` text: oControl.getProperty("uploadButtonText"),` && |\n| &&
` enabled: oControl.getProperty("path") !== "",` && |\n| &&
` press: function (oEvent) {` && |\n| &&
|\n| &&
` this.setProperty("path", this.oFileUploader.getProperty("value"));` && |\n| &&
|\n| &&
` var file = z2ui5.oUpload.oFileUpload.files[0];` && |\n| &&
` var reader = new FileReader();` && |\n| &&
|\n| &&
` reader.onload = function (evt) {` && |\n| &&
` var vContent = evt.currentTarget.result;` && |\n| &&
` this.setProperty("value", vContent);` && |\n| &&
` this.fireUpload();` && |\n| &&
` //this.getView().byId('picture' ).getDomRef().src = vContent;` && |\n| &&
` }` && |\n| &&
` .bind(this)` && |\n| &&
|\n| &&
` reader.readAsDataURL(file);` && |\n| &&
` }` && |\n| &&
` .bind(oControl)` && |\n| &&
` });` && |\n| &&
` }` && |\n| &&
|\n| &&
` oControl.oFileUploader = new FileUploader({` && |\n| &&
` icon: oControl.getProperty("icon"),` && |\n| &&
` iconOnly: oControl.getProperty("iconOnly"),` && |\n| &&
` buttonOnly: oControl.getProperty("buttonOnly"),` && |\n| &&
` buttonText: oControl.getProperty("buttonText"),` && |\n| &&
` style: oControl.getProperty("style"),` && |\n| &&
` fileType: oControl.getProperty("fileType"),` && |\n| &&
` visible: oControl.getProperty("visible"),` && |\n| &&
` uploadOnChange: true,` && |\n| &&
` enabled: oControl.getProperty("enabled"),` && |\n| &&
` value: oControl.getProperty("path"),` && |\n| &&
` placeholder: oControl.getProperty("placeholder"),` && |\n| &&
` change: function (oEvent) {` && |\n| &&
` if (oControl.getProperty("checkDirectUpload")) {` && |\n| &&
` return;` && |\n| &&
` }` && |\n| &&
|\n| &&
` var value = oEvent.getSource().getProperty("value");` && |\n| &&
` this.setProperty("path", value);` && |\n| &&
` if (value) {` && |\n| &&
` this.oUploadButton.setEnabled();` && |\n| &&
` } else {` && |\n| &&
` this.oUploadButton.setEnabled(false);` && |\n| &&
` }` && |\n| &&
` this.oUploadButton.rerender();` && |\n| &&
` z2ui5.oUpload = oEvent.oSource;` && |\n| &&
` }` && |\n| &&
` .bind(oControl),` && |\n| &&
` uploadComplete: function (oEvent) {` && |\n| &&
` if (!oControl.getProperty("checkDirectUpload")) {` && |\n| &&
` return;` && |\n| &&
` }` && |\n| &&
|\n| &&
` var value = oEvent.getSource().getProperty("value");` && |\n| &&
` this.setProperty("path", value);` && |\n| &&
|\n| &&
` var file = oEvent.oSource.oFileUpload.files[0];` && |\n| &&
` var reader = new FileReader();` && |\n| &&
|\n| &&
` reader.onload = function (evt) {` && |\n| &&
` var vContent = evt.currentTarget.result;` && |\n| &&
` this.setProperty("value", vContent);` && |\n| &&
` this.fireUpload();` && |\n| &&
` }` && |\n| &&
` .bind(this)` && |\n| &&
|\n| &&
` reader.readAsDataURL(file);` && |\n| &&
` }` && |\n| &&
` .bind(oControl)` && |\n| &&
` });` && |\n| &&
|\n| &&
` var hbox = new HBox();` && |\n| &&
` hbox.addItem(oControl.oFileUploader);` && |\n| &&
` hbox.addItem(oControl.oUploadButton);` && |\n| &&
` oRm.renderControl(hbox);` && |\n| &&
` }` && |\n| &&
` });` && |\n| &&
`});` && |\n| &&
|\n|.
result = result && `sap.ui.define("z2ui5/MultiInputExt", ["sap/ui/core/Control", "sap/m/Token", "sap/ui/core/Core", "sap/ui/core/Element"], (Control, Token, Core, Element) => {` && |\n| &&
` "use strict";` && |\n| &&
|\n| &&
` return Control.extend("z2ui5.MultiInputExt", {` && |\n| &&
` metadata: {` && |\n| &&
` properties: {` && |\n| &&
` MultiInputId: {` && |\n| &&
` type: "String"` && |\n| &&
` },` && |\n| &&
` MultiInputName: {` && |\n| &&
` type: "String"` && |\n| &&
` },` && |\n| &&
` addedTokens: {` && |\n| &&
` type: "Array"` && |\n| &&
` },` && |\n| &&
` checkInit: {` && |\n| &&
` type: "Boolean",` && |\n| &&
` defaultValue: false` && |\n| &&
` },` && |\n| &&
` removedTokens: {` && |\n| &&
` type: "Array"` && |\n| &&
` }` && |\n| &&
` },` && |\n| &&
` events: {` && |\n| &&
` "change": {` && |\n| &&
` allowPreventDefault: true,` && |\n| &&
` parameters: {}` && |\n| &&
` }` && |\n| &&
` },` && |\n| &&
` },` && |\n| &&
|\n| &&
` init() {` && |\n| &&
` z2ui5.onAfterRendering.push(this.setControl.bind(this));` && |\n| &&
` },` && |\n| &&
|\n| &&
` onTokenUpdate(oEvent) {` && |\n| &&
` this.setProperty("addedTokens", []);` && |\n| &&
` this.setProperty("removedTokens", []);` && |\n| &&
|\n| &&
` if (oEvent.mParameters.type == "removed") {` && |\n| &&
` let removedTokens = [];` && |\n| &&
` oEvent.mParameters.removedTokens.forEach((item) => {` && |\n| &&
` removedTokens.push({` && |\n| &&
` KEY: item.getKey(),` && |\n| &&
` TEXT: item.getText()` && |\n| &&
` });` && |\n| &&
` }` && |\n| &&
` );` && |\n| &&
` this.setProperty("removedTokens", removedTokens);` && |\n| &&
` } else {` && |\n| &&
` let addedTokens = [];` && |\n| &&
` oEvent.mParameters.addedTokens.forEach((item) => {` && |\n| &&
` addedTokens.push({` && |\n| &&
` KEY: item.getKey(),` && |\n| &&
` TEXT: item.getText()` && |\n| &&
` });` && |\n| &&
` }` && |\n| &&
` );` && |\n| &&
` this.setProperty("addedTokens", addedTokens);` && |\n| &&
` }` && |\n| &&
` this.fireChange();` && |\n| &&
` },` && |\n| &&
` renderer(oRm, oControl) {` && |\n| &&
` z2ui5.onAfterRendering.push(this.setControl.bind(oControl));` && |\n| &&
` },` && |\n| &&
` setControl() {` && |\n| &&
` let table = z2ui5.oView.byId(this.getProperty("MultiInputId"));` && |\n| &&
` if (!table) {` && |\n| &&
` try {` && |\n| &&
` // table = sap.ui.getCore().byId(document.getElementsByName(this.getProperty("MultiInputName"))[0].id.replace('-inner', ''));` && |\n| &&
` // table = Core.byId(Element.getElementsByName(this.getProperty("MultiInputName"))[0].id.replace('-inner', ''));` && |\n| &&
` table = Core.byId(document.getElementsByName(this.getProperty("MultiInputName"))[0].id.replace('-inner', ''));` && |\n| &&
|\n| &&
` } catch (e) {` && |\n| &&
` return;` && |\n| &&
` }` && |\n| &&
` }` && |\n| &&
` if (!table) {` && |\n| &&
` return;` && |\n| &&
` }` && |\n| &&
` if (this.getProperty("checkInit") == true) {` && |\n| &&
` return;` && |\n| &&
` }` && |\n| &&
` this.setProperty("checkInit", true);` && |\n| &&
` table.attachTokenUpdate(this.onTokenUpdate.bind(this));` && |\n| &&
` var fnValidator = function (args) {` && |\n| &&
` var text = args.text;` && |\n| &&
` return new Token({` && |\n| &&
` key: text,` && |\n| &&
` text: text` && |\n| &&
` });` && |\n| &&
` };` && |\n| &&
` table.addValidator(fnValidator);` && |\n| &&
` },` && |\n| &&
` renderer(oRM, oControl) { }` && |\n| &&
` });` && |\n| &&
`}` && |\n| &&
`);` && |\n| &&
|\n| &&
`sap.ui.define("z2ui5/UITableExt", ["sap/ui/core/Control"], (Control) => {` && |\n| &&
` "use strict";` && |\n| &&
|\n| &&
` return Control.extend("z2ui5.UITableExt", {` && |\n| &&
` metadata: {` && |\n| &&
` properties: {` && |\n| &&
` tableId: {` && |\n| &&
` type: "String"` && |\n| &&
` }` && |\n| &&
` }` && |\n| &&
` },` && |\n| &&
|\n| &&
` init() {` && |\n| &&
` z2ui5.onBeforeRoundtrip.push(this.readFilter.bind(this));` && |\n| &&
` z2ui5.onAfterRoundtrip.push(this.setFilter.bind(this));` && |\n| &&
` },` && |\n| &&
|\n| &&
` readFilter() {` && |\n| &&
` try {` && |\n| &&
` let id = this.getProperty("tableId");` && |\n| &&
` let oTable = z2ui5.oView.byId(id);` && |\n| &&
` this.aFilters = oTable.getBinding().aFilters;` && |\n| &&
` } catch (e) { }` && |\n| &&
` ;` && |\n| &&
` },` && |\n| &&
|\n| &&
` setFilter() {` && |\n| &&
` try {` && |\n| &&
` setTimeout((aFilters) => {` && |\n| &&
` let id = this.getProperty("tableId");` && |\n| &&
` let oTable = z2ui5.oView.byId(id);` && |\n| &&
` oTable.getBinding().filter(aFilters);` && |\n| &&
` }` && |\n| &&
` , 100, this.aFilters);` && |\n| &&
` } catch (e) { }` && |\n| &&
` ;` && |\n| &&
` },` && |\n| &&
|\n| &&
` renderer(oRM, oControl) { }` && |\n| &&
` });` && |\n| &&
`}` && |\n| &&
`);` && |\n| &&
|\n| &&
`sap.ui.define("z2ui5/Util", [], () => {` && |\n| &&
` "use strict";` && |\n| &&
` return {` && |\n| &&
` DateCreateObject: (s) => new Date(s),` && |\n| &&
` DateAbapTimestampToDate: (sTimestamp) => new sap.gantt.misc.Format.abapTimestampToDate(sTimestamp),` && |\n| &&
` DateAbapDateToDateObject: (d) => new Date(d.slice(0, 4), parseInt(d.slice(4, 6)) - 1, d.slice(6, 8)),` && |\n| &&
` DateAbapDateTimeToDateObject: (d, t = '000000') => new Date(d.slice(0, 4), parseInt(d.slice(4, 6)) - 1, d.slice(6, 8), t.slice(0, 2), t.slice(2, 4), t.slice(4, 6)),` && |\n| &&
` };` && |\n| &&
`}` && |\n| &&
`);` && |\n| &&
`sap.ui.require(["z2ui5/Util"], (Util) => {` && |\n| &&
` z2ui5.Util = Util;` && |\n| &&
`}` && |\n| &&
`);` && |\n| &&
|\n| &&
`sap.ui.define("z2ui5/Dirty", ["sap/ui/core/Control", "sap/ushell/Container"], (Control, Container) => {` && |\n| &&
` "use strict";` && |\n| &&
` return Control.extend("z2ui5.Dirty", {` && |\n| &&
` metadata: {` && |\n| &&
` properties: {` && |\n| &&
` isDirty: {` && |\n| &&
` type: "string"` && |\n| &&
` },` && |\n| &&
` }` && |\n| &&
` },` && |\n| &&
` setIsDirty(val) {` && |\n| &&
` if (Container) {` && |\n| &&
` Container.setDirtyFlag(val);` && |\n| &&
` } else {` && |\n| &&
` window.onbeforeunload = function (e) {` && |\n| &&
` if (val) {` && |\n| &&
` e.preventDefault();` && |\n| &&
` }` && |\n| &&
` }` && |\n| &&
` }` && |\n| &&
` },` && |\n| &&
` renderer(oRm, oControl) { }` && |\n| &&
` });` && |\n| &&
`}` && |\n| &&
`);`.
ENDMETHOD.
ENDCLASS.

View File

@ -1,16 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>Z2UI5_CL_UI5_CC_JS</CLSNAME>
<LANGU>E</LANGU>
<DESCRIPT>abap2UI5 - Custom Controls</DESCRIPT>
<STATE>1</STATE>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -1,85 +0,0 @@
CLASS z2ui5_cl_ui5_component_js DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
CLASS-METHODS get
RETURNING
VALUE(result) TYPE string.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS z2ui5_cl_ui5_component_js IMPLEMENTATION.
METHOD get.
result = `sap.ui.define(["sap/ui/core/UIComponent", "z2ui5/model/models",` && |\n| &&
` "z2ui5/cc/DebugTool","z2ui5/cc/Server", "sap/base/Log","sap/ui/VersionInfo"` && |\n| &&
` ` && |\n| &&
` ], function (UIComponent, models, DebugTool, Server, Log, VersionInfo) {` && |\n| &&
` return UIComponent.extend("z2ui5.Component", {` && |\n| &&
` metadata: {` && |\n| &&
` manifest: "json"` && |\n| &&
` },` && |\n| &&
` init: async function () {` && |\n| &&
|\n| &&
` UIComponent.prototype.init.apply(this, arguments);` && |\n| &&
|\n| &&
` this.getRouter().initialize();` && |\n| &&
` z2ui5.oRouter = this.getRouter();` && |\n| &&
` this.setModel(models.createDeviceModel(), "device");` && |\n| &&
` this._oLogger = Log.getLogger("abap2UI5");` && |\n| &&
|\n| &&
` z2ui5.oConfig = {};` && |\n| &&
` z2ui5.oConfig.ComponentData = this.getComponentData();` && |\n| &&
` ` && |\n| &&
` try { ` && |\n| &&
` z2ui5.oLaunchpadService = await this.getService("ShellUIService"); ` && |\n| &&
` } catch (e) {} ` && |\n| &&
` ` && |\n| &&
` let oVersionInfo = await VersionInfo.load();` && |\n| &&
` z2ui5.oConfig.UI5VersionInfo = {` && |\n| &&
` version : oVersionInfo.version,` && |\n| &&
` buildTimestamp : oVersionInfo.buildTimestamp,` && |\n| &&
` gav : oVersionInfo.gav,` && |\n| &&
` }` && |\n| &&
` ` && |\n| &&
` if (/iPad|iPhone/.test(navigator.platform)) {` && |\n| &&
` window.addEventListener("__pagehide", this.__pagehide.bind(this));` && |\n| &&
` } else {` && |\n| &&
` window.addEventListener("__beforeunload", this.__beforeunload.bind(this));` && |\n| &&
` }` && |\n| &&
|\n| &&
` document.addEventListener("keydown", function (zEvent) {` && |\n| &&
` if (zEvent?.key === "F12") {` && |\n| &&
` new z2ui5.cc.DebugTool().show();` && |\n| &&
` }` && |\n| &&
` });` && |\n| &&
` },` && |\n| &&
|\n| &&
` __beforeunload: function () {` && |\n| &&
` window.removeEventListener("__beforeunload", this.__beforeunload.bind(this));` && |\n| &&
` this.destroy();` && |\n| &&
` },` && |\n| &&
` __pagehide: function () {` && |\n| &&
` window.removeEventListener("__pagehide", this.__pagehide.bind(this));` && |\n| &&
` this.destroy();` && |\n| &&
` },` && |\n| &&
|\n| &&
` exit: function () {` && |\n| &&
` Server.endSession();` && |\n| &&
` if (UIComponent.prototype.exit)` && |\n| &&
` UIComponent.prototype.exit.apply(this, arguments);` && |\n| &&
` },` && |\n| &&
` });` && |\n| &&
`});`.
ENDMETHOD.
ENDCLASS.

View File

@ -1,16 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>Z2UI5_CL_UI5_COMPONENT_JS</CLSNAME>
<LANGU>E</LANGU>
<DESCRIPT>abap2UI5 - component.js</DESCRIPT>
<STATE>1</STATE>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -1,167 +0,0 @@
CLASS z2ui5_cl_ui5_debugtool_js DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
CLASS-METHODS get
RETURNING
VALUE(result) TYPE string.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS z2ui5_cl_ui5_debugtool_js IMPLEMENTATION.
METHOD get.
result = `sap.ui.define(["sap/ui/core/Control", "sap/ui/core/Fragment", "sap/ui/model/json/JSONModel"], (Control, Fragment, JSONModel) => {` && |\n| &&
` "use strict";` && |\n| &&
|\n| &&
` return Control.extend("z2ui5.cc.DebugTool", {` && |\n| &&
|\n| &&
`prettifyXml: function(sourceXml) {` && |\n| &&
` const xmlDoc = new DOMParser().parseFromString(sourceXml, 'application/xml');` && |\n| &&
` var sParse = ``&lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;` && |\n| &&
` &lt;xsl:strip-space elements="*" /&gt;` && |\n| &&
` &lt;xsl:template match="para[content-style][not(text())]"&gt;` && |\n| &&
` &lt;xsl:value-of select="normalize-space(.)" /&gt;` && |\n| &&
` &lt;/xsl:template&gt;` && |\n| &&
` &lt;xsl:template match="node()|@*"&gt;` && |\n| &&
` &lt;xsl:copy&gt;` && |\n| &&
` &lt;xsl:apply-templates select="node()|@*" /&gt;` && |\n| &&
` &lt;/xsl:copy&gt;` && |\n| &&
` &lt;/xsl:template&gt;` && |\n| &&
` &lt;xsl:output indent="yes" /&gt;` && |\n| &&
` &lt;/xsl:stylesheet&gt;``;` && |\n| &&
` sParse = sParse.replace(/&gt;/g, unescape("%3E")).replace(/&lt;/g, unescape("%3C"));` && |\n| &&
` const xsltDoc = new DOMParser().parseFromString(sParse, 'application/xml');` && |\n| &&
|\n| &&
` const xsltProcessor = new XSLTProcessor();` && |\n| &&
` xsltProcessor.importStylesheet(xsltDoc);` && |\n| &&
` const resultDoc = xsltProcessor.transformToDocument(xmlDoc);` && |\n| &&
` const resultXml = new XMLSerializer().serializeToString(resultDoc);` && |\n| &&
` return resultXml.replace(/&gt;/g, ">").replace(/&lt;/g, "<");` && |\n| &&
` },` &&
` onItemSelect: function (oEvent) {` && |\n| &&
` const selItem = oEvent.getSource().getSelectedKey();` && |\n| &&
` const oView = z2ui5?.oView;` && |\n| &&
` const oResponse = z2ui5?.oResponse;` && |\n| &&
` const displayEditor = this.displayEditor.bind(this);` && |\n| &&
|\n| &&
` switch (selItem) {` && |\n| &&
` case 'CONFIG':` && |\n| &&
` displayEditor(oEvent, JSON.stringify(z2ui5.oConfig, null, 3), 'json');` && |\n| &&
` break;` && |\n| &&
` case 'MODEL':` && |\n| &&
` displayEditor(oEvent, JSON.stringify(oView?.getModel()?.getData(), null, 3), 'json');` && |\n| &&
` break;` && |\n| &&
` case 'VIEW':` && |\n| &&
` const viewContent = oView?.mProperties?.viewContent || z2ui5.responseData.S_FRONT.PARAMS.S_VIEW.XML;` && |\n| &&
` displayEditor(oEvent, this.prettifyXml(viewContent), 'xml', this.prettifyXml(oView?._xContent.outerHTML));` && |\n| &&
` break;` && |\n| &&
` case 'PLAIN':` && |\n| &&
` displayEditor(oEvent, JSON.stringify(z2ui5.responseData, null, 3), 'json');` && |\n| &&
` break;` && |\n| &&
` case 'REQUEST':` && |\n| &&
` displayEditor(oEvent, JSON.stringify(z2ui5.oBody, null, 3), 'json');` && |\n| &&
` break;` && |\n| &&
` case 'POPUP':` && |\n| &&
` displayEditor(oEvent, this.prettifyXml(oResponse?.PARAMS?.S_POPUP?.XML), 'xml');` && |\n| &&
` break;` && |\n| &&
` case 'POPUP_MODEL':` && |\n| &&
` displayEditor(oEvent, JSON.stringify(z2ui5.oViewPopup.getModel().getData(), null, 3), 'json');` && |\n| &&
` break;` && |\n| &&
` case 'POPOVER':` && |\n| &&
` displayEditor(oEvent, oResponse?.PARAMS?.S_POPOVER?.XML, 'xml');` && |\n| &&
` break;` && |\n| &&
` case 'POPOVER_MODEL':` && |\n| &&
` displayEditor(oEvent, JSON.stringify(z2ui5?.oViewPopover?.getModel()?.getData(), null, 3), 'json');` && |\n| &&
` break;` && |\n| &&
` case 'NEST1':` && |\n| &&
` displayEditor(oEvent, this.prettifyXml(z2ui5?.oViewNest?.mProperties?.viewContent), 'xml', this.prettifyXml(z2ui5?.oViewNest?._xContent.outerHTML));` && |\n| &&
` break;` && |\n| &&
` case 'NEST1_MODEL':` && |\n| &&
` displayEditor(oEvent, JSON.stringify(z2ui5?.oViewNest?.getModel()?.getData(), null, 3), 'json');` && |\n| &&
` break;` && |\n| &&
` case 'NEST2':` && |\n| &&
` displayEditor(oEvent, this.prettifyXml(z2ui5?.oViewNest2?.mProperties?.viewContent), 'xml', this.prettifyXml(z2ui5?.oViewNest2?._xContent.outerHTML));` && |\n| &&
` break;` && |\n| &&
` case 'NEST2_MODEL':` && |\n| &&
` displayEditor(oEvent, JSON.stringify(z2ui5?.oViewNest2?.getModel()?.getData(), null, 3), 'json');` && |\n| &&
` break;` && |\n| &&
` case 'SOURCE':` && |\n| &&
` const parent = oEvent.getSource().getParent();` && |\n| &&
` const contentControl = parent.getContent()[2].getItems()[0];` && |\n| &&
` const url = ``${window.location.origin}/sap/bc/adt/oo/classes/${z2ui5.responseData.S_FRONT.APP}/source/main``;` && |\n| &&
` const content = atob('PGlmcmFtZSBpZD0idGVzdCIgc3JjPSInICsgdXJsICsgJyIgaGVpZ2h0PSI4MDBweCIgd2lkdGg9IjEyMDBweCIgLz4=').replace("' + url + '", url);` && |\n| &&
` contentControl.setProperty("content", content);` && |\n| &&
` const modelData = oEvent.getSource().getModel().oData;` && |\n| &&
` modelData.editor_visible = false;` && |\n| &&
` modelData.source_visible = true;` && |\n| &&
` oEvent.getSource().getModel().refresh();` && |\n| &&
` break;` && |\n| &&
` }` && |\n| &&
` },` && |\n| &&
|\n| &&
` displayEditor: function (oEvent, content, type, xcontent = "") {` && |\n| &&
` const modelData = oEvent.getSource().getModel().oData;` && |\n| &&
` modelData.editor_visible = true;` && |\n| &&
` modelData.source_visible = false;` && |\n| &&
` modelData.isTemplating = content.includes("xmlns:template");` && |\n| &&
` modelData.value = content;` && |\n| &&
` modelData.previousValue = content;` && |\n| &&
` modelData.xContent = xcontent;` && |\n| &&
` modelData.type = type;` && |\n| &&
` oEvent.getSource().getModel().refresh();` && |\n| &&
` },` && |\n| &&
|\n| &&
` onTemplatingPress: function (oEvent) {` && |\n| &&
` const modelData = oEvent.getSource().getModel().oData;` && |\n| &&
` modelData.value = oEvent.getSource().getPressed() ? modelData.xContent : modelData.previousValue;` && |\n| &&
` oEvent.getSource().getModel().refresh();` && |\n| &&
` },` && |\n| &&
|\n| &&
` onClose: function () {` && |\n| &&
` this.oDialog.close();` && |\n| &&
` },` && |\n| &&
|\n| &&
` async show() {` && |\n| &&
` if (!this.oDialog) {` && |\n| &&
` this.oDialog = await Fragment.load({` && |\n| &&
` name: "z2ui5.cc.DebugTool",` && |\n| &&
` controller: this,` && |\n| &&
` });` && |\n| &&
` }` && |\n| &&
|\n| &&
` const value = JSON.stringify(z2ui5.responseData, null, 3);` && |\n| &&
` const oData = {` && |\n| &&
` type: 'json',` && |\n| &&
` source_visible: false,` && |\n| &&
` editor_visible: true,` && |\n| &&
` value: value,` && |\n| &&
` xContent: '',` && |\n| &&
` previousValue: value,` && |\n| &&
` isTemplating: false,` && |\n| &&
` templatingSource: false,` && |\n| &&
` activeNest1: z2ui5?.oViewNest?.mProperties?.viewContent !== undefined,` && |\n| &&
` activeNest2: z2ui5?.oViewNest2?.mProperties?.viewContent !== undefined,` && |\n| &&
` activePopup: z2ui5?.oResponse?.PARAMS?.S_POPUP?.XML !== undefined,` && |\n| &&
` activePopover: z2ui5?.oResponse?.PARAMS?.S_POPOVER?.XML !== undefined,` && |\n| &&
` };` && |\n| &&
` const oModel = new JSONModel(oData);` && |\n| &&
|\n| &&
` this.oDialog.addStyleClass('dbg-ltr');` && |\n| &&
` this.oDialog.setModel(oModel);` && |\n| &&
` this.oDialog.open();` && |\n| &&
` }` && |\n| &&
` });` && |\n| &&
`});`.
ENDMETHOD.
ENDCLASS.

View File

@ -1,16 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>Z2UI5_CL_UI5_DEBUGTOOL_JS</CLSNAME>
<LANGU>E</LANGU>
<DESCRIPT>abap2UI5 - DebugTool.js</DESCRIPT>
<STATE>1</STATE>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -1,129 +0,0 @@
CLASS z2ui5_cl_ui5_debugtool_xml DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
CLASS-METHODS get
RETURNING
VALUE(result) TYPE string.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS z2ui5_cl_ui5_debugtool_xml IMPLEMENTATION.
METHOD get.
result = |<core:FragmentDefinition| &
| xmlns="sap.m"| &
| xmlns:mvc="sap.ui.core.mvc"| &
| xmlns:core="sap.ui.core"| &
| xmlns:html="http://www.w3.org/1999/xhtml"| &
| xmlns:ce="sap.ui.codeeditor"| &
|>| &
| <Dialog| &
| title="abap2UI5 - Debug Tool"| &
| stretch="true"| &
| >| &
| <IconTabHeader| &
| selectedKey="PLAIN"| &
| select="onItemSelect"| &
| >| &
| <items>| &
| <IconTabFilter| &
| text="Config"| &
| key="CONFIG"| &
| enabled="true"| &
| />| &
| <IconTabFilter| &
| text="Previous Request"| &
| key="REQUEST"| &
| enabled="true"| &
| />| &
| <IconTabFilter| &
| text="Response"| &
| key="PLAIN"| &
| />| &
| <IconTabFilter| &
| text="Source Code"| &
| key="SOURCE"| &
| />| &
| <IconTabFilter| &
| text="View"| &
| key="VIEW"| &
| />| &
| <IconTabFilter| &
| text="View Model"| &
| key="MODEL"| &
| />| &
| <IconTabFilter| &
| text="Popup"| &
| key="POPUP"| &
| enabled="\{/activePopup\}"| &
| />| &
| <IconTabFilter| &
| text="Popup Model"| &
| key="POPUP_MODEL"| &
| enabled="\{/activePopup\}"| &
| />| &
| <IconTabFilter| &
| text="Popover"| &
| key="POPOVER"| &
| enabled="\{/activePopover\}"| &
| />| &
| <IconTabFilter| &
| text="Popover Model"| &
| key="POPOVER_MODEL"| &
| enabled="\{/activePopover\}"| &
| />| &
| <IconTabFilter| &
| text="Nest1"| &
| key="NEST1"| &
| enabled="\{/activeNest1\}"| &
| />| &
| <IconTabFilter| &
| text="Nest1 Model"| &
| key="NEST1_MODEL"| &
| enabled="\{/activeNest1\}"| &
| />| &
| <IconTabFilter| &
| text="Nest2"| &
| key="NEST2"| &
| enabled="\{/activeNest2\}"| &
| />| &
| <IconTabFilter| &
| text="Nest2 Model"| &
| key="NEST2_MODEL"| &
| enabled="\{/activeNest2\}"| &
| />| &
| </items>| &
| </IconTabHeader>| &
| <VBox>| &
| <ToggleButton text="Source XML after Templating" visible="\{/isTemplating\}" pressed="\{/templatingSource\}" press="onTemplatingPress" />| &
| <ce:CodeEditor| &
| type="\{/type\}"| &
| value="\{/value\}"| &
| height="2000px"| &
| width="10000px"| &
| visible="\{/editor_visible\}"| &
| /></VBox>| &
| <VBox visible="\{/source_visible\}">| &
| <core:HTML/>| &
| </VBox>| &
| <endButton>| &
| <Button| &
| text="Close"| &
| press="onClose"| &
| />| &
| </endButton>| &
| </Dialog>| &
|</core:FragmentDefinition>|.
ENDMETHOD.
ENDCLASS.

View File

@ -1,16 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>Z2UI5_CL_UI5_DEBUGTOOL_XML</CLSNAME>
<LANGU>E</LANGU>
<DESCRIPT>abap2UI5 - DebugTool.xml</DESCRIPT>
<STATE>1</STATE>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -1,77 +0,0 @@
CLASS z2ui5_cl_ui5_index_html DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
CLASS-METHODS get
IMPORTING
is_config TYPE z2ui5_if_types=>ty_s_http_config
RETURNING
VALUE(result) TYPE string.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS z2ui5_cl_ui5_index_html IMPLEMENTATION.
METHOD get.
IF is_config-styles_css IS INITIAL.
DATA(lv_style_css) = z2ui5_cl_ui5_style_css=>get( ).
ELSE.
lv_style_css = is_config-styles_css.
ENDIF.
result = `<!DOCTYPE html>` && |\n| &&
`<html lang="en">` && |\n| &&
`<head>` && |\n| &&
is_config-content_security_policy && |\n| &&
` <meta charset="UTF-8">` && |\n| &&
` <meta name="viewport" content="width=device-width, initial-scale=1.0">` && |\n| &&
` <meta http-equiv="X-UA-Compatible" content="IE=edge">` && |\n| &&
| <title> { is_config-title }</title> \n| &&
| <style> html, body, body > div, #container, #container-uiarea \{\n| &
| height: 100%;\n| &
| \}</style> \n| &&
`<script>` && |\n| &&
` function onInitComponent(){` && |\n| &&
` sap.ui.require.preload({` && |\n| &&
` "z2ui5/manifest.json": '` && z2ui5_cl_ui5_manifest_json=>get( ) && ` ',` && |\n| &&
` "z2ui5/Component.js": function(){` && z2ui5_cl_ui5_component_js=>get( ) && is_config-custom_js && ` },` && |\n| &&
` "z2ui5/css/style.css": '` && lv_style_css && `',` && |\n| &&
` "z2ui5/model/models.js": function(){` && z2ui5_cl_ui5_model_js=>get( ) && `},` && |\n| &&
` "z2ui5/view/App.view.xml": '` && z2ui5_cl_ui5_app_xml=>get( ) && `' ,` && |\n| &&
` "z2ui5/controller/App.controller.js": function(){` && z2ui5_cl_ui5_app_js=>get( ) && z2ui5_cl_ui5_cc_js=>get( ) && `},` && |\n| &&
` "z2ui5/view/View1.view.xml": '` && z2ui5_cl_ui5_view1_xml=>get( ) && `' ,` && |\n| &&
` "z2ui5/controller/View1.controller.js": function(){` && z2ui5_cl_ui5_view1_js=>get( ) && `},` && |\n| &&
` "z2ui5/cc/Server.js": function(){` && z2ui5_cl_ui5_server_js=>get( ) && `} ,` && |\n| &&
` "z2ui5/cc/DebugTool.fragment.xml": '` && z2ui5_cl_ui5_debugtool_xml=>get( ) && `' ,` && |\n| &&
` "z2ui5/cc/DebugTool.js": function(){` && z2ui5_cl_ui5_debugtool_js=>get( ) && `},` && |\n| &&
` });` && |\n| &&
` sap.ui.require(["sap/ui/core/ComponentSupport"], function(ComponentSupport){` && |\n| &&
` window.z2ui5 = {}; ComponentSupport.run();` && |\n| &&
` });` && |\n| &&
` }` && |\n| &&
`</script>` && |\n| &&
`<script id="sap-ui-bootstrap" data-sap-ui-resourceroots='{ "z2ui5": "./" }' data-sap-ui-oninit="onInitComponent" ` && |\n| &&
`data-sap-ui-compatVersion="edge" data-sap-ui-async="true" data-sap-ui-frameOptions="trusted" data-sap-ui-bindingSyntax="complex"` && |\n| &&
`data-sap-ui-theme="` && is_config-theme && `" src=" ` && is_config-src && `" `.
LOOP AT is_config-t_add_config REFERENCE INTO DATA(lr_config).
result = result && | { lr_config->n }='{ lr_config->v }'|.
ENDLOOP.
result = result &&
` ></script></head>` && |\n| &&
`<body class="sapUiBody sapUiSizeCompact" id="content">` && |\n| &&
` <div data-sap-ui-component data-name="z2ui5" data-id="container" data-settings='{"id" : "z2ui5"}' data-handle-validation="true"></div>` && |\n| &&
` </body></html>`.
ENDMETHOD.
ENDCLASS.

View File

@ -1,16 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>Z2UI5_CL_UI5_INDEX_HTML</CLSNAME>
<LANGU>E</LANGU>
<DESCRIPT>abap2UI5 - index.html</DESCRIPT>
<STATE>1</STATE>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -1,164 +0,0 @@
CLASS z2ui5_cl_ui5_manifest_json DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
CLASS-METHODS get
RETURNING
VALUE(result) TYPE string.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS z2ui5_cl_ui5_manifest_json IMPLEMENTATION.
METHOD get.
result = |\{| &
| "_version": "1.65.0",| &
| "sap.app": \{| &
| "id": "z2ui5",| &
| "type": "application",| &
| "applicationVersion": \{| &
| "version": "0.0.1"| &
| \},| &
| "title": "\{\{appTitle\}\}",| &
| "description": "\{\{appDescription\}\}",| &
| "resources": "resources.json",| &
| "sourceTemplate": \{| &
| "id": "@sap/generator-fiori:basic",| &
| "version": "1.15.0",| &
| "toolsId": "3a966e20-9635-4c28-8861-d1b66f79f1de"| &
| \},| &
| "dataSources": \{| &
| "mainService": \{| &
| "uri": "_LOCAL_",| &
| "type": "OData",| &
| "settings": \{| &
| "annotations": [],| &
| "localUri": "localService/metadata.xml",| &
| "odataVersion": "2.0"| &
| \}| &
| \}| &
| \},| &
| "crossNavigation": \{| &
| "inbounds": \{| &
| "z2ui5-display": \{| &
| "semanticObject": "z2ui5",| &
| "action": "display",| &
| "title": "\{\{flpTitle\}\}",| &
| "signature": \{| &
| "parameters": \{\},| &
| "additionalParameters": "allowed"| &
| \}| &
| \}| &
| \}| &
| \}| &
| \},| &
| "sap.ui": \{| &
| "technology": "UI5",| &
| "icons": \{| &
| "icon": "",| &
| "favIcon": "",| &
| "phone": "",| &
| "phone@2": "",| &
| "tablet": "",| &
| "tablet@2": ""| &
| \},| &
| "deviceTypes": \{| &
| "desktop": true,| &
| "tablet": true,| &
| "phone": true| &
| \}| &
| \},| &
| "sap.ui5": \{| &
| "flexEnabled": true,| &
| "dependencies": \{| &
| "minUI5Version": "1.128.1",| &
| "libs": \{| &
| "sap.m": \{\},| &
| "sap.ui.core": \{\}| &
| \}| &
| \},| &
| "contentDensities": \{| &
| "compact": true,| &
| "cozy": true| &
| \},| &
| "models": \{| &
| "": \{| &
| "dataSource": "mainService",| &
| "preload": true,| &
| "settings": \{\}| &
| \}| &
| \},| &
| "resources": \{| &
| "css": [| &
| \{| &
| "uri": "css/style.css"| &
| \}| &
| ]| &
| \},| &
| "routing": \{| &
| "config": \{| &
| "routerClass": "sap.m.routing.Router",| &
| "viewType": "XML",| &
| "async": true,| &
| "viewPath": "z2ui5.view",| &
| "controlAggregation": "pages",| &
| "controlId": "app",| &
| "clearControlAggregation": false| &
| \},| &
| "routes": [| &
| \{| &
| "name": "RouteView1",| &
| "pattern": ":?query:",| &
| "target": [| &
| "TargetView1"| &
| ]| &
| \},| &
| \{| &
| "name": "RouteView2",| &
| "pattern": ":?query:",| &
| "target": [| &
| "TargetView2"| &
| ]| &
| \}| &
| ],| &
| "targets": \{| &
| "TargetView1": \{| &
| "viewType": "XML",| &
| "transition": "flip",| &
| "clearControlAggregation": false,| &
| "viewId": "View1",| &
| "viewName": "View1"| &
| \},| &
| "TargetView2": \{| &
| "viewType": "XML",| &
| "transition": "flip",| &
| "clearControlAggregation": false,| &
| "viewId": "View2",| &
| "viewName": "View2"| &
| \}| &
| \}| &
| \},| &
| "rootView": \{| &
| "viewName": "z2ui5.view.App",| &
| "type": "XML",| &
| "async": true,| &
| "id": "App"| &
| \}| &
| \},| &
| "sap.cloud": \{| &
| "public": true,| &
| "service": "z2ui5"| &
| \}| &
|\}|.
ENDMETHOD.
ENDCLASS.

View File

@ -1,16 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>Z2UI5_CL_UI5_MANIFEST_JSON</CLSNAME>
<LANGU>E</LANGU>
<DESCRIPT>abap2UI5 - manifest.json</DESCRIPT>
<STATE>1</STATE>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -1,44 +0,0 @@
CLASS z2ui5_cl_ui5_model_js DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
CLASS-METHODS get
RETURNING
VALUE(result) TYPE string.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS z2ui5_cl_ui5_model_js IMPLEMENTATION.
METHOD get.
result = `sap.ui.define([` && |\n| &&
` "sap/ui/model/json/JSONModel",` && |\n| &&
` "sap/ui/Device"` && |\n| &&
`], ` && |\n| &&
`function (JSONModel, Device) {` && |\n| &&
` "use strict";` && |\n| &&
|\n| &&
` return {` && |\n| &&
` /**` && |\n| &&
` * Provides runtime info for the device the UI5 app is running on as JSONModel` && |\n| &&
` */` && |\n| &&
` createDeviceModel: function () {` && |\n| &&
` var oModel = new JSONModel(Device);` && |\n| &&
` oModel.setDefaultBindingMode("OneWay");` && |\n| &&
` return oModel;` && |\n| &&
` }` && |\n| &&
` };` && |\n| &&
|\n| &&
`});`.
ENDMETHOD.
ENDCLASS.

View File

@ -1,16 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>Z2UI5_CL_UI5_MODEL_JS</CLSNAME>
<LANGU>E</LANGU>
<DESCRIPT>abap2UI5 - model.js</DESCRIPT>
<STATE>1</STATE>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -1,172 +0,0 @@
CLASS z2ui5_cl_ui5_server_js DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
CLASS-METHODS get
RETURNING
VALUE(result) TYPE string.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS z2ui5_cl_ui5_server_js IMPLEMENTATION.
METHOD get.
result = `sap.ui.define(["sap/ui/core/BusyIndicator","sap/m/MessageBox"` && |\n| &&
`],` && |\n| &&
` function (BusyIndicator, MessageBox) {` && |\n| &&
` "use strict";` && |\n| &&
|\n| &&
` return {` && |\n| &&
|\n| &&
` endSession: function () {` && |\n| &&
|\n| &&
` if (z2ui5.contextId) {` && |\n| &&
` fetch(z2ui5.oConfig.pathname, {` && |\n| &&
` method: 'HEAD',` && |\n| &&
` keepalive: true,` && |\n| &&
` headers: {` && |\n| &&
` 'sap-terminate': 'session',` && |\n| &&
` 'sap-contextid': z2ui5.contextId,` && |\n| &&
` 'sap-contextid-accept': 'header'` && |\n| &&
` }` && |\n| &&
` });` && |\n| &&
` delete z2ui5.contextId;` && |\n| &&
` }` && |\n| &&
|\n| &&
` },` && |\n| &&
` Roundtrip() {` && |\n| &&
` z2ui5.checkTimerActive = false;` && |\n| &&
` z2ui5.checkNestAfter = false;` && |\n| &&
` z2ui5.checkNestAfter2 = false;` && |\n| &&
` let event = (args) => {` && |\n| &&
` if (args != undefined) {` && |\n| &&
` return args[0][0];` && |\n| &&
` }` && |\n| &&
` };` && |\n| &&
|\n| &&
` z2ui5.oBody ??= {};` && |\n| &&
` z2ui5.oBody.S_FRONT = {` && |\n| &&
` ID: z2ui5?.oBody?.ID,` && |\n| &&
` CONFIG: z2ui5.oConfig,` && |\n| &&
` XX: z2ui5?.oBody?.XX,` && |\n| &&
` ORIGIN: window.location.origin,` && |\n| &&
` PATHNAME: window.location.pathname,` && |\n| &&
` SEARCH: (z2ui5.search) ? z2ui5.search : window.location.search,` && |\n| &&
` VIEW: z2ui5.oBody?.VIEWNAME,` && |\n| &&
` EVENT: event(z2ui5.oBody?.ARGUMENTS),` && |\n| &&
` HASH: window.location.hash,` && |\n| &&
` };` && |\n| &&
` if (z2ui5.oBody?.ARGUMENTS != undefined) {` && |\n| &&
` if (z2ui5.oBody?.ARGUMENTS.length > 0) {` && |\n| &&
` z2ui5.oBody?.ARGUMENTS.shift();` && |\n| &&
` }` && |\n| &&
` }` && |\n| &&
` z2ui5.oBody.S_FRONT.T_EVENT_ARG = z2ui5.oBody?.ARGUMENTS;` && |\n| &&
` delete z2ui5.oBody.ID;` && |\n| &&
` delete z2ui5.oBody?.VIEWNAME;` && |\n| &&
` delete z2ui5.oBody?.S_FRONT.XX;` && |\n| &&
` delete z2ui5.oBody?.ARGUMENTS;` && |\n| &&
` if (!z2ui5.oBody.S_FRONT.T_EVENT_ARG) {` && |\n| &&
` delete z2ui5.oBody.S_FRONT.T_EVENT_ARG;` && |\n| &&
` }` && |\n| &&
` if (z2ui5.oBody.S_FRONT.T_EVENT_ARG) {` && |\n| &&
` if (z2ui5.oBody.S_FRONT.T_EVENT_ARG.length == 0) {` && |\n| &&
` delete z2ui5.oBody.S_FRONT.T_EVENT_ARG;` && |\n| &&
` }` && |\n| &&
` }` && |\n| &&
` if (z2ui5.oBody.S_FRONT.T_STARTUP_PARAMETERS == undefined) {` && |\n| &&
` delete z2ui5.oBody.S_FRONT.T_STARTUP_PARAMETERS;` && |\n| &&
` }` && |\n| &&
` if (z2ui5.oBody.S_FRONT.SEARCH == '') {` && |\n| &&
` delete z2ui5.oBody.S_FRONT.SEARCH;` && |\n| &&
` }` && |\n| &&
` if (!z2ui5.oBody.XX) {` && |\n| &&
` delete z2ui5.oBody.XX;` && |\n| &&
` }` && |\n| &&
` this.readHttp();` && |\n| &&
` },` && |\n| &&
|\n| &&
` async readHttp() {` && |\n| &&
` const response = await fetch(z2ui5.oConfig.pathname, {` && |\n| &&
` method: 'POST',` && |\n| &&
` headers: {` && |\n| &&
` 'Content-Type': 'application/json',` && |\n| &&
` 'sap-contextid-accept': 'header',` && |\n| &&
` 'sap-contextid': z2ui5.contextId` && |\n| &&
` },` && |\n| &&
` body: JSON.stringify(z2ui5.oBody)` && |\n| &&
` });` && |\n| &&
` z2ui5.contextId = response.headers.get("sap-contextid");` && |\n| &&
` if (!response.ok) {` && |\n| &&
` const responseText = await response.text();` && |\n| &&
` this.responseError(responseText);` && |\n| &&
` } else {` && |\n| &&
` const responseData = await response.json();` && |\n| &&
` z2ui5.responseData = responseData;` && |\n| &&
` this.responseSuccess({` && |\n| &&
` ID: responseData.S_FRONT.ID,` && |\n| &&
` PARAMS: responseData.S_FRONT.PARAMS,` && |\n| &&
` OVIEWMODEL: responseData.MODEL,` && |\n| &&
` });` && |\n| &&
` }` && |\n| &&
` },` && |\n| &&
` async responseSuccess(response) {` && |\n| &&
` try {` && |\n| &&
` z2ui5.oResponse = response;` && |\n| &&
` if (z2ui5.oResponse.PARAMS?.S_VIEW?.CHECK_DESTROY) {` && |\n| &&
` z2ui5.oController.ViewDestroy();` && |\n| &&
` }` && |\n| &&
` ; if (z2ui5.oResponse.PARAMS?.S_FOLLOW_UP_ACTION?.CUSTOM_JS) {` && |\n| &&
` setTimeout(() => {` && |\n| &&
` let mParams = z2ui5.oResponse?.PARAMS.S_FOLLOW_UP_ACTION.CUSTOM_JS.split("'");` && |\n| &&
` let mParamsEF = mParams.filter((val, index) => index % 2)` && |\n| &&
` if (mParamsEF.length) {` && |\n| &&
` z2ui5.oController.eF.apply(undefined, mParamsEF);` && |\n| &&
` } else {` && |\n| &&
` Function("return " + mParams[0])();` && |\n| &&
` }` && |\n| &&
` }, 100);` && |\n| &&
` };` && |\n| &&
` z2ui5.oController.showMessage('S_MSG_TOAST', z2ui5.oResponse.PARAMS);` && |\n| &&
` z2ui5.oController.showMessage('S_MSG_BOX', z2ui5.oResponse.PARAMS);` && |\n| &&
` if (z2ui5.oResponse.PARAMS?.S_VIEW?.XML) {` && |\n| &&
` if (z2ui5.oResponse.PARAMS?.S_VIEW?.XML !== '') {` && |\n| &&
` z2ui5.oController.ViewDestroy();` && |\n| &&
` await z2ui5.oController.displayView(z2ui5.oResponse.PARAMS.S_VIEW.XML, z2ui5.oResponse.OVIEWMODEL);` && |\n| &&
` return;` && |\n| &&
` }` && |\n| &&
` }` && |\n| &&
` z2ui5.oController.updateModelIfRequired('S_VIEW', z2ui5.oView);` && |\n| &&
` z2ui5.oController.updateModelIfRequired('S_VIEW_NEST', z2ui5.oViewNest);` && |\n| &&
` z2ui5.oController.updateModelIfRequired('S_VIEW_NEST2', z2ui5.oViewNest2);` && |\n| &&
` z2ui5.oController.updateModelIfRequired('S_POPUP', z2ui5.oViewPopup);` && |\n| &&
` z2ui5.oController.updateModelIfRequired('S_POPOVER', z2ui5.oViewPopover);` && |\n| &&
` z2ui5.oController.onAfterRendering();` && |\n| &&
` } catch (e) {` && |\n| &&
` BusyIndicator.hide();` && |\n| &&
` if (e.message.includes("openui5")) {` && |\n| &&
` if (e.message.includes("script load error")) {` && |\n| &&
` z2ui5.oController.checkSDKcompatibility(e)` && |\n| &&
` }` && |\n| &&
` } else {` && |\n| &&
` MessageBox.error(e.toLocaleString());` && |\n| &&
` }` && |\n| &&
` }` && |\n| &&
` },` && |\n| &&
` responseError(response) {` && |\n| &&
` document.write(response);` && |\n| &&
` },` && |\n| &&
` };` && |\n| &&
` });`.
ENDMETHOD.
ENDCLASS.

View File

@ -1,16 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>Z2UI5_CL_UI5_SERVER_JS</CLSNAME>
<LANGU>E</LANGU>
<DESCRIPT>abap2UI5 - Server.js</DESCRIPT>
<STATE>1</STATE>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -1,26 +0,0 @@
CLASS z2ui5_cl_ui5_style_css DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
CLASS-METHODS get
RETURNING
VALUE(result) TYPE string.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS z2ui5_cl_ui5_style_css IMPLEMENTATION.
METHOD get.
result = |/* Enter your custom styles here */|.
ENDMETHOD.
ENDCLASS.

View File

@ -1,16 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>Z2UI5_CL_UI5_STYLE_CSS</CLSNAME>
<LANGU>E</LANGU>
<DESCRIPT>abap2UI5 - style.css</DESCRIPT>
<STATE>1</STATE>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -1,491 +0,0 @@
CLASS z2ui5_cl_ui5_view1_js DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
CLASS-METHODS get
RETURNING
VALUE(result) TYPE string.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS z2ui5_cl_ui5_view1_js IMPLEMENTATION.
METHOD get.
result = `sap.ui.define(["sap/ui/core/mvc/Controller", "sap/ui/core/mvc/XMLView", "sap/ui/model/json/JSONModel", ` && |\n| &&
` "sap/ui/core/BusyIndicator", "sap/m/MessageBox", "sap/m/MessageToast", "sap/ui/core/Fragment", "sap/m/BusyDialog",` && |\n| &&
` "sap/ui/VersionInfo", "z2ui5/cc/Server",` && |\n| &&
` ], ` && |\n| &&
` function(Controller, XMLView, JSONModel, BusyIndicator, MessageBox, MessageToast, Fragment, mBusyDialog, VersionInfo, ` && |\n| &&
` Server ) {` && |\n| &&
` "use strict";` && |\n| &&
` return Controller.extend("z2ui5.controller.View1", {` && |\n| &&
|\n| &&
` onInit (){` && |\n| &&
|\n| &&
` z2ui5.oRouter.attachRouteMatched(function(oEvent) {` && |\n| &&
` z2ui5.checkInit = true;` && |\n| &&
` Server.Roundtrip();` && |\n| &&
` }, this);` && |\n| &&
|\n| &&
` },` && |\n| &&
` async onAfterRendering() {` && |\n| &&
|\n| &&
` if (!z2ui5.oResponse){` && |\n| &&
` return;` && |\n| &&
` }` && |\n| &&
|\n| &&
` try {` && |\n| &&
` if (!z2ui5.oResponse.PARAMS) {` && |\n| &&
` BusyIndicator.hide();` && |\n| &&
` z2ui5.isBusy = false;` && |\n| &&
` return;` && |\n| &&
` }` && |\n| &&
` const {S_POPUP, S_VIEW_NEST, S_VIEW_NEST2, S_POPOVER} = z2ui5.oResponse.PARAMS;` && |\n| &&
` if (S_POPUP?.CHECK_DESTROY) {` && |\n| &&
` z2ui5.oController.PopupDestroy();` && |\n| &&
` }` && |\n| &&
` if (S_POPOVER?.CHECK_DESTROY) {` && |\n| &&
` z2ui5.oController.PopoverDestroy();` && |\n| &&
` }` && |\n| &&
` if (S_POPUP?.XML) {` && |\n| &&
` z2ui5.oController.PopupDestroy();` && |\n| &&
` await this.displayFragment(S_POPUP.XML, 'oViewPopup');` && |\n| &&
` }` && |\n| &&
` if (!z2ui5.checkNestAfter) {` && |\n| &&
` if (S_VIEW_NEST?.XML) {` && |\n| &&
` z2ui5.oController.NestViewDestroy();` && |\n| &&
` await this.displayNestedView(S_VIEW_NEST.XML, 'oViewNest', 'S_VIEW_NEST');` && |\n| &&
` z2ui5.checkNestAfter = true;` && |\n| &&
` }` && |\n| &&
` }` && |\n| &&
` if (!z2ui5.checkNestAfter2) {` && |\n| &&
` if (S_VIEW_NEST2?.XML) {` && |\n| &&
` z2ui5.oController.NestViewDestroy2();` && |\n| &&
` await this.displayNestedView2(S_VIEW_NEST2.XML, 'oViewNest2', 'S_VIEW_NEST2');` && |\n| &&
` z2ui5.checkNestAfter2 = true;` && |\n| &&
` }` && |\n| &&
` }` && |\n| &&
` if (S_POPOVER?.XML) {` && |\n| &&
` await this.displayPopover(S_POPOVER.XML, 'oViewPopover', S_POPOVER.OPEN_BY_ID);` && |\n| &&
` }` && |\n| &&
` BusyIndicator.hide();` && |\n| &&
` z2ui5.isBusy = false;` && |\n| &&
` z2ui5.onAfterRendering.forEach(item => {` && |\n| &&
` if (item !== undefined) {` && |\n| &&
` item();` && |\n| &&
` }` && |\n| &&
` }` && |\n| &&
` )` && |\n| &&
` } catch (e) {` && |\n| &&
` BusyIndicator.hide();` && |\n| &&
` z2ui5.isBusy = false;` && |\n| &&
` MessageBox.error(e.toLocaleString(), {` && |\n| &&
` title: "Unexpected Error Occured - App Terminated",` && |\n| &&
` actions: [],` && |\n| &&
` onClose: () => {` && |\n| &&
` new mBusyDialog({` && |\n| &&
` text: "Please Restart the App"` && |\n| &&
` }).open();` && |\n| &&
` }` && |\n| &&
` })` && |\n| &&
` }` && |\n| &&
` },` && |\n| &&
` async displayFragment(xml, viewProp) {` && |\n| &&
` let oview_model = new JSONModel(z2ui5.oResponse.OVIEWMODEL);` && |\n| &&
` const oFragment = await Fragment.load({` && |\n| &&
` definition: xml,` && |\n| &&
` controller: z2ui5.oControllerPopup,` && |\n| &&
` id: "popupId"` && |\n| &&
` });` && |\n| &&
` oFragment.setModel(oview_model);` && |\n| &&
` z2ui5[viewProp] = oFragment;` && |\n| &&
` z2ui5[viewProp].Fragment = Fragment;` && |\n| &&
` oFragment.open();` && |\n| &&
` },` && |\n| &&
` async displayPopover(xml, viewProp, openById) {` && |\n| &&
` sap.ui.require(["sap/ui/core/Element"], async function(Element) {` && |\n| &&
` const oFragment = await Fragment.load({` && |\n| &&
` definition: xml,` && |\n| &&
` controller: z2ui5.oControllerPopover,` && |\n| &&
` id: "popoverId"` && |\n| &&
` });` && |\n| &&
` let oview_model = new JSONModel(z2ui5.oResponse.OVIEWMODEL);` && |\n| &&
` oFragment.setModel(oview_model);` && |\n| &&
` z2ui5[viewProp] = oFragment;` && |\n| &&
` z2ui5[viewProp].Fragment = Fragment;` && |\n| &&
` let oControl = {};` && |\n| &&
` if (z2ui5.oView?.byId(openById)) {` && |\n| &&
` oControl = z2ui5.oView.byId(openById);` && |\n| &&
` } else if (z2ui5.oViewPopup?.Fragment.byId('popupId', openById)) {` && |\n| &&
` oControl = z2ui5.oViewPopup.Fragment.byId('popupId', openById);` && |\n| &&
` } else if (z2ui5.oViewNest?.byId(openById)) {` && |\n| &&
` oControl = z2ui5.oViewNest.byId(openById);` && |\n| &&
` } else if (z2ui5.oViewNest2?.byId(openById)) {` && |\n| &&
` oControl = z2ui5.oViewNest2.byId(openById);` && |\n| &&
` } else {` && |\n| &&
` if (sapUiCore.byId(openById)) {` && |\n| &&
` // oControl = sapUiCore.byId(openById);` && |\n| &&
` oControl = Element.getElementById(openById);` && |\n| &&
` } else {` && |\n| &&
` oControl = null;` && |\n| &&
` }` && |\n| &&
` ;` && |\n| &&
` }` && |\n| &&
` oFragment.openBy(oControl);` && |\n| &&
` });` && |\n| &&
` },` && |\n| &&
` async displayNestedView(xml, viewProp, viewNestId) {` && |\n| &&
` let oview_model = new JSONModel(z2ui5.oResponse.OVIEWMODEL);` && |\n| &&
` const oView = await XMLView.create({` && |\n| &&
` definition: xml,` && |\n| &&
` controller: z2ui5.oControllerNest,` && |\n| &&
` preprocessors: {` && |\n| &&
` xml: {` && |\n| &&
` models: {` && |\n| &&
` template: oview_model` && |\n| &&
` }` && |\n| &&
` }` && |\n| &&
` }` && |\n| &&
` });` && |\n| &&
` oView.setModel(oview_model);` && |\n| &&
` let oParent = z2ui5.oView.byId(z2ui5.oResponse.PARAMS[viewNestId].ID);` && |\n| &&
` if (oParent) {` && |\n| &&
` try {` && |\n| &&
` oParent[z2ui5.oResponse.PARAMS[viewNestId].METHOD_DESTROY]();` && |\n| &&
` } catch {}` && |\n| &&
` oParent[z2ui5.oResponse.PARAMS[viewNestId].METHOD_INSERT](oView);` && |\n| &&
` }` && |\n| &&
` z2ui5[viewProp] = oView;` && |\n| &&
` },` && |\n| &&
` async displayNestedView2(xml, viewProp, viewNestId) {` && |\n| &&
` let oview_model = new JSONModel(z2ui5.oResponse.OVIEWMODEL);` && |\n| &&
` const oView = await XMLView.create({` && |\n| &&
` definition: xml,` && |\n| &&
` controller: z2ui5.oControllerNest2,` && |\n| &&
` preprocessors: {` && |\n| &&
` xml: {` && |\n| &&
` models: {` && |\n| &&
` template: oview_model` && |\n| &&
` }` && |\n| &&
` }` && |\n| &&
` }` && |\n| &&
` });` && |\n| &&
` oView.setModel(oview_model);` && |\n| &&
` let oParent = z2ui5.oView.byId(z2ui5.oResponse.PARAMS[viewNestId].ID);` && |\n| &&
` if (oParent) {` && |\n| &&
` try {` && |\n| &&
` oParent[z2ui5.oResponse.PARAMS[viewNestId].METHOD_DESTROY]();` && |\n| &&
` } catch {}` && |\n| &&
` oParent[z2ui5.oResponse.PARAMS[viewNestId].METHOD_INSERT](oView);` && |\n| &&
` }` && |\n| &&
` z2ui5[viewProp] = oView;` && |\n| &&
` },` && |\n| &&
` PopupDestroy() {` && |\n| &&
` if (!z2ui5.oViewPopup) {` && |\n| &&
` return;` && |\n| &&
` }` && |\n| &&
` if (z2ui5.oViewPopup.close) {` && |\n| &&
` try {` && |\n| &&
` z2ui5.oViewPopup.close();` && |\n| &&
` } catch {}` && |\n| &&
` }` && |\n| &&
` z2ui5.oViewPopup.destroy();` && |\n| &&
` },` && |\n| &&
` PopoverDestroy() {` && |\n| &&
` if (!z2ui5.oViewPopover) {` && |\n| &&
` return;` && |\n| &&
` }` && |\n| &&
` if (z2ui5.oViewPopover.close) {` && |\n| &&
` try {` && |\n| &&
` z2ui5.oViewPopover.close();` && |\n| &&
` } catch {}` && |\n| &&
` }` && |\n| &&
` z2ui5.oViewPopover.destroy();` && |\n| &&
` },` && |\n| &&
` NestViewDestroy() {` && |\n| &&
` if (!z2ui5.oViewNest) {` && |\n| &&
` return;` && |\n| &&
` }` && |\n| &&
` z2ui5.oViewNest.destroy();` && |\n| &&
` },` && |\n| &&
` NestViewDestroy2() {` && |\n| &&
` if (!z2ui5.oViewNest2) {` && |\n| &&
` return;` && |\n| &&
` }` && |\n| &&
` z2ui5.oViewNest2.destroy();` && |\n| &&
` },` && |\n| &&
` ViewDestroy() {` && |\n| &&
` if (!z2ui5.oView) {` && |\n| &&
` return;` && |\n| &&
` }` && |\n| &&
` z2ui5.oView.destroy();` && |\n| &&
` },` && |\n| &&
` eF(...args) {` && |\n| &&
|\n| &&
` z2ui5.onBeforeEventFrontend.forEach(item => {` && |\n| &&
` if (item !== undefined) {` && |\n| &&
` item(args);` && |\n| &&
` }` && |\n| &&
` }` && |\n| &&
` )` && |\n| &&
` let oCrossAppNavigator;` && |\n| &&
` switch (args[0]) {` && |\n| &&
` case 'SET_SIZE_LIMIT':` && |\n| &&
` switch (args[2]) {` && |\n| &&
` case 'MAIN':` && |\n| &&
` z2ui5.oView.getModel().setSizeLimit(parseInt(args[1]));` && |\n| &&
` z2ui5.oView.getModel().refresh(true);` && |\n| &&
` break;` && |\n| &&
` case 'NEST':` && |\n| &&
` z2ui5.oViewNest.getModel().setSizeLimit(parseInt(args[1]));` && |\n| &&
` z2ui5.oViewNest.getModel().refresh(true);` && |\n| &&
` break;` && |\n| &&
` case 'NEST2':` && |\n| &&
` z2ui5.oViewNest2.getModel().setSizeLimit(parseInt(args[1]));` && |\n| &&
` z2ui5.oViewNest2.getModel().refresh(true);` && |\n| &&
` break;` && |\n| &&
` case 'POPUP':` && |\n| &&
` z2ui5.oPopup.getModel().setSizeLimit(parseInt(args[1]));` && |\n| &&
` z2ui5.oPopup.getModel().refresh(true);` && |\n| &&
` break;` && |\n| &&
` case 'POPOVER':` && |\n| &&
` z2ui5.oPopover.getModel().setSizeLimit(parseInt(args[1]));` && |\n| &&
` z2ui5.oPopover.getModel().refresh(true);` && |\n| &&
` break;` && |\n| &&
` }` && |\n| &&
` break;` && |\n| &&
` case 'DOWNLOAD_B64_FILE':` && |\n| &&
` var a = document.createElement("a");` && |\n| &&
` a.href = args[1];` && |\n| &&
` a.download = args[2];` && |\n| &&
` a.click();` && |\n| &&
` break;` && |\n| &&
` case 'CROSS_APP_NAV_TO_PREV_APP':` && |\n| &&
` oCrossAppNavigator = sap.ushell.Container.getService("CrossApplicationNavigation");` && |\n| &&
` oCrossAppNavigator.backToPreviousApp();` && |\n| &&
` break;` && |\n| &&
` case 'CROSS_APP_NAV_TO_EXT':` && |\n| &&
` oCrossAppNavigator = sap.ushell.Container.getService("CrossApplicationNavigation");` && |\n| &&
` const hash = (oCrossAppNavigator.hrefForExternal({` && |\n| &&
` target: args[1],` && |\n| &&
` params: args[2]` && |\n| &&
` })) || "";` && |\n| &&
` if (args[3] === 'EXT') {` && |\n| &&
` let url = window.location.href.split('#')[0] + hash;` && |\n| &&
` //todo` && |\n| &&
` //URLHelper.redirect(url, true);` && |\n| &&
` } else {` && |\n| &&
` oCrossAppNavigator.toExternal({` && |\n| &&
` target: {` && |\n| &&
` shellHash: hash` && |\n| &&
` }` && |\n| &&
` });` && |\n| &&
` }` && |\n| &&
` break;` && |\n| &&
` case 'LOCATION_RELOAD':` && |\n| &&
` window.location = args[1];` && |\n| &&
` break;` && |\n| &&
` case 'OPEN_NEW_TAB':` && |\n| &&
` window.open(args[1], '_blank');` && |\n| &&
` break;` && |\n| &&
` case 'POPUP_CLOSE':` && |\n| &&
` z2ui5.oController.PopupDestroy();` && |\n| &&
` break;` && |\n| &&
` case 'POPOVER_CLOSE':` && |\n| &&
` z2ui5.oController.PopoverDestroy();` && |\n| &&
` break;` && |\n| &&
` case 'NAV_CONTAINER_TO':` && |\n| &&
` var navCon = z2ui5.oView.byId(args[1]);` && |\n| &&
` var navConTo = z2ui5.oView.byId(args[2]);` && |\n| &&
` navCon.to(navConTo);` && |\n| &&
` break;` && |\n| &&
` case 'NEST_NAV_CONTAINER_TO':` && |\n| &&
` navCon = z2ui5.oViewNest.byId(args[1]);` && |\n| &&
` navConTo = z2ui5.oViewNest.byId(args[2]);` && |\n| &&
` navCon.to(navConTo);` && |\n| &&
` break;` && |\n| &&
` case 'NEST2_NAV_CONTAINER_TO':` && |\n| &&
` navCon = z2ui5.oViewNest2.byId(args[1]);` && |\n| &&
` navConTo = z2ui5.oViewNest2.byId(args[2]);` && |\n| &&
` navCon.to(navConTo);` && |\n| &&
` break;` && |\n| &&
` case 'POPUP_NAV_CONTAINER_TO':` && |\n| &&
` navCon = Fragment.byId("popupId", args[1]);` && |\n| &&
` navConTo = Fragment.byId("popupId", args[2]);` && |\n| &&
` navCon.to(navConTo);` && |\n| &&
` break;` && |\n| &&
` }` && |\n| &&
` },` && |\n| &&
` eB(...args) {` && |\n| &&
|\n| &&
` // var oRouter = sap.ui.core.UIComponent.getRouterFor(this);` && |\n| &&
` //debugger;` && |\n| &&
` // z2ui5.oRouter.navTo("RouteView2");` && |\n| &&
` // return;` && |\n| &&
|\n| &&
` if (!window.navigator.onLine) {` && |\n| &&
` MessageBox.alert('No internet connection! Please reconnect to the server and try again.');` && |\n| &&
` return;` && |\n| &&
` }` && |\n| &&
` if (z2ui5.isBusy == true) {` && |\n| &&
` if (!args[0][2]) {` && |\n| &&
` let oBusyDialog = new mBusyDialog();` && |\n| &&
` oBusyDialog.open();` && |\n| &&
` setTimeout( (oBusyDialog) => {` && |\n| &&
` oBusyDialog.close()` && |\n| &&
` }` && |\n| &&
` , 100, oBusyDialog);` && |\n| &&
` return;` && |\n| &&
` }` && |\n| &&
` }` && |\n| &&
` z2ui5.isBusy = true;` && |\n| &&
` BusyIndicator.show();` && |\n| &&
` z2ui5.oBody = {};` && |\n| &&
` if (args[0][3]) {` && |\n| &&
` z2ui5.oBody.XX = z2ui5.oView.getModel().getData().XX;` && |\n| &&
` z2ui5.oBody.VIEWNAME = 'MAIN';` && |\n| &&
` } else if (z2ui5.oController == this) {` && |\n| &&
` z2ui5.oBody.XX = z2ui5.oView.getModel().getData().XX;` && |\n| &&
` z2ui5.oBody.VIEWNAME = 'MAIN';` && |\n| &&
` } else if (z2ui5.oControllerPopup == this) {` && |\n| &&
` if (z2ui5.oViewPopup) {` && |\n| &&
` z2ui5.oBody.XX = z2ui5.oViewPopup.getModel().getData().XX;` && |\n| &&
` }` && |\n| &&
` z2ui5.oBody.VIEWNAME = 'MAIN';` && |\n| &&
` } else if (z2ui5.oControllerPopover == this) {` && |\n| &&
` z2ui5.oBody.XX = z2ui5.oViewPopover.getModel().getData().XX;` && |\n| &&
` z2ui5.oBody.VIEWNAME = 'MAIN';` && |\n| &&
` } else if (z2ui5.oControllerNest == this) {` && |\n| &&
` z2ui5.oBody.XX = z2ui5.oViewNest.getModel().getData().XX;` && |\n| &&
` z2ui5.oBody.VIEWNAME = 'NEST';` && |\n| &&
` } else if (z2ui5.oControllerNest2 == this) {` && |\n| &&
` z2ui5.oBody.XX = z2ui5.oViewNest2.getModel().getData().XX;` && |\n| &&
` z2ui5.oBody.VIEWNAME = 'NEST2';` && |\n| &&
` }` && |\n| &&
` z2ui5.onBeforeRoundtrip.forEach(item => {` && |\n| &&
` if (item !== undefined) {` && |\n| &&
` item();` && |\n| &&
` }` && |\n| &&
` }` && |\n| &&
` )` && |\n| &&
` if (args[0][1]) {` && |\n| &&
` z2ui5.oController.ViewDestroy();` && |\n| &&
` }` && |\n| &&
` z2ui5.oBody.ID = z2ui5.oResponse.ID;` && |\n| &&
` z2ui5.oBody.ARGUMENTS = args;` && |\n| &&
` z2ui5.oBody.ARGUMENTS.forEach( (item, i) => {` && |\n| &&
` if (i == 0) {` && |\n| &&
` return;` && |\n| &&
` }` && |\n| &&
` if (typeof item === 'object') {` && |\n| &&
` z2ui5.oBody.ARGUMENTS[i] = JSON.stringify(item);` && |\n| &&
` }` && |\n| &&
` }` && |\n| &&
` );` && |\n| &&
` z2ui5.oResponseOld = z2ui5.oResponse;` && |\n| &&
` Server.Roundtrip();` && |\n| &&
` ` && |\n| &&
` },` && |\n| &&
|\n| &&
` updateModelIfRequired(paramKey, oView) {` && |\n| &&
` if (z2ui5.oResponse.PARAMS == undefined) {` && |\n| &&
` return;` && |\n| &&
` }` && |\n| &&
` if (z2ui5.oResponse.PARAMS[paramKey]?.CHECK_UPDATE_MODEL) {` && |\n| &&
` let model = new JSONModel(z2ui5.oResponse.OVIEWMODEL);` && |\n| &&
` if (oView) {` && |\n| &&
` oView.setModel(model);` && |\n| &&
` }` && |\n| &&
` }` && |\n| &&
` },` && |\n| &&
` async checkSDKcompatibility(err) {` && |\n| &&
` let oCurrentVersionInfo = await VersionInfo.load();` && |\n| &&
` var ui5_sdk = oCurrentVersionInfo.gav.includes('com.sap.ui5') ? true : false;` && |\n| &&
` if (!ui5_sdk) {` && |\n| &&
` if (err) {` && |\n| &&
` MessageBox.error("openui5 SDK is loaded, module: " + err._modules + " is not availabe in openui5");` && |\n| &&
` return;` && |\n| &&
` }` && |\n| &&
` ;` && |\n| &&
` }` && |\n| &&
` ;MessageBox.error(err.toLocaleString());` && |\n| &&
` },` && |\n| &&
` showMessage(msgType, params) {` && |\n| &&
` if (params == undefined) {` && |\n| &&
` return;` && |\n| &&
` }` && |\n| &&
` if (params[msgType]?.TEXT !== undefined) {` && |\n| &&
` if (msgType === 'S_MSG_TOAST') {` && |\n| &&
` MessageToast.show(params[msgType].TEXT, {` && |\n| &&
` duration: params[msgType].DURATION ? parseInt(params[msgType].DURATION) : 3000,` && |\n| &&
` width: params[msgType].WIDTH ? params[msgType].WIDTH : '15em',` && |\n| &&
` onClose: params[msgType].ONCLOSE ? params[msgType].ONCLOSE : null,` && |\n| &&
` autoClose: params[msgType].AUTOCLOSE ? true : false,` && |\n| &&
` animationTimingFunction: params[msgType].ANIMATIONTIMINGFUNCTION ? params[msgType].ANIMATIONTIMINGFUNCTION : 'ease',` && |\n| &&
` animationDuration: params[msgType].ANIMATIONDURATION ? parseInt(params[msgType].ANIMATIONDURATION) : 1000,` && |\n| &&
` closeonBrowserNavigation: params[msgType].CLOSEONBROWSERNAVIGATION ? true : false` && |\n| &&
` });` && |\n| &&
` if (params[msgType].CLASS) {` && |\n| &&
` let mtoast = {};` && |\n| &&
` mtoast = document.getElementsByClassName("sapMMessageToast")[0];` && |\n| &&
` if (mtoast) {` && |\n| &&
` mtoast.classList.add(params[msgType].CLASS);` && |\n| &&
` }` && |\n| &&
` }` && |\n| &&
` ;` && |\n| &&
` } else if (msgType === 'S_MSG_BOX') {` && |\n| &&
` if (params[msgType].TYPE) {` && |\n| &&
` MessageBox[params[msgType].TYPE](params[msgType].TEXT);` && |\n| &&
` } else {` && |\n| &&
` MessageBox.show(params[msgType].TEXT, {` && |\n| &&
` styleClass: params[msgType].STYLECLASS ? params[msgType].STYLECLASS : '',` && |\n| &&
` title: params[msgType].TITLE ? params[msgType].TITLE : '',` && |\n| &&
` onClose: params[msgType].ONCLOSE ? Function("sAction", "return " + params[msgType].ONCLOSE) : null,` && |\n| &&
` actions: params[msgType].ACTIONS ? params[msgType].ACTIONS : 'OK',` && |\n| &&
` emphasizedAction: params[msgType].EMPHASIZEDACTION ? params[msgType].EMPHASIZEDACTION : 'OK',` && |\n| &&
` initialFocus: params[msgType].INITIALFOCUS ? params[msgType].INITIALFOCUS : null,` && |\n| &&
` textDirection: params[msgType].TEXTDIRECTION ? params[msgType].TEXTDIRECTION : 'Inherit',` && |\n| &&
` icon: params[msgType].ICON ? params[msgType].ICON : 'NONE',` && |\n| &&
` details: params[msgType].DETAILS ? params[msgType].DETAILS : '',` && |\n| &&
` closeOnNavigation: params[msgType].CLOSEONNAVIGATION ? true : false` && |\n| &&
` })` && |\n| &&
` }` && |\n| &&
` }` && |\n| &&
` }` && |\n| &&
` },` && |\n| &&
` setApp(oApp) {` && |\n| &&
` this._oApp = oApp;` && |\n| &&
` },` && |\n| &&
` async displayView(xml, viewModel) {` && |\n| &&
` let oview_model = new JSONModel(viewModel);` && |\n| &&
` z2ui5.oView = await XMLView.create({` && |\n| &&
` definition: xml,` && |\n| &&
` models: oview_model,` && |\n| &&
` controller: z2ui5.oController,` && |\n| &&
` id: 'mainView',` && |\n| &&
` preprocessors: {` && |\n| &&
` xml: {` && |\n| &&
` models: {` && |\n| &&
` template: oview_model` && |\n| &&
` }` && |\n| &&
` }` && |\n| &&
` }` && |\n| &&
` });` && |\n| &&
` z2ui5.oView.setModel(z2ui5.oDeviceModel, "device");` && |\n| &&
` this._oApp.removeAllPages();` && |\n| &&
` this._oApp.insertPage(z2ui5.oView);` && |\n| &&
` },` && |\n| &&
` })` && |\n| &&
`});`.
ENDMETHOD.
ENDCLASS.

View File

@ -1,16 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>Z2UI5_CL_UI5_VIEW1_JS</CLSNAME>
<LANGU>E</LANGU>
<DESCRIPT>abap2UI5 -View1.js</DESCRIPT>
<STATE>1</STATE>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -1,29 +0,0 @@
CLASS z2ui5_cl_ui5_view1_xml DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
CLASS-METHODS get
RETURNING
VALUE(result) TYPE string.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS z2ui5_cl_ui5_view1_xml IMPLEMENTATION.
METHOD get.
result = |<mvc:View controllerName="z2ui5.controller.View1"| &
| xmlns:mvc="sap.ui.core.mvc" displayBlock="true"| &
| xmlns="sap.m">| &
|</mvc:View>|.
ENDMETHOD.
ENDCLASS.

View File

@ -1,16 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>Z2UI5_CL_UI5_VIEW1_XML</CLSNAME>
<LANGU>E</LANGU>
<DESCRIPT>abap2UI5 - View1.</DESCRIPT>
<STATE>1</STATE>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -1,10 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_DEVC" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<DEVC>
<CTEXT>abap2UI5 - app (generated)</CTEXT>
</DEVC>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -143,8 +143,6 @@ CLASS z2ui5_cl_http_handler IMPLEMENTATION.
METHOD http_get. METHOD http_get.
set_config( is_custom_config ). set_config( is_custom_config ).
* ms_res-body = z2ui5_cl_ui5_index_html=>get( ms_config ).
ms_res-body = get_index_html( ). ms_res-body = get_index_html( ).
NEW z2ui5_cl_core_draft_srv( )->cleanup( ). NEW z2ui5_cl_core_draft_srv( )->cleanup( ).
@ -205,7 +203,7 @@ CLASS z2ui5_cl_http_handler IMPLEMENTATION.
METHOD get_index_html. METHOD get_index_html.
IF ms_config-styles_css IS INITIAL. IF ms_config-styles_css IS INITIAL.
DATA(lv_style_css) = z2ui5_cl_ui5_style_css=>get( ). DATA(lv_style_css) = z2ui5_cl_app_style_css=>get( ).
ELSE. ELSE.
lv_style_css = ms_config-styles_css. lv_style_css = ms_config-styles_css.
ENDIF. ENDIF.