From 756ed48ce3299aa50b6075550db9e74b4aa802e1 Mon Sep 17 00:00:00 2001 From: Daniel Date: Wed, 24 Nov 2021 19:33:13 +0100 Subject: [PATCH] Fiori apps with manage authors Signed-off-by: Daniel --- fiori/app/admin-authors/fiori-service.cds | 47 +++++++++++++++++++ .../webapp/Component.js | 0 .../webapp/i18n/i18n.properties | 0 .../webapp/manifest.json | 10 ++-- .../{admin => admin-books}/fiori-service.cds | 24 ++-------- .../webapp/Component.js | 2 +- .../webapp/i18n/i18n.properties | 0 .../webapp/manifest.json | 2 +- fiori/app/appconfig/fioriSandboxConfig.json | 26 +++++----- fiori/app/authors/fiori-service.cds | 30 ------------ fiori/app/browse/fiori-service.cds | 4 +- fiori/app/services.cds | 4 +- 12 files changed, 74 insertions(+), 75 deletions(-) create mode 100644 fiori/app/admin-authors/fiori-service.cds rename fiori/app/{authors => admin-authors}/webapp/Component.js (100%) rename fiori/app/{authors => admin-authors}/webapp/i18n/i18n.properties (100%) rename fiori/app/{authors => admin-authors}/webapp/manifest.json (94%) rename fiori/app/{admin => admin-books}/fiori-service.cds (80%) rename fiori/app/{admin => admin-books}/webapp/Component.js (63%) rename fiori/app/{admin => admin-books}/webapp/i18n/i18n.properties (100%) rename fiori/app/{admin => admin-books}/webapp/manifest.json (99%) delete mode 100644 fiori/app/authors/fiori-service.cds diff --git a/fiori/app/admin-authors/fiori-service.cds b/fiori/app/admin-authors/fiori-service.cds new file mode 100644 index 00000000..2309eae6 --- /dev/null +++ b/fiori/app/admin-authors/fiori-service.cds @@ -0,0 +1,47 @@ +using {AdminService} from '@capire/bookshop'; + +annotate AdminService.Authors with @odata.draft.enabled; + +//////////////////////////////////////////////////////////////////////////// +// +// Authors Object Page +// +annotate AdminService.Authors with @(UI : { + HeaderInfo : { + TypeName : 'Author', + TypeNamePlural : 'Authors', + Description : {Value : lifetime} + }, + Facets : [ + { + $Type : 'UI.ReferenceFacet', + Label : '{i18n>Details}', + Target : '@UI.FieldGroup#Details' + }, + { + $Type : 'UI.ReferenceFacet', + Label : '{i18n>Books}', + Target : 'books/@UI.LineItem' + }, + ], + FieldGroup #Details : {Data : [ + {Value : placeOfBirth}, + {Value : placeOfDeath}, + {Value : dateOfBirth}, + {Value : dateOfDeath}, + { + Value : age, + Label : '{i18n>Age}' + }, + ]}, +}); + + +// Workaround to avoid errors for unknown db-specific calculated fields above +extend sap.capire.bookshop.Authors with { + virtual age : Integer; + virtual lifetime : String; +} + +// Workaround for Fiori popup for asking user to enter a new UUID on Create +annotate AdminService.Authors with { ID @Core.Computed; } diff --git a/fiori/app/authors/webapp/Component.js b/fiori/app/admin-authors/webapp/Component.js similarity index 100% rename from fiori/app/authors/webapp/Component.js rename to fiori/app/admin-authors/webapp/Component.js diff --git a/fiori/app/authors/webapp/i18n/i18n.properties b/fiori/app/admin-authors/webapp/i18n/i18n.properties similarity index 100% rename from fiori/app/authors/webapp/i18n/i18n.properties rename to fiori/app/admin-authors/webapp/i18n/i18n.properties diff --git a/fiori/app/authors/webapp/manifest.json b/fiori/app/admin-authors/webapp/manifest.json similarity index 94% rename from fiori/app/authors/webapp/manifest.json rename to fiori/app/admin-authors/webapp/manifest.json index 7efe933c..f721b11d 100644 --- a/fiori/app/authors/webapp/manifest.json +++ b/fiori/app/admin-authors/webapp/manifest.json @@ -3,15 +3,15 @@ "sap.app": { "id": "authors", "type": "application", - "title": "Browse Authors", + "title": "Manage Authors", "description": "Sample Application", "i18n": "i18n/i18n.properties", "applicationVersion": { "version": "1.0.0" }, "dataSources": { - "CatalogService": { - "uri": "/browse/", + "AdminService": { + "uri": "/admin/", "type": "OData", "settings": { "odataVersion": "4.0" @@ -41,7 +41,7 @@ "subTitle": "{{appSubTitle}}", "icon": "sap-icon://SAP-icons-TNT/user", "indicatorDataSource": { - "dataSource": "CatalogService", + "dataSource": "AdminService", "path": "Authors/$count", "refresh": 1800 } @@ -62,7 +62,7 @@ "uri": "i18n/i18n.properties" }, "": { - "dataSource": "CatalogService", + "dataSource": "AdminService", "settings": { "synchronizationMode": "None", "operationMode": "Server", diff --git a/fiori/app/admin/fiori-service.cds b/fiori/app/admin-books/fiori-service.cds similarity index 80% rename from fiori/app/admin/fiori-service.cds rename to fiori/app/admin-books/fiori-service.cds index 14d00a55..58b4cc1c 100644 --- a/fiori/app/admin/fiori-service.cds +++ b/fiori/app/admin-books/fiori-service.cds @@ -40,27 +40,6 @@ annotate AdminService.Books with @( } ); -annotate AdminService.Authors with @( - UI: { - HeaderInfo: { - Description: {Value: lifetime} - }, - Facets: [ - {$Type: 'UI.ReferenceFacet', Label: '{i18n>Details}', Target: '@UI.FieldGroup#Details'}, - {$Type: 'UI.ReferenceFacet', Label: '{i18n>Books}', Target: 'books/@UI.LineItem'}, - ], - FieldGroup#Details: { - Data: [ - {Value: placeOfBirth}, - {Value: placeOfDeath}, - {Value: dateOfBirth}, - {Value: dateOfDeath}, - {Value: age, Label: '{i18n>Age}'}, - ] - }, - } -); - //////////////////////////////////////////////////////////// @@ -93,3 +72,6 @@ using { sap } from '@sap/cds/common'; extend service AdminService { @readonly entity Languages as projection on sap.common.Languages; } + +// Workaround for Fiori popup for asking user to enter a new UUID on Create +annotate AdminService.Books with { ID @Core.Computed; } diff --git a/fiori/app/admin/webapp/Component.js b/fiori/app/admin-books/webapp/Component.js similarity index 63% rename from fiori/app/admin/webapp/Component.js rename to fiori/app/admin-books/webapp/Component.js index c3137017..d4bc7328 100644 --- a/fiori/app/admin/webapp/Component.js +++ b/fiori/app/admin-books/webapp/Component.js @@ -1,6 +1,6 @@ sap.ui.define(["sap/fe/core/AppComponent"], function(AppComponent) { "use strict"; - return AppComponent.extend("admin.Component", { + return AppComponent.extend("books.Component", { metadata: { manifest: "json" } }); }); diff --git a/fiori/app/admin/webapp/i18n/i18n.properties b/fiori/app/admin-books/webapp/i18n/i18n.properties similarity index 100% rename from fiori/app/admin/webapp/i18n/i18n.properties rename to fiori/app/admin-books/webapp/i18n/i18n.properties diff --git a/fiori/app/admin/webapp/manifest.json b/fiori/app/admin-books/webapp/manifest.json similarity index 99% rename from fiori/app/admin/webapp/manifest.json rename to fiori/app/admin-books/webapp/manifest.json index bdedd060..1cac7ab1 100644 --- a/fiori/app/admin/webapp/manifest.json +++ b/fiori/app/admin-books/webapp/manifest.json @@ -1,7 +1,7 @@ { "_version": "1.8.0", "sap.app": { - "id": "admin", + "id": "books", "type": "application", "title": "Manage Books", "description": "Sample Application", diff --git a/fiori/app/appconfig/fioriSandboxConfig.json b/fiori/app/appconfig/fioriSandboxConfig.json index b223b498..a95f01f5 100644 --- a/fiori/app/appconfig/fioriSandboxConfig.json +++ b/fiori/app/appconfig/fioriSandboxConfig.json @@ -19,14 +19,6 @@ "title": "Browse Books", "targetURL": "#Books-display" } - }, - { - "id": "BrowseAuthors", - "tileType": "sap.ushell.ui.tile.StaticTile", - "properties": { - "title": "Browse Authors", - "targetURL": "#Authors-display" - } } ] }, @@ -45,6 +37,14 @@ "targetURL": "#Books-manage" } }, + { + "id": "ManageAuthors", + "tileType": "sap.ushell.ui.tile.StaticTile", + "properties": { + "title": "Manage Authors", + "targetURL": "#Authors-display" + } + }, { "id": "ManageOrders", "tileType": "sap.ushell.ui.tile.StaticTile", @@ -75,10 +75,10 @@ "signature": { "parameters": { "Books.ID": { - "renameTo": "ID" + "renameTo": "ID" }, "Authors.books.ID": { - "renameTo": "ID" + "renameTo": "ID" } }, "additionalParameters": "ignored" @@ -104,7 +104,7 @@ "resolutionResult": { "applicationType": "SAPUI5", "additionalInformation": "SAPUI5.Component=authors", - "url": "/authors/webapp" + "url": "/admin-authors/webapp" } }, "ManageBooks": { @@ -117,8 +117,8 @@ }, "resolutionResult": { "applicationType": "SAPUI5", - "additionalInformation": "SAPUI5.Component=admin", - "url": "/admin/webapp" + "additionalInformation": "SAPUI5.Component=books", + "url": "/admin-books/webapp" } }, "ManageOrders": { diff --git a/fiori/app/authors/fiori-service.cds b/fiori/app/authors/fiori-service.cds deleted file mode 100644 index 4a16c735..00000000 --- a/fiori/app/authors/fiori-service.cds +++ /dev/null @@ -1,30 +0,0 @@ -using CatalogService from '@capire/bookshop'; - -//////////////////////////////////////////////////////////////////////////// -// -// Authors Object Page -// -annotate CatalogService.Authors with @(UI : { - HeaderInfo : { - TypeName : 'Author', - TypeNamePlural : 'Authors', - Description : {Value : name} - }, - HeaderFacets : [{ - $Type : 'UI.ReferenceFacet', - Label : '{i18n>Description}', - Target : '@UI.FieldGroup#Descr' - }, ], - Facets : [{ - $Type : 'UI.ReferenceFacet', - Label : '{i18n>Details}', - Target : 'books/@UI.LineItem' - }, ], - FieldGroup #Descr : {Data : [ - {Value : name}, - {Value : dateOfBirth}, - {Value : dateOfDeath}, - {Value : placeOfBirth}, - {Value : placeOfDeath}, - ]}, -}); \ No newline at end of file diff --git a/fiori/app/browse/fiori-service.cds b/fiori/app/browse/fiori-service.cds index 15895c97..ef960b29 100644 --- a/fiori/app/browse/fiori-service.cds +++ b/fiori/app/browse/fiori-service.cds @@ -8,7 +8,7 @@ annotate CatalogService.Books with @(UI : { HeaderInfo : { TypeName : 'Book', TypeNamePlural : 'Books', - Description : {Value : authorName} + Description : {Value : author} }, HeaderFacets : [{ $Type : 'UI.ReferenceFacet', @@ -47,7 +47,7 @@ annotate CatalogService.Books with @(UI : { Label : '{i18n>Title}' }, { - Value : author.ID, + Value : author, Label : '{i18n>Author}' }, {Value : genre.name}, diff --git a/fiori/app/services.cds b/fiori/app/services.cds index 6f96e3b9..3ab3f083 100644 --- a/fiori/app/services.cds +++ b/fiori/app/services.cds @@ -2,8 +2,8 @@ This model controls what gets served to Fiori frontends... */ -using from './admin/fiori-service'; +using from './admin-authors/fiori-service'; +using from './admin-books/fiori-service'; using from './browse/fiori-service'; -using from './authors/fiori-service'; using from './common'; using from '@capire/bookstore/srv/mashup';