init
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"generationParameters": {
|
||||
"generationDate": "Mon Aug 10 2026 18:00:41 GMT+0200 (Central European Summer Time)",
|
||||
"generatorPlatform": "Visual Studio Code",
|
||||
"serviceType": "None",
|
||||
"metadataFilename": "",
|
||||
"serviceUrl": "N/A",
|
||||
"appName": "week-organizer-app",
|
||||
"appTitle": "Week Organizer",
|
||||
"appDescription": "SAPUI5, Task managment, Time organization",
|
||||
"appNamespace": "de.paulvincenthorn.weekorganizer",
|
||||
"ui5Theme": "sap_horizon",
|
||||
"ui5Version": "1.151.0",
|
||||
"enableEslint": true,
|
||||
"enableTypeScript": true,
|
||||
"showMockDataInfo": false,
|
||||
"generatorVersion": "1.30.0",
|
||||
"template": "Basic",
|
||||
"generatorName": "SAP Fiori Application Generator",
|
||||
"entityRelatedConfig": [],
|
||||
"launchText": "To launch the generated application, run the following from the generated application root folder:\n\n```\n npm start\n```"
|
||||
}
|
||||
}
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
node_modules/
|
||||
dist/
|
||||
.scp/
|
||||
.env
|
||||
Makefile*.mta
|
||||
mta_archives
|
||||
mta-*
|
||||
resources
|
||||
archive.zip
|
||||
.*_mta_build_tmp
|
||||
.vscode/
|
||||
@@ -1,5 +1,35 @@
|
||||
# week-organizer-app
|
||||
## Application Details
|
||||
| |
|
||||
| ------------- |
|
||||
|**Generation Date and Time**<br>Mon Aug 10 2026 18:00:41 GMT+0200 (Central European Summer Time)|
|
||||
|**App Generator**<br>SAP Fiori Application Generator|
|
||||
|**App Generator Version**<br>1.30.0|
|
||||
|**Generation Platform**<br>Visual Studio Code|
|
||||
|**Template Used**<br>Basic|
|
||||
|**Service Type**<br>None|
|
||||
|**Service URL**<br>N/A|
|
||||
|**Module Name**<br>week-organizer-app|
|
||||
|**Application Title**<br>Week Organizer|
|
||||
|**Namespace**<br>de.paulvincenthorn.weekorganizer|
|
||||
|**UI5 Theme**<br>sap_horizon|
|
||||
|**UI5 Version**<br>1.151.0|
|
||||
|**Enable TypeScript**<br>True|
|
||||
|**Add Eslint configuration**<br>True, see https://www.npmjs.com/package/@sap-ux/eslint-plugin-fiori-tools#rules for the eslint rules.|
|
||||
|
||||
## week-organizer-app
|
||||
|
||||
SAPUI5, Task managment, Time organization
|
||||
|
||||
### Starting the generated app
|
||||
|
||||
- This app has been generated using the SAP Fiori tools - App Generator, as part of the SAP Fiori tools suite. To launch the generated application, run the following from the generated application root folder:
|
||||
|
||||
```
|
||||
npm start
|
||||
```
|
||||
|
||||
#### Pre-requisites:
|
||||
|
||||
1. Active NodeJS LTS (Long Term Support) version and associated supported NPM version. (See https://nodejs.org)
|
||||
|
||||
|
||||
- SAPUI5
|
||||
- Task managment
|
||||
- Time organization
|
||||
@@ -0,0 +1,5 @@
|
||||
import fioriTools from '@sap-ux/eslint-plugin-fiori-tools';
|
||||
|
||||
export default [
|
||||
...fioriTools.configs.recommended
|
||||
];
|
||||
Generated
+10570
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,37 @@
|
||||
{
|
||||
"name": "week-organizer-app",
|
||||
"version": "0.0.1",
|
||||
"description": "SAPUI5, Task managment, Time organization",
|
||||
"keywords": [
|
||||
"ui5",
|
||||
"openui5",
|
||||
"sapui5"
|
||||
],
|
||||
"main": "webapp/index.html",
|
||||
"dependencies": {},
|
||||
"devDependencies": {
|
||||
"@ui5/cli": "^4.0.33",
|
||||
"@sap/ux-ui5-tooling": "1",
|
||||
"@sap-ux/eslint-plugin-fiori-tools": "^10.0.0",
|
||||
"eslint": "^10",
|
||||
"@sapui5/types": "~1.151.0",
|
||||
"ui5-tooling-transpile": "^3.10.0",
|
||||
"typescript": "^5.9.3"
|
||||
},
|
||||
"scripts": {
|
||||
"start": "fiori run --open \"test/flp.html#app-preview\"",
|
||||
"start-local": "fiori run --config ./ui5-local.yaml --open \"test/flp.html#app-preview\"",
|
||||
"build": "ui5 build --config=ui5.yaml --clean-dest --dest dist",
|
||||
"lint": "eslint ./",
|
||||
"ts-typecheck": "tsc --noEmit",
|
||||
"prestart": "npm run ts-typecheck",
|
||||
"prebuild": "npm run ts-typecheck",
|
||||
"deploy": "fiori verify",
|
||||
"deploy-config": "fiori add deploy-config",
|
||||
"start-noflp": "fiori run --open \"/index.html?sap-ui-xx-viewCache=false\"",
|
||||
"int-test": "fiori run --open \"test/integration/opaTests.qunit.html\"",
|
||||
"start-variants-management": "fiori run --open \"/preview.html#app-preview\"",
|
||||
"unit-test": "fiori run --open \"test/unit/unitTests.qunit.html\""
|
||||
},
|
||||
"sapuxLayer": "CUSTOMER_BASE"
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"target": "es2022",
|
||||
"module": "es2022",
|
||||
"skipLibCheck": true,
|
||||
"allowJs": true,
|
||||
"strict": true,
|
||||
"strictPropertyInitialization": false,
|
||||
"moduleResolution": "bundler",
|
||||
"rootDir": "./webapp",
|
||||
"outDir": "./dist",
|
||||
"paths": {
|
||||
"de/paulvincenthorn/weekorganizer/weekorganizerapp/*": [
|
||||
"./webapp/*"
|
||||
],
|
||||
"unit/*": [
|
||||
"./webapp/test/unit/*"
|
||||
],
|
||||
"integration/*": [
|
||||
"./webapp/test/integration/*"
|
||||
]
|
||||
},
|
||||
"typeRoots": [
|
||||
"./node_modules/@types",
|
||||
"./node_modules/@sapui5/types"
|
||||
]
|
||||
},
|
||||
"include": [
|
||||
"./webapp/**/*"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
# yaml-language-server: $schema=https://sap.github.io/ui5-tooling/schema/ui5.yaml.json
|
||||
|
||||
specVersion: "4.0"
|
||||
metadata:
|
||||
name: de.paulvincenthorn.weekorganizer.weekorganizerapp
|
||||
type: application
|
||||
framework:
|
||||
name: SAPUI5
|
||||
version: 1.151.0
|
||||
libraries:
|
||||
- name: sap.m
|
||||
- name: sap.ui.core
|
||||
- name: sap.ushell
|
||||
- name: themelib_sap_horizon
|
||||
server:
|
||||
customMiddleware:
|
||||
- name: fiori-tools-appreload
|
||||
afterMiddleware: compression
|
||||
configuration:
|
||||
port: 35729
|
||||
path: webapp
|
||||
delay: 300
|
||||
- name: ui5-tooling-transpile-middleware
|
||||
afterMiddleware: compression
|
||||
configuration:
|
||||
debug: true
|
||||
transformModulesToUI5:
|
||||
overridesToOverride: true
|
||||
excludePatterns:
|
||||
- /Component-preload.js
|
||||
- name: fiori-tools-preview
|
||||
afterMiddleware: fiori-tools-appreload
|
||||
configuration:
|
||||
flp:
|
||||
theme: sap_horizon
|
||||
- name: fiori-tools-proxy
|
||||
afterMiddleware: compression
|
||||
configuration:
|
||||
ignoreCertErrors: false # If set to true, certificate errors will be ignored. E.g. self-signed certificates will be accepted
|
||||
builder:
|
||||
resources:
|
||||
excludes:
|
||||
- /test/**
|
||||
- /localService/**
|
||||
customTasks:
|
||||
- name: ui5-tooling-transpile-task
|
||||
afterTask: replaceVersion
|
||||
configuration:
|
||||
debug: true
|
||||
transformModulesToUI5:
|
||||
overridesToOverride: true
|
||||
@@ -0,0 +1,48 @@
|
||||
# yaml-language-server: $schema=https://sap.github.io/ui5-tooling/schema/ui5.yaml.json
|
||||
|
||||
specVersion: "4.0"
|
||||
metadata:
|
||||
name: de.paulvincenthorn.weekorganizer.weekorganizerapp
|
||||
type: application
|
||||
server:
|
||||
customMiddleware:
|
||||
- name: fiori-tools-proxy
|
||||
afterMiddleware: compression
|
||||
configuration:
|
||||
ignoreCertErrors: false # If set to true, certificate errors will be ignored. E.g. self-signed certificates will be accepted
|
||||
ui5:
|
||||
path:
|
||||
- /resources
|
||||
- /test-resources
|
||||
url: https://ui5.sap.com
|
||||
- name: fiori-tools-appreload
|
||||
afterMiddleware: compression
|
||||
configuration:
|
||||
port: 35729
|
||||
path: webapp
|
||||
delay: 300
|
||||
- name: fiori-tools-preview
|
||||
afterMiddleware: fiori-tools-appreload
|
||||
configuration:
|
||||
flp:
|
||||
theme: sap_horizon
|
||||
- name: ui5-tooling-transpile-middleware
|
||||
afterMiddleware: compression
|
||||
configuration:
|
||||
debug: true
|
||||
transformModulesToUI5:
|
||||
overridesToOverride: true
|
||||
excludePatterns:
|
||||
- /Component-preload.js
|
||||
builder:
|
||||
resources:
|
||||
excludes:
|
||||
- /test/**
|
||||
- /localService/**
|
||||
customTasks:
|
||||
- name: ui5-tooling-transpile-task
|
||||
afterTask: replaceVersion
|
||||
configuration:
|
||||
debug: true
|
||||
transformModulesToUI5:
|
||||
overridesToOverride: true
|
||||
@@ -0,0 +1,26 @@
|
||||
import BaseComponent from "sap/ui/core/UIComponent";
|
||||
import { createDeviceModel } from "./model/models";
|
||||
|
||||
/**
|
||||
* @namespace de.paulvincenthorn.weekorganizer.weekorganizerapp
|
||||
*/
|
||||
export default class Component extends BaseComponent {
|
||||
|
||||
public static metadata = {
|
||||
manifest: "json",
|
||||
interfaces: [
|
||||
"sap.ui.core.IAsyncContentCreation"
|
||||
]
|
||||
};
|
||||
|
||||
public init() : void {
|
||||
// call the base component's init function
|
||||
super.init();
|
||||
|
||||
// set the device model
|
||||
this.setModel(createDeviceModel(), "device");
|
||||
|
||||
// enable routing
|
||||
this.getRouter().initialize();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
import Controller from "sap/ui/core/mvc/Controller";
|
||||
|
||||
/**
|
||||
* @namespace de.paulvincenthorn.weekorganizer.weekorganizerapp.controller
|
||||
*/
|
||||
export default class App extends Controller {
|
||||
|
||||
public onInit(): void {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
import Controller from "sap/ui/core/mvc/Controller";
|
||||
|
||||
/**
|
||||
* @namespace de.paulvincenthorn.weekorganizer.weekorganizerapp.controller
|
||||
*/
|
||||
export default class Main extends Controller {
|
||||
|
||||
public onInit(): void {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
/* Enter your custom styles here */
|
||||
@@ -0,0 +1,11 @@
|
||||
# This is the resource bundle for de.paulvincenthorn.weekorganizer.weekorganizerapp
|
||||
|
||||
#Texts for manifest.json
|
||||
|
||||
#XTIT: Application name
|
||||
appTitle=Week Organizer
|
||||
|
||||
#YDES: Application description
|
||||
appDescription=SAPUI5, Task managment, Time organization
|
||||
#XTIT: Main view title
|
||||
title=Week Organizer
|
||||
@@ -0,0 +1,35 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<title>Week Organizer</title>
|
||||
<style>
|
||||
html, body, body > div, #container, #container-uiarea {
|
||||
height: 100%;
|
||||
}
|
||||
</style>
|
||||
<script
|
||||
id="sap-ui-bootstrap"
|
||||
src="resources/sap-ui-core.js"
|
||||
data-sap-ui-theme="sap_horizon"
|
||||
data-sap-ui-resource-roots='{
|
||||
"de.paulvincenthorn.weekorganizer.weekorganizerapp": "./"
|
||||
}'
|
||||
data-sap-ui-on-init="module:sap/ui/core/ComponentSupport"
|
||||
data-sap-ui-compat-version="edge"
|
||||
data-sap-ui-async="true"
|
||||
data-sap-ui-frame-options="trusted"
|
||||
></script>
|
||||
</head>
|
||||
<body class="sapUiBody sapUiSizeCompact" id="content">
|
||||
<div
|
||||
data-sap-ui-component
|
||||
data-name="de.paulvincenthorn.weekorganizer.weekorganizerapp"
|
||||
data-id="container"
|
||||
data-settings='{"id" : "de.paulvincenthorn.weekorganizer.weekorganizerapp"}'
|
||||
data-handle-validation="true"
|
||||
></div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,98 @@
|
||||
{
|
||||
"_version": "1.86.0",
|
||||
"sap.app": {
|
||||
"id": "de.paulvincenthorn.weekorganizer.weekorganizerapp",
|
||||
"type": "application",
|
||||
"i18n": "i18n/i18n.properties",
|
||||
"applicationVersion": {
|
||||
"version": "0.0.1"
|
||||
},
|
||||
"title": "{{appTitle}}",
|
||||
"description": "{{appDescription}}",
|
||||
"resources": "resources.json",
|
||||
"sourceTemplate": {
|
||||
"id": "@sap/generator-fiori:basic",
|
||||
"version": "1.30.0",
|
||||
"toolsId": "b7c06782-fca8-43d8-a212-9b16ef404db7"
|
||||
}
|
||||
},
|
||||
"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.151.0",
|
||||
"libs": {
|
||||
"sap.m": {},
|
||||
"sap.ui.core": {}
|
||||
}
|
||||
},
|
||||
"contentDensities": {
|
||||
"compact": true,
|
||||
"cozy": true
|
||||
},
|
||||
"models": {
|
||||
"i18n": {
|
||||
"type": "sap.ui.model.resource.ResourceModel",
|
||||
"settings": {
|
||||
"bundleName": "de.paulvincenthorn.weekorganizer.weekorganizerapp.i18n.i18n"
|
||||
}
|
||||
}
|
||||
},
|
||||
"resources": {
|
||||
"css": [
|
||||
{
|
||||
"uri": "css/style.css"
|
||||
}
|
||||
]
|
||||
},
|
||||
"routing": {
|
||||
"config": {
|
||||
"routerClass": "sap.m.routing.Router",
|
||||
"controlAggregation": "pages",
|
||||
"controlId": "app",
|
||||
"transition": "slide",
|
||||
"type": "View",
|
||||
"viewType": "XML",
|
||||
"path": "de.paulvincenthorn.weekorganizer.weekorganizerapp.view",
|
||||
"async": true,
|
||||
"viewPath": "de.paulvincenthorn.weekorganizer.weekorganizerapp.view"
|
||||
},
|
||||
"routes": [
|
||||
{
|
||||
"name": "RouteMain",
|
||||
"pattern": ":?query:",
|
||||
"target": [
|
||||
"TargetMain"
|
||||
]
|
||||
}
|
||||
],
|
||||
"targets": {
|
||||
"TargetMain": {
|
||||
"id": "Main",
|
||||
"name": "Main"
|
||||
}
|
||||
}
|
||||
},
|
||||
"rootView": {
|
||||
"viewName": "de.paulvincenthorn.weekorganizer.weekorganizerapp.view.App",
|
||||
"type": "XML",
|
||||
"id": "App",
|
||||
"async": true
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
import JSONModel from "sap/ui/model/json/JSONModel";
|
||||
import Device from "sap/ui/Device";
|
||||
|
||||
export function createDeviceModel () {
|
||||
const model = new JSONModel(Device);
|
||||
model.setDefaultBindingMode("OneWay");
|
||||
return model;
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
/*global QUnit*/
|
||||
import opaTest from "sap/ui/test/opaQunit";
|
||||
import AppPage from "./pages/AppPage";
|
||||
import ViewPage from "./pages/MainPage";
|
||||
|
||||
import Opa5 from "sap/ui/test/Opa5";
|
||||
|
||||
QUnit.module("Navigation Journey");
|
||||
|
||||
const onTheAppPage = new AppPage();
|
||||
const onTheViewPage = new ViewPage();
|
||||
Opa5.extendConfig({
|
||||
viewNamespace: "de.paulvincenthorn.weekorganizer.weekorganizerapp.view.",
|
||||
autoWait: true
|
||||
});
|
||||
|
||||
opaTest("Should see the initial page of the app", function () {
|
||||
// Arrangements
|
||||
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
||||
onTheAppPage.iStartMyUIComponent({
|
||||
componentConfig: {
|
||||
name: "de.paulvincenthorn.weekorganizer.weekorganizerapp"
|
||||
}
|
||||
});
|
||||
|
||||
// Assertions
|
||||
onTheAppPage.iShouldSeeTheApp();
|
||||
onTheViewPage.iShouldSeeThePageView();
|
||||
|
||||
|
||||
// Cleanup
|
||||
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
||||
onTheAppPage.iTeardownMyApp();
|
||||
});
|
||||
@@ -0,0 +1,22 @@
|
||||
import Opa5 from "sap/ui/test/Opa5";
|
||||
|
||||
const sViewName = "App";
|
||||
|
||||
export default class AppPage extends Opa5 {
|
||||
// Actions
|
||||
|
||||
|
||||
// Assertions
|
||||
iShouldSeeTheApp() {
|
||||
return this.waitFor({
|
||||
id: "app",
|
||||
viewName: sViewName,
|
||||
success: function () {
|
||||
Opa5.assert.ok(true, "The " + sViewName + " view is displayed");
|
||||
},
|
||||
errorMessage: "Did not find the " + sViewName + " view"
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
import Opa5 from "sap/ui/test/Opa5";
|
||||
|
||||
const sViewName = "Main";
|
||||
|
||||
export default class MainPage extends Opa5 {
|
||||
// Actions
|
||||
|
||||
|
||||
// Assertions
|
||||
iShouldSeeThePageView() {
|
||||
return this.waitFor({
|
||||
id: "page",
|
||||
viewName: sViewName,
|
||||
success: function () {
|
||||
Opa5.assert.ok(true, "The " + sViewName + " view is displayed");
|
||||
},
|
||||
errorMessage: "Did not find the " + sViewName + " view"
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
/*global QUnit*/
|
||||
import Controller from "de/paulvincenthorn/weekorganizer/weekorganizerapp/controller/Main.controller";
|
||||
|
||||
QUnit.module("Main Controller");
|
||||
|
||||
QUnit.test("I should test the Main controller", function (assert: Assert) {
|
||||
const oAppController = new Controller("Main");
|
||||
oAppController.onInit();
|
||||
assert.ok(oAppController);
|
||||
});
|
||||
@@ -0,0 +1,7 @@
|
||||
<mvc:View controllerName="de.paulvincenthorn.weekorganizer.weekorganizerapp.controller.App"
|
||||
displayBlock="true"
|
||||
xmlns:mvc="sap.ui.core.mvc"
|
||||
xmlns="sap.m">
|
||||
<App id="app">
|
||||
</App>
|
||||
</mvc:View>
|
||||
@@ -0,0 +1,6 @@
|
||||
<mvc:View controllerName="de.paulvincenthorn.weekorganizer.weekorganizerapp.controller.Main"
|
||||
xmlns:mvc="sap.ui.core.mvc"
|
||||
xmlns="sap.m">
|
||||
<Page id="page" title="{i18n>title}">
|
||||
</Page>
|
||||
</mvc:View>
|
||||
Reference in New Issue
Block a user