#basic_template/run.py
from flaskr import app
if __name__ == "__main__":
app.run(debug=True)
#basic_template/flaskr/__init__.py
from flask import Flask
app = Flask(__name__)
import flaskr.routes
#basic_template/flaskr/routes.py
from flask import render_template, jsonify
import time
from datetime import datetime
from . import app
@app.route('/')
def index():
return render_template("index.html")
@app.route('/DashboardAnalytics', methods=["GET"])
def DashboardAnalytics():
"""
Return a simple odata container with date time information
:return:
"""
odata = {
'd': {
'results': []
}
}
i = 0
names = 'abcdefghijklmnopqrxtu'
while i < 20:
odata['d']['results'].append({
"id": i,
"name": names[i],
"datetime": datetime.fromtimestamp(time.time()).strftime('%Y-%m-%d %H:%M:%S'),
})
i+=1
return jsonify(odata)
> python run.py
<!--basic_template/flaskr/templates/index.html-->
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Basic Template</title>
<script id="sap-ui-bootstrap"
src="https://sapui5.hana.ondemand.com/resources/sap-ui-core.js"
data-sap-ui-theme="sap_belize"
data-sap-ui-resourceroots='{
"sap.ui.demo.basicTemplate": "{{ url_for('static', filename='.')}}"}'
}'
data-sap-ui-oninit="module:sap/ui/core/ComponentSupport"
data-sap-ui-compatVersion="edge"
data-sap-ui-async="true"
data-sap-ui-frameOptions="trusted">
</script>
</head>
<body class="sapUiBody">
<div data-sap-ui-component data-name="sap.ui.demo.basicTemplate" data-id="container" data-settings='{"id" : "basicTemplate"}'></div>
</body>
</html>
"sap.ui.demo.basicTemplate": "{{ url_for('static', filename='.')}}"}'
//basic_template/flaskr/static/controllers/App.controller.js
sap.ui.define([
"sap/ui/core/mvc/Controller",
"../model/formatter",
"sap/ui/core/routing/History"
], function(Controller, formatter, History) {
"use strict";
return Controller.extend("sap.ui.demo.basicTemplate.controller.App", {
formatter: formatter,
onInit: function () {
self = this;
},
press: function(tile) {
var selectedData = {};
sap.ui.core.BusyIndicator.show(0);
this.getData(tile).done(function(result) {
var oModel = new sap.ui.model.json.JSONModel(result.d);
sap.ui.getCore().setModel(oModel, "DashboardAnalyticsModel");
self.routeToApp(tile);
}).fail(function(result) {
console.log(result);
});
},
onNavBack: function() {
var sPreviousHash = History.getInstance().getPreviousHash();
if (sPreviousHash !== undefined) {
history.go(-1);
} else {
this.getRouter().navTo("home", {}, true);
}
},
getData: function(url){
return jQuery.ajax({
url: url,
type: "GET"
});
},
getRouter : function () {
return sap.ui.core.UIComponent.getRouterFor(this);
},
routeToApp: function(tile) {
self.getRouter().navTo(tile, {});
},
});
});
<!--basic_template/flaskr/static/view/App.view.xml-->
<mvc:View
displayBlock="true"
xmlns="sap.m"
xmlns:mvc="sap.ui.core.mvc">
<Shell>
<App id="app" class="appBackground">
<pages>
<!--<Page title="{i18n>title}">-->
<!-- <content></content>-->
<!--</Page>-->
</pages>
</App>
</Shell>
</mvc:View>
<!--basic_template/flaskr/static/view/Home.view.xml-->
<core:View controllerName="sap.ui.demo.basicTemplate.controller.App"
xmlns:core="sap.ui.core"
xmlns="sap.uxap"
xmlns:m="sap.m"
height="100%">
<m:Page class="firstPage" title="Launchpad">
<m:customHeader class="NavToolbar">
<m:Bar class="audienceSensorHeader">
<m:contentLeft>
</m:contentLeft>
<m:contentMiddle>
<m:Text id="titleText" class="titleTextHeader" text="Launchpad"/>
</m:contentMiddle>
<m:contentRight>
</m:contentRight>
</m:Bar>
</m:customHeader>
<m:content>
<m:HBox class="mainPage" renderType="Bare">
<ObjectPageLayout id="ObjectPageLayout">
<sections>
<ObjectPageSection id="section1" title="Section 1">
<subSections>
<ObjectPageSubSection id="OpsSection1" title="Operations">
<!--<blocks>-->
<core:Fragment fragmentName="sap.ui.demo.basicTemplate.view.Fragments.Operations" type="XML"/>
<!--</blocks>-->
</ObjectPageSubSection>
</subSections>
</ObjectPageSection>
</sections>
</ObjectPageLayout>
</m:HBox>
</m:content>
</m:Page>
</core:View>
<!--basic_template/flaskr/static/view/FlexibleColumnLayout.view.xml-->
<mvc:View id="Main" controllerName="sap.ui.demo.basicTemplate.controller.FlexibleColumnLayout"
xmlns:mvc="sap.ui.core.mvc"
displayBlock="true"
xmlns="sap.f"
xmlns:core="sap.ui.core"
xmlns:m="sap.m">
<m:Page class="secondPage" title="{i18n>title}">
<m:customHeader class="NavToolbar">
<core:Fragment fragmentName="sap.ui.demo.basicTemplate.view.Fragments.Header" type="XML"/>
</m:customHeader>
<m:content>
<FlexibleColumnLayout id="fcl" initialMidColumnPage="start" layout="TwoColumnsMidExpanded">
<beginColumnPages>
<m:Page showHeader="false">
<m:content>
<core:Fragment fragmentName="sap.ui.demo.basicTemplate.view.Fragments.Master" type="XML"/>
</m:content>
</m:Page>
</beginColumnPages>
<midColumnPages>
<m:Page id="start" showHeader="false">
<m:content>
<core:Fragment fragmentName="sap.ui.demo.basicTemplate.view.Fragments.Details" type="XML"/>
</m:content>
</m:Page>
<m:Page id="charts" showHeader="false">
<m:content>
<m:Text text="Two" />
</m:content>
</m:Page>
</midColumnPages>
</FlexibleColumnLayout>
</m:content>
</m:Page>
</mvc:View>
//basic_template/flaskr/static/controller/FlexibleColumnLayout.controller.js
sap.ui.define([
"sap/ui/demo/basicTemplate/controller/App.controller",
"sap/ui/model/Filter",
"sap/ui/model/FilterOperator",
"sap/ui/model/json/JSONModel",
"sap/m/MessageToast"
], function(AppController, Filter, FilterOperator, JSONModel, MessageToast) {
"use strict";
var self;
return AppController.extend("sap.ui.demo.basicTemplate.controller.FlexibleColumnLayout", {
onInit: function() {
this.oModelSettings = new JSONModel({
maxIterations: 200,
maxTime: 500,
initialTemperature: 200,
coolDownStep: 1
});
this.getView().setModel(this.oModelSettings, "settings");
this.getView().setModel(sap.ui.getCore().getModel("DashboardAnalyticsModel"), "DashboardAnalyticsModel");
sap.ui.core.BusyIndicator.hide(0);
}
});
});
<!--basic_template/flaskr/static/view/Fragments/Details.fragment.xml-->
<core:FragmentDefinition
xmlns="sap.m"
xmlns:f="sap.f"
xmlns:core="sap.ui.core"
xmlns:u="sap.ui.unified"
xmlns:t="sap.ui.table"
xmlns:layout="sap.ui.layout">
<f:DynamicPage id="dynamicPageId" preserveHeaderStateOnScroll="true" headerExpanded="{/headerExpanded}">
<!-- DynamicPage Title -->
<f:title>
<f:DynamicPageTitle>
<f:heading>
<Title text="Entity name: {SELECTED_ATTACHMENT>/pname}"/>
</f:heading>
<f:expandedContent>
<Label text="Age: {SELECTED_ATTACHMENT>/age}"/>
</f:expandedContent>
<f:actions>
<ToolbarSpacer/>
</f:actions>
</f:DynamicPageTitle>
</f:title>
<!-- DynamicPage Header -->
<f:header>
<f:DynamicPageHeader pinnable="true">
<f:content>
<HBox alignItems="Start" justifyContent="SpaceBetween">
<!--<layout:HorizontalLayout allowWrapping="true" >-->
<layout:VerticalLayout class="sapUiMediumMarginEnd">
<ObjectAttribute title="Name" text="{DashboardAnalyticsModel>/results/0/name}"/>
<ObjectAttribute title="Date" text="{DashboardAnalyticsModel>/results/0/datetime}"/>
</layout:VerticalLayout>
</HBox>
<!--</layout:HorizontalLayout>-->
</f:content>
</f:DynamicPageHeader>
</f:header>
<f:content>
<VBox>
<!--
<core:Fragment fragmentName="sap.ui.demo.basicTemplate.view.Fragments.TabbedControl" type="XML" />
!-->
</VBox>
</f:content>
</f:DynamicPage>
</core:FragmentDefinition>
<!--basic_template/flaskr/static/view/Fragments/Master.fragment.xml-->
<core:FragmentDefinition
xmlns="sap.m"
xmlns:f="sap.f"
xmlns:core="sap.ui.core">
<f:DynamicPage toggleHeaderOnTitleClick="false" id="masterListAttachments">
<!-- DynamicPage Title -->
<f:title>
<f:DynamicPageTitle>
<f:heading>
<Title text="User profiles ({= ${DashboardAnalyticsModel>/results}.length })"/>
</f:heading>
</f:DynamicPageTitle>
</f:title>
<!-- DynamicPage Content -->
<f:content>
<VBox>
<SearchField liveChange="onSearchChange" class="searchBar sapUiTinyMarginTop sapUiSmallMarginBottom" width="90%" search="onSearch" />
<HBox alignItems="Start" justifyContent="End">
<Button press="onSort" icon="sap-icon://sort"/>
</HBox>
<List
id="attachmentsList"
itemPress="masterListItemSelected"
items="{DashboardAnalyticsModel>/results}"
growing="true"
growingThreshold="50"
growingScrollToLoad="true">
<CustomListItem type="Active">
<HBox alignItems="Start" justifyContent="SpaceBetween">
<HBox>
<VBox class="sapUiTinyMarginTop sapUiTinyMarginBottom">
<Label text="Name:" />
<Text class="titleText" text="{DashboardAnalyticsModel>name}" />
<Label class="sapUiTinyMarginTop" text="Date:" />
<Text text="{DashboardAnalyticsModel>datetime}" />
</VBox>
</HBox>
</HBox>
</CustomListItem>
</List>
</VBox>
</f:content>
</f:DynamicPage>
</core:FragmentDefinition>
<!--basic_template/flaskr/static/view/Fragments/Header.fragment.xml-->
<core:FragmentDefinition
xmlns="sap.m"
xmlns:core="sap.ui.core"
>
<Bar>
<contentLeft>
<Button class="sapUiMediumMarginBegin sapUiMediumMarginEnd" icon="sap-icon://nav-back" press="onNavBack" />
<Select>
</Select>
</contentLeft>
<contentMiddle>
</contentMiddle>
<contentRight>
</contentRight>
</Bar>
</core:FragmentDefinition>
<!--basic_template/flaskr/static/view/Fragments/Operations.fragment.xml-->
<core:FragmentDefinition
xmlns="sap.m"
xmlns:core="sap.ui.core">
<VBox renderType="Bare">
<HBox alignItems="Start" justifyContent="SpaceBetween" wrap="Wrap">
<VBox wrap="Wrap" >
<HBox wrap="Wrap" width="100%">
<VBox class="sapUiSmallMarginEnd">
<HBox>
<GenericTile class="sapUiTinyMarginBegin sapUiTinyMarginTop tileLayout" header="Dashboards" subheader="Analytics"
press="press('DashboardAnalytics')">
<TileContent>
<NumericContent value="1" icon="sap-icon://multiple-line-chart" />
</TileContent>
</GenericTile>
</HBox>
</VBox>
</HBox>
</VBox>
</HBox>
</VBox>
</core:FragmentDefinition>
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
11 | |
7 | |
7 | |
7 | |
6 | |
6 | |
6 | |
6 | |
5 | |
5 |