cds-caching 1.3.0 → 1.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +16 -0
- package/app/dashboard/controller/App-dbg.controller.js +14 -14
- package/app/dashboard/controller/App-dbg.controller.js.map +1 -1
- package/app/dashboard/controller/App.controller.js +1 -1
- package/app/dashboard/controller/App.controller.js.map +1 -1
- package/app/dashboard/controller/App.controller.ts +14 -14
- package/app/dashboard/controller/BaseController-dbg.js +7 -0
- package/app/dashboard/controller/BaseController-dbg.js.map +1 -1
- package/app/dashboard/controller/BaseController.js +1 -1
- package/app/dashboard/controller/BaseController.js.map +1 -1
- package/app/dashboard/controller/BaseController.ts +10 -0
- package/app/dashboard/controller/Cache-dbg.controller.js +34 -25
- package/app/dashboard/controller/Cache-dbg.controller.js.map +1 -1
- package/app/dashboard/controller/Cache.controller.js +1 -1
- package/app/dashboard/controller/Cache.controller.js.map +1 -1
- package/app/dashboard/controller/Cache.controller.ts +36 -25
- package/app/dashboard/controller/SingleMetric-dbg.controller.js +56 -50
- package/app/dashboard/controller/SingleMetric-dbg.controller.js.map +1 -1
- package/app/dashboard/controller/SingleMetric.controller.js +1 -1
- package/app/dashboard/controller/SingleMetric.controller.js.map +1 -1
- package/app/dashboard/controller/SingleMetric.controller.ts +29 -22
- package/app/dashboard/i18n/i18n.properties +235 -0
- package/app/dashboard/i18n/i18n_de.properties +271 -3
- package/app/dashboard/i18n/i18n_en.properties +295 -2
- package/app/dashboard/resources/sap-ui-custom.js +11 -11
- package/app/dashboard/resources/sap-ui-custom.js.map +1 -1
- package/app/dashboard/view/Cache.view.xml +149 -149
- package/app/dashboard/view/Main.view.xml +7 -7
- package/app/dashboard/view/SingleMetric.view.xml +30 -30
- package/cds-plugin.js +31 -8
- package/lib/CachingService.js +11 -10
- package/lib/operations/BasicOperations.js +7 -4
- package/lib/support/KeyManager.js +40 -2
- package/lib/util.js +28 -2
- package/package.json +1 -1
|
@@ -14,11 +14,11 @@
|
|
|
14
14
|
*/
|
|
15
15
|
(function(){"use strict";var e=globalThis.sap&&globalThis.sap.ui&&globalThis.sap.ui.loader;if(e==null){throw new Error("ui5loader-autoconfig.js: ui5loader is needed, but could not be found")}const r=globalThis.define;globalThis.define=function r(i,t,a){const s=t.map(e=>sap.ui.require(e));const o=a(...s);e._.defineModuleSync(`${i}.js`,o)};define("sap/base/strings/_camelize",[],function(){var e=/[-\.]([a-z0-9])/gi;var r=function(r){var i=r.replace(e,function(e,r){return r.toUpperCase()});if(/^[a-z][A-Za-z0-9]*$/.test(i)){return i}return undefined};return r});function i(){var e;function r(e,r){var i=e&&e.getAttribute("src");var t=r.exec(i);var a;if(t){a={tag:e,url:i,resourceRoot:t[1]||""}}return a}if(globalThis.document){var i=/^((?:.*\/)?resources\/)/,t,a,s;e=r(globalThis.document.querySelector("SCRIPT[src][id=sap-ui-bootstrap]"),i);if(!e){a=globalThis.document.querySelectorAll("SCRIPT[src]");t=/^([^?#]*\/)?(?:sap-ui-(?:core|custom|boot|merged)(?:-[^?#/]*)?|jquery.sap.global|ui5loader(?:-autoconfig)?)\.js(?:[?#]|$)/;for(s=0;s<a.length;s++){e=r(a[s],t);if(e){break}}}}return e||{}}function t(){var r="sap-ui-config.json",t=globalThis["sap-ui-config"];if(typeof t==="string"){if(globalThis.XMLHttpRequest){e._.logger.warning('Loading external bootstrap configuration from "'+t+'". This is a design time feature and not for productive usage!');if(t!==r){e._.logger.warning('The external bootstrap configuration file should be named "'+r+'"!')}try{var a=new XMLHttpRequest;a.open("GET",t,false);a.setRequestHeader("Accept","application/json, text/javascript");a.addEventListener("load",function(){try{if(a.responseType==="json"){globalThis["sap-ui-config"]=a.response}else{globalThis["sap-ui-config"]=JSON.parse(a.responseText)}}catch(r){e._.logger.error('Parsing externalized bootstrap configuration from "'+t+'" failed! Reason: '+r+"!")}});a.addEventListener("error",function(){e._.logger.error('Loading externalized bootstrap configuration from "'+t+'" failed! Response: '+a.status+"!")});a.send(null);globalThis["sap-ui-config"].__loaded=true}catch(r){e._.logger.error('Loading externalized bootstrap configuration from "'+t+'" failed! Reason: '+r+"!")}}}var s=i();if(s.tag){var o=s.tag.dataset;if(o["sapUiConfig"]){var n=o["sapUiConfig"];var u;try{u=JSON.parse("{"+n+"}")}catch(r){e._.logger.error("JSON.parse on the data-sap-ui-config attribute failed. Please check the config for JSON syntax violations.");u=new Function("return {"+n+"};")()}if(u){if(!globalThis["sap-ui-config"]){globalThis["sap-ui-config"]={}}Object.assign(globalThis["sap-ui-config"],u)}}}}t();define("sap/base/config/GlobalConfigurationProvider",["sap/base/strings/_camelize"],function(r){var i;var t=Object.create(null);var a=/^(sapUiXx|sapUi|sap)((?:[A-Z0-9][a-z]*)+)$/;var s=Object.create(null);const o=new Map;var n=false;var u;function p(){i=Object.create(null);globalThis["sap-ui-config"]??={};var t={};var a=globalThis["sap-ui-config"];if(typeof a==="object"){for(var n in a){var u=r("sapUi-"+n);var p=s[u];if(!u){e._.logger.error("Invalid configuration option '"+n+"' in global['sap-ui-config']!")}else if(Object.hasOwn(i,u)){o.set(u,t[u])}else if(Object.hasOwn(s,u)&&a[n]!==p){i[u]=p;e._.logger.error("Configuration option '"+u+"' was frozen and cannot be changed to "+a[n]+"!")}else{i[u]=a[n];t[u]=n}}}t=undefined}function d(){if(!n){p();u._.invalidate();n=true}}function l(r,n){var u=t[r]||i[r];if(o.has(r)){e._.logger.error("Configuration option '"+o.get(r)+"' was set multiple times. Value '"+u+"' will be used");o.delete(r)}if(Object.hasOwn(s,r)){return s[r]}if(!Object.hasOwn(i,r)&&!Object.hasOwn(t,r)){var p=r.match(a);var d=p?p[1]+p[2][0]+p[2].slice(1).toLowerCase():undefined;if(d){u=t[d]||i[d]}}if(n){s[r]=u}return u}function c(r,i){if(Object.hasOwn(s,r)||n){e._.logger.error("Configuration option '"+r+"' was frozen and cannot be changed to "+i+"!")}else{t[r]=i}}function f(e){u=e}var g={get:l,set:c,freeze:d,setConfiguration:f,_:{configLoaded(){return!!globalThis["sap-ui-config"].__loaded}}};p();return g});define("sap/ui/core/config/BootstrapConfigurationProvider",["sap/base/strings/_camelize"],function(r){var t=Object.create(null);var a=/^(sapUiXx|sapUi|sap)((?:[A-Z0-9][a-z]*)+)$/;const s=new Map;var o=i();if(o.tag){var n=o.tag.dataset;if(n){for(var u in n){var p=r(u);if(!p){e._.logger.error("Invalid configuration option '"+u+"' in bootstrap!")}else if(Object.hasOwn(t,p)){s.set(p,u)}else{t[p]=n[u]}}}}function d(r){var i=t[r];if(s.has(r)){e._.logger.error("Configuration option '"+s.get(r)+"' was set multiple times. Value '"+i+"' will be used");s.delete(r)}if(i===undefined){var o=r.match(a);var n=o?o[1]+o[2][0]+o[2].slice(1).toLowerCase():undefined;if(n){i=t[n]}}return i}var l={get:d};return l});define("sap/ui/base/config/URLConfigurationProvider",["sap/base/strings/_camelize"],function(r){var i=Object.create(null);const t=new Map;if(globalThis.location){i=Object.create(null);var a={};var s=globalThis.location.search;var o=new URLSearchParams(s);o.forEach(function(s,o){const n=/sap\-?([Uu]?i\-?)?/.test(o);var u=r(o);if(u){if(Object.hasOwn(i,u)){t.set(u,a[u])}else{i[u]=s;a[u]=o}}else if(n){e._.logger.error("Invalid configuration option '"+o+"' in url!")}});a=undefined}function n(r){if(t.has(r)){e._.logger.error("Configuration option '"+t.get(r)+"' was set multiple times. Value '"+i[r]+"' will be used");t.delete(r)}return i[r]}var u={external:true,get:n};return u});define("sap/ui/base/config/MetaConfigurationProvider",["sap/base/strings/_camelize"],function(r){var i=Object.create(null);const t=new Map;if(globalThis.document){i=Object.create(null);var a={};var s=globalThis.document.querySelectorAll("meta");s.forEach(function(s){var o=r(s.name);const n=/sap\-?([Uu]?i\-?)?/.test(s.name);if(o){if(Object.hasOwn(i,o)){t.set(o,a[o])}else{i[o]=s.content;a[o]=s.name}}else if(s.name&&n){e._.logger.error("Invalid configuration option '"+s.name+"' in meta tag!")}});a=undefined}function o(r){if(t.has(r)){e._.logger.error("Configuration option '"+t.get(r)+"' was set multiple times. Value '"+i[r]+"' will be used");t.delete(r)}return i[r]}var n={get:o};return n});define("sap/base/config/_Configuration",["sap/base/config/GlobalConfigurationProvider"],function e(r){var i=/^[a-z][A-Za-z0-9]*$/;var t=/^(sapUi(?!Xx))(.*)$/;var a=Object.create(null);var s=[r];var o={name:"sapUiIgnoreUrlParams",type:"boolean"};var n={boolean:false,code:undefined,integer:0,string:"","string[]":[],"function[]":[],function:undefined,object:{},mergedObject:{}};var u={Boolean:"boolean",Code:"code",Integer:"integer",String:"string",StringArray:"string[]",FunctionArray:"function[]",Function:"function",Object:"object",MergedObject:"mergedObject"};var p=h(o);function d(e){if(e==null){return e}else if(Array.isArray(e)){return l(e)}else if(typeof e==="object"){return c(e)}else{return e}}function l(e){var r=[];for(var i=0;i<e.length;i++){r.push(d(e[i]))}return r}function c(e){var r={};for(var i in e){if(i==="__proto__"){continue}r[i]=d(e[i])}return r}function f(e){if(s.indexOf(e)===-1){s.push(e);b();p=h(o)}}function g(e,r,i){if(e===undefined||e===null){return e}if(typeof r==="string"){switch(r){case u.Boolean:if(typeof e==="string"){return e.toLowerCase()==="true"||e.toLowerCase()==="x"}else{e=!!e}break;case u.Code:e=typeof e==="function"?e:String(e);break;case u.Integer:if(typeof e==="string"){e=parseInt(e)}if(typeof e!=="number"&&isNaN(e)){throw new TypeError("unsupported value")}break;case u.String:e=""+e;break;case u.StringArray:if(Array.isArray(e)){return e}else if(typeof e==="string"){e=e?e.split(/[,;]/).map(function(e){return e.trim()}):[];return e}else{throw new TypeError("unsupported value")}case u.FunctionArray:e.forEach(function(e){if(typeof e!=="function"){throw new TypeError("Not a function: "+e)}});break;case u.Function:if(typeof e!=="function"){throw new TypeError("unsupported value")}break;case u.Object:case u.MergedObject:if(typeof e==="string"){e=JSON.parse(e)}if(typeof e!=="object"){throw new TypeError("unsupported value")}break;default:throw new TypeError("unsupported type")}}else if(typeof r==="object"&&!Array.isArray(r)){e=y(r,e,i)}else if(typeof r==="function"){e=r(e)}else{throw new TypeError("unsupported type")}return e}function y(e,r,i){var t=[];for(var a in e){if(e.hasOwnProperty(a)){if(e[a]===r){return r}t.push(e[a])}}throw new TypeError("Unsupported Enumeration value for "+i+", valid values are: "+t.join(", "))}function h(e){if(typeof e.name!=="string"||!i.test(e.name)){throw new TypeError("Invalid configuration key '"+e.name+"'!")}var r=e.name;if(e.provider){r+="-"+e.provider.getId()}if(!(r in a)){e=Object.assign({},e);var o;var l=p||!e.external;var c=e.name;var f=c.match(t);var y=e.hasOwnProperty("defaultValue")?e.defaultValue:n[e.type];const i=[...s,...e.provider?[e.provider]:[]];for(var b=i.length-1;b>=0;b--){if(!i[b].external||!l){const r=g(i[b].get(c,e.freeze),e.type,e.name);if(r!==undefined){if(e.type===u.MergedObject){o=Object.assign({},r,o)}else{o=r;break}}}}if(o===undefined&&(f&&f[1]==="sapUi")){e.name=f[1]+"Xx"+f[2];o=h(e)}if(o===undefined){if(typeof y==="function"){y=y()}o=y}a[r]=o}var v=a[r];if(typeof e.type!=="function"&&(e.type===u.StringArray||e.type===u.Object||e.type===u.MergedObject)){v=d(v)}return v}function b(){a=Object.create(null)}var v={get:h,registerProvider:f,Type:u,_:{checkEnum:y,invalidate:b}};r.setConfiguration(v);return v});globalThis.define=r;function a(){var e=sap.ui.require("sap/base/config/_Configuration");e.registerProvider(sap.ui.require("sap/ui/core/config/BootstrapConfigurationProvider"));e.registerProvider(sap.ui.require("sap/ui/base/config/MetaConfigurationProvider"));e.registerProvider(sap.ui.require("sap/ui/base/config/URLConfigurationProvider"))}a();var s=sap.ui.require("sap/base/config/_Configuration");var o,n,u,p,d,l;function c(e,r){var i=e&&e.getAttribute("src"),t=r.exec(i);if(t){o=t[1]||"";l=i;n=/sap-ui-core-nojQuery\.js(?:[?#]|$)/.test(i);return true}return false}function f(e){return e&&e[e.length-1]!=="/"?e+"/":e}if(!c(document.querySelector("SCRIPT[src][id=sap-ui-bootstrap]"),/^((?:[^?#]*\/)?resources\/)/)){p=/^([^?#]*\/)?(?:sap-ui-(?:core|custom|boot|merged)(?:-[^?#/]*)?|jquery.sap.global|ui5loader(?:-autoconfig)?)\.js(?:[?#]|$)/;u=document.scripts;for(d=0;d<u.length;d++){if(c(u[d],p)){break}}}var g=s.get({name:"sapUiResourceRoots",type:s.Type.MergedObject});if(typeof g[""]==="string"){o=g[""]}if(o==null){throw new Error("ui5loader-autoconfig.js: could not determine base URL. No known script tag and no configuration found!")}(function(){var e;try{e=window.localStorage.getItem("sap-ui-reboot-URL")}catch(e){}var r=s.get({name:"sapBootstrapDebug",type:s.Type.Boolean,external:true,freeze:true});if(r){debugger}if(e){var i=f(o)+"sap/ui/core/support/debugReboot.js";document.write('<script src="'+i+'"><\/script>');var t=new Error("This is not a real error. Aborting UI5 bootstrap and rebooting from: "+e);t.name="Restart";throw t}})();(function(){var r=s.get({name:"sapUiDebug",type:s.Type.String,defaultValue:false,external:true,freeze:true});try{r=r||window.localStorage.getItem("sap-ui-debug")}catch(e){}if(typeof r==="string"){if(/^(?:false|true|x|X)$/.test(r)){r=r!=="false"}}else{r=!!r}if(/-dbg\.js([?#]|$)/.test(l)){window["sap-ui-loaddbg"]=true;r=r||true}window["sap-ui-debug"]=r;window["sap-ui-optimized"]=window["sap-ui-optimized"]||/\.getAttribute/.test(c)&&!/oScript/.test(c);if(window["sap-ui-optimized"]&&r){window["sap-ui-loaddbg"]=true;if(r===true&&!window["sap-ui-debug-no-reboot"]){var i;if(l!=null){i=l.replace(/\/(?:sap-ui-cachebuster\/)?([^\/]+)\.js/,"/$1-dbg.js")}else{i=f(o)+"sap-ui-core.js"}e.config({amd:false});window["sap-ui-optimized"]=false;if(e.config().async){var t=document.createElement("script");t.src=i;document.head.appendChild(t)}else{document.write('<script src="'+i+'"><\/script>')}var a=new Error("This is not a real error. Aborting UI5 bootstrap and restarting from: "+i);a.name="Restart";throw a}}function n(e){if(!/\/\*\*\/$/.test(e)){e=e.replace(/\/$/,"/**/")}return e.replace(/\*\*\/|\*|[[\]{}()+?.\\^$|]/g,function(e){switch(e){case"**/":return"(?:[^/]+/)*";case"*":return"[^/]*";default:return"\\"+e}})}var u;if(typeof r==="string"){var p="^(?:"+r.split(/,/).map(n).join("|")+")",d=new RegExp(p);u=function(e){return d.test(e)};e._.logger.debug("Modules that should be excluded from preload: '"+p+"'")}else if(r===true){u=function(){return true};e._.logger.debug("All modules should be excluded from preload")}e.config({debugSources:!!window["sap-ui-loaddbg"],ignoreBundledResources:u})})();const y=s.get({name:"sapUiXxFuture",type:s.Type.Boolean,external:true,freeze:true});(()=>{const r=s.get({name:"sapUiAsync",type:s.Type.Boolean,external:true,freeze:true})||y;if(r){e.config({async:true})}})();e._.maxTaskDuration=s.get({name:"sapUiXxMaxLoaderTaskDuration",type:s.Type.Integer,defaultValue:undefined,external:true,freeze:true});const h=s.get({name:"sapUiAmd",type:s.Type.Boolean,defaultValue:!s.get({name:"sapUiNoLoaderConflict",type:s.Type.Boolean,defaultValue:true,external:true,freeze:true}),external:true,freeze:true});let b=0;let v=s.get({name:"sapUiXxNoSync",type:s.Type.String,external:true,freeze:true});v=y?"x":v;if(v==="warn"){b=1}else if(/^(true|x)$/i.test(v)){b=2}(()=>{const r=sap.ui.require("sap/base/config/GlobalConfigurationProvider");if(b&&r._.configLoaded()){const r="[nosync]: configuration loaded via sync XHR";if(b===1){e._.logger.warning(r)}else{e._.logger.error(r)}}})();e.config({baseUrl:o,amd:h,map:{"*":{blanket:"sap/ui/thirdparty/blanket",crossroads:"sap/ui/thirdparty/crossroads",d3:"sap/ui/thirdparty/d3",handlebars:"sap/ui/thirdparty/handlebars",hasher:"sap/ui/thirdparty/hasher",IPv6:"sap/ui/thirdparty/IPv6",jquery:"sap/ui/thirdparty/jquery",jszip:"sap/ui/thirdparty/jszip",less:"sap/ui/thirdparty/less",OData:"sap/ui/thirdparty/datajs",punycode:"sap/ui/thirdparty/punycode",SecondLevelDomains:"sap/ui/thirdparty/SecondLevelDomains",sinon:"sap/ui/thirdparty/sinon",signals:"sap/ui/thirdparty/signals",URI:"sap/ui/thirdparty/URI",URITemplate:"sap/ui/thirdparty/URITemplate",esprima:"sap/ui/documentation/sdk/thirdparty/esprima"}},reportSyncCalls:b,shim:{"sap/ui/thirdparty/bignumber":{amd:true,exports:"BigNumber"},"sap/ui/thirdparty/blanket":{amd:true,exports:"blanket"},"sap/ui/thirdparty/caja-html-sanitizer":{amd:false,exports:"html"},"sap/ui/thirdparty/crossroads":{amd:true,exports:"crossroads",deps:["sap/ui/thirdparty/signals"]},"sap/ui/thirdparty/d3":{amd:true,exports:"d3"},"sap/ui/thirdparty/datajs":{amd:true,exports:"OData"},"sap/ui/thirdparty/handlebars":{amd:true,exports:"Handlebars"},"sap/ui/thirdparty/hasher":{amd:true,exports:"hasher",deps:["sap/ui/thirdparty/signals"]},"sap/ui/thirdparty/IPv6":{amd:true,exports:"IPv6"},"sap/ui/thirdparty/iscroll-lite":{amd:false,exports:"iScroll"},"sap/ui/thirdparty/iscroll":{amd:false,exports:"iScroll"},"sap/ui/thirdparty/jquery":{amd:true,exports:"jQuery",deps:["sap/ui/thirdparty/jquery-compat"]},"sap/ui/thirdparty/jqueryui/jquery-ui-datepicker":{deps:["sap/ui/thirdparty/jqueryui/jquery-ui-core"],exports:"jQuery"},"sap/ui/thirdparty/jqueryui/jquery-ui-draggable":{deps:["sap/ui/thirdparty/jqueryui/jquery-ui-mouse"],exports:"jQuery"},"sap/ui/thirdparty/jqueryui/jquery-ui-droppable":{deps:["sap/ui/thirdparty/jqueryui/jquery-ui-mouse","sap/ui/thirdparty/jqueryui/jquery-ui-draggable"],exports:"jQuery"},"sap/ui/thirdparty/jqueryui/jquery-ui-effect":{deps:["sap/ui/thirdparty/jquery"],exports:"jQuery"},"sap/ui/thirdparty/jqueryui/jquery-ui-mouse":{deps:["sap/ui/thirdparty/jqueryui/jquery-ui-core","sap/ui/thirdparty/jqueryui/jquery-ui-widget"],exports:"jQuery"},"sap/ui/thirdparty/jqueryui/jquery-ui-position":{deps:["sap/ui/thirdparty/jquery"],exports:"jQuery"},"sap/ui/thirdparty/jqueryui/jquery-ui-resizable":{deps:["sap/ui/thirdparty/jqueryui/jquery-ui-mouse"],exports:"jQuery"},"sap/ui/thirdparty/jqueryui/jquery-ui-selectable":{deps:["sap/ui/thirdparty/jqueryui/jquery-ui-mouse"],exports:"jQuery"},"sap/ui/thirdparty/jqueryui/jquery-ui-sortable":{deps:["sap/ui/thirdparty/jqueryui/jquery-ui-mouse"],exports:"jQuery"},"sap/ui/thirdparty/jqueryui/jquery-ui-widget":{deps:["sap/ui/thirdparty/jquery"],exports:"jQuery"},"sap/ui/thirdparty/jquery-mobile-custom":{amd:true,deps:["sap/ui/thirdparty/jquery","sap/ui/Device"],exports:"jQuery.mobile"},"sap/ui/thirdparty/jszip":{amd:true,exports:"JSZip"},"sap/ui/thirdparty/less":{amd:true,exports:"less"},"sap/ui/thirdparty/qunit-2":{amd:false,exports:"QUnit"},"sap/ui/thirdparty/punycode":{amd:true,exports:"punycode"},"sap/ui/thirdparty/RequestRecorder":{amd:true,exports:"RequestRecorder",deps:["sap/ui/thirdparty/URI","sap/ui/thirdparty/sinon"]},"sap/ui/thirdparty/require":{exports:"define"},"sap/ui/thirdparty/SecondLevelDomains":{amd:true,exports:"SecondLevelDomains"},"sap/ui/thirdparty/signals":{amd:true,exports:"signals"},"sap/ui/thirdparty/sinon":{amd:true,exports:"sinon"},"sap/ui/thirdparty/sinon-4":{amd:true,exports:"sinon"},"sap/ui/thirdparty/sinon-server":{amd:true,exports:"sinon"},"sap/ui/thirdparty/URI":{amd:true,exports:"URI"},"sap/ui/thirdparty/URITemplate":{amd:true,exports:"URITemplate",deps:["sap/ui/thirdparty/URI"]},"sap/ui/thirdparty/vkbeautify":{amd:false,exports:"vkbeautify"},"sap/ui/thirdparty/zyngascroll":{amd:false,exports:"Scroller"},"sap/ui/demokit/js/esprima":{amd:true,exports:"esprima"},"sap/ui/documentation/sdk/thirdparty/esprima":{amd:true,exports:"esprima"},"sap/viz/libs/canvg":{deps:["sap/viz/libs/rgbcolor"]},"sap/viz/libs/rgbcolor":{},"sap/viz/libs/sap-viz":{deps:["sap/viz/library","sap/ui/thirdparty/jquery","sap/ui/thirdparty/d3","sap/viz/libs/canvg"]},"sap/viz/libs/sap-viz-info-charts":{amd:true,deps:["sap/viz/libs/sap-viz-info-framework"]},"sap/viz/libs/sap-viz-info-framework":{amd:true,deps:["sap/ui/thirdparty/jquery","sap/ui/thirdparty/d3"]},"sap/viz/ui5/container/libs/sap-viz-controls-vizcontainer":{deps:["sap/viz/libs/sap-viz","sap/viz/ui5/container/libs/common/libs/rgbcolor/rgbcolor_static"]},"sap/viz/ui5/controls/libs/sap-viz-vizframe/sap-viz-vizframe":{deps:["sap/viz/libs/sap-viz-info-charts"]},"sap/viz/ui5/controls/libs/sap-viz-vizservices/sap-viz-vizservices":{deps:["sap/viz/libs/sap-viz-info-charts"]},"sap/viz/resources/chart/templates/standard_fiori/template":{deps:["sap/viz/libs/sap-viz-info-charts"]}}});var m=e._.defineModuleSync;m("ui5loader.js",null);m("ui5loader-autoconfig.js",null);if(n&&typeof jQuery==="function"){m("sap/ui/thirdparty/jquery.js",jQuery);if(jQuery.ui&&jQuery.ui.position){m("sap/ui/thirdparty/jqueryui/jquery-ui-position.js",jQuery)}}var j=s.get({name:"sapUiMain",type:s.Type.String,freeze:true});if(j){sap.ui.require(j.trim().split(/\s*,\s*/))}})();
|
|
16
16
|
sap.ui.predefine("cds/plugin/caching/dashboard/Component", ["sap/ui/core/UIComponent","./model/models","sap/ui/Device","./model/formatter","sap/ui/model/json/JSONModel"],function(e,t,n,s,i){"use strict";function o(e){return e&&e.__esModule&&typeof e.default!=="undefined"?e.default:e}const a=o(t);const c=o(s);const l=e.extend("cds.plugin.caching.dashboard.Component",{metadata:{manifest:"json",interfaces:["sap.ui.core.IAsyncContentCreation"]},init:function t(){e.prototype.init.call(this);this.setModel(a.createDeviceModel(),"device");this.setModel(new i({selectedCache:null,selectedTab:"main",layout:"OneColumn"}),"app");this.setModel(new i(c),"formatter");this.getRouter().initialize()},getContentDensityClass:function e(){if(this.contentDensityClass===undefined){if(document.body.classList.contains("sapUiSizeCozy")||document.body.classList.contains("sapUiSizeCompact")){this.contentDensityClass=""}else if(!n.support.touch){this.contentDensityClass="sapUiSizeCompact"}else{this.contentDensityClass="sapUiSizeCozy"}}return this.contentDensityClass}});return l});
|
|
17
|
-
sap.ui.predefine("cds/plugin/caching/dashboard/controller/App.controller", ["sap/m/MessageBox","./BaseController","sap/m/MessageToast"],function(t,e,
|
|
18
|
-
sap.ui.predefine("cds/plugin/caching/dashboard/controller/BaseController", ["sap/ui/core/mvc/Controller","sap/ui/core/UIComponent","sap/ui/core/routing/History"],function(e,t,n){"use strict";const o=e.extend("cds.plugin.caching.dashboard.controller.BaseController",{onInit:function e(){},getOwnerComponent:function t(){return e.prototype.getOwnerComponent.call(this)},getRouter:function e(){return t.getRouterFor(this)},getResourceBundle:function e(){const t=this.getOwnerComponent().getModel("i18n");return t.getResourceBundle()},getModel:function e(t){return this.getView().getModel(t)},setModel:function e(t,n){this.getView().setModel(t,n);return this},navTo:function e(t,n,o){this.getRouter().navTo(t,n,undefined,o)},onNavBack:function e(){const t=n.getInstance().getPreviousHash();if(t!==undefined){window.history.go(-1)}else{this.getRouter().navTo("main",{},undefined,true)}}});return o});
|
|
19
|
-
sap.ui.predefine("cds/plugin/caching/dashboard/controller/Cache.controller", ["sap/m/MessageBox","./BaseController","sap/ui/model/json/JSONModel","sap/m/MessageToast","sap/ui/model/Filter","sap/ui/model/FilterOperator","sap/ui/core/Fragment"],function(e,t,n,i,o,r,s){"use strict";function a(e){return e&&e.__esModule&&typeof e.default!=="undefined"?e.default:e}const c=a(t);const l=c.extend("cds.plugin.caching.dashboard.controller.Cache",{onInit:function e(){c.prototype.onInit.call(this);this.uiModel=new n({selectedTab:"main",statistics:[],loading:false,loadingEntries:false,showEntriesTable:false,cacheEntries:[],createKey:"",createValue:"",createTtl:3600,getKey:"",getValue:"",deleteKey:"",metricsEnabled:false,keyMetricsEnabled:false});this.getView().setModel(this.uiModel,"ui");this.getRouter().getRoute("cache").attachPatternMatched(this.onRouteMatched,this)},onRouteMatched:function e(t){const{cache:n}=t.getParameter("arguments");this.getModel("app").setProperty("/selectedCache",n);this.getModel("app").setProperty("/layout","TwoColumnsMidExpanded");this.getView().bindElement({path:"/Caches('"+n+"')",events:{change:e=>{const t=this.getView().getElementBinding().getBoundContext();if(t){const e=t.getProperty("configuration");this.uiModel.setProperty("/config",e);this.loadStatistics();this.loadKeyMetricsData()}}}})},loadStatistics:async function e(t=false){const n=this.getView().byId("metricsTable");const i=new o("cache",r.EQ,this.getModel("app").getProperty("/selectedCache"));if(n.getBinding("rows").isSuspended()){n.getBinding("rows").resume()}if(t){n.getBinding("rows").refresh()}else{n.getBinding("rows").filter(i)}},loadKeyMetricsData:async function e(t=false){const n=this.getView().byId("keyMetricsTable");const i=new o("cache",r.EQ,this.getModel("app").getProperty("/selectedCache"));if(n.getBinding("rows").isSuspended()){n.getBinding("rows").resume()}if(t){n.getBinding("rows").refresh()}else{n.getBinding("rows").filter(i)}},onLoadCacheEntries:async function t(){const n=this.getView().getElementBinding().getBoundContext();try{this.uiModel.setProperty("/loadingEntries",true);this.uiModel.setProperty("/showEntriesTable",true);this.uiModel.setSizeLimit(1e5);const e=this.getModel();const t=e.bindContext(`plugin.cds_caching.CachingApiService.getEntries(...)`,n);await t.invoke();const{value:i}=await t.requestObject();for(const e of i){e.tags=e.tags.join(", ")}this.uiModel.setProperty("/cacheEntries",i)}catch(t){console.error("Error loading cache entries:",t);e.error("Failed to load cache entries")}finally{this.uiModel.setProperty("/loadingEntries",false)}},onMetricsRowSelect:function e(t){const n=t.getParameter("rowContext");if(n){const e=n.getObject();const t=this.getView().getElementBinding().getBoundContext().getProperty("name");this.getRouter().navTo("singleMetric",{cache:t,metricId:e.ID});this.getModel("app").setProperty("/layout","ThreeColumnsEndExpanded")}},onSetKey:async function t(){const n=this.getView().getElementBinding().getBoundContext();const o=this.uiModel.getProperty("/createKey");const r=this.uiModel.getProperty("/createValue");const s=this.uiModel.getProperty("/createTtl");if(!o||!r){e.error("Please provide both key and value");return}try{const e=this.getModel();const t=e.bindContext(`plugin.cds_caching.CachingApiService.setEntry(...)`,n);t.setParameter("key",o);t.setParameter("value",r);t.setParameter("ttl",s);await t.invoke();i.show("Cache entry created successfully");this.uiModel.setProperty("/createKey","");this.uiModel.setProperty("/createValue","");this.uiModel.setProperty("/createTtl",3600)}catch(t){console.error("Error setting cache entry:",t);e.error("Failed to create cache entry")}},onGetKey:async function t(){const n=this.getView().getElementBinding().getBoundContext();const i=this.uiModel.getProperty("/getKey");if(!i){e.error("Please provide a key");return}try{const e=this.getModel();const t=e.bindContext(`plugin.cds_caching.CachingApiService.getEntry(...)`,n);t.setParameter("key",i);await t.invoke();const o=await t.requestObject();this.uiModel.setProperty("/getValue",o.value||"Not found")}catch(e){console.error("Error getting cache entry:",e);this.uiModel.setProperty("/getValue","Error: Entry not found or error occurred")}},onDeleteKey:async function t(){const n=this.getView().getElementBinding().getBoundContext();const o=this.uiModel.getProperty("/deleteKey");if(!o){e.error("Please provide a key");return}try{const e=this.getModel();const t=e.bindContext(`plugin.cds_caching.CachingApiService.deleteEntry(...)`,n);t.setParameter("key",o);await t.invoke();i.show("Cache entry deleted successfully");this.uiModel.setProperty("/deleteKey","")}catch(t){console.error("Error deleting cache entry:",t);e.error("Failed to delete cache entry")}},onEnableMetricsChange:async function t(n){const o=n.getParameter("state");const r=this.getView().getElementBinding().getBoundContext();try{const e=this.getModel();const t=e.bindContext(`plugin.cds_caching.CachingApiService.setMetricsEnabled(...)`,r);t.setParameter("enabled",o);await t.invoke();i.show(`Metrics ${o?"enabled":"disabled"} successfully`)}catch(t){console.error("Error setting metrics enabled:",t);e.error("Failed to update metrics setting");this.uiModel.setProperty("/enableMetrics",!o)}},onEnableKeyMetricsChange:async function t(n){const o=n.getParameter("state");const r=this.getView().getElementBinding().getBoundContext();try{const e=this.getModel();const t=e.bindContext(`plugin.cds_caching.CachingApiService.setKeyMetricsEnabled(...)`,r);t.setParameter("enabled",o);await t.invoke();i.show(`Key metrics ${o?"enabled":"disabled"} successfully`)}catch(t){console.error("Error setting key metrics enabled:",t);e.error("Failed to update key metrics setting");this.uiModel.setProperty("/enableKeyMetrics",!o)}},onClearCache:async function t(){const n=this.getView().getElementBinding().getBoundContext();e.confirm("Are you sure you want to clear this cache? This action cannot be undone.",{actions:[e.Action.OK,e.Action.CANCEL],emphasizedAction:e.Action.OK,onClose:async t=>{if(t===e.Action.OK){try{const t=this.getModel();const i=t.bindContext(`plugin.cds_caching.CachingApiService.clear(...)`,n);await i.invoke();e.success("Cache cleared successfully");await this.onRefresh()}catch(t){console.error("Error clearing cache:",t);e.error("Failed to clear cache")}}}})},onRefresh:async function e(){if(this.getView().getElementBinding().getBoundContext()){await this.loadStatistics(true);await this.loadKeyMetricsData(true)}},handleClose:function e(){this.getRouter().navTo("main")},handleFullScreen:function e(){this.getModel("app").setProperty("/layout","MidColumnFullScreen")},handleExitFullScreen:function e(){this.getModel("app").setProperty("/layout","TwoColumnsMidExpanded")},onKeyMetricsRowSelect:function e(t){const n=t.getParameter("rowContext");if(n){const e=n.getObject();const t=this.getView().getElementBinding().getBoundContext().getProperty("name");this.getRouter().navTo("singleKeyMetric",{cache:t,keyMetricId:e.ID});this.getModel("app").setProperty("/layout","ThreeColumnsEndExpanded")}},onRefreshKeyMetricsData:async function e(){await this.loadKeyMetricsData(true)},onRefreshMetricsData:async function e(){await this.loadStatistics(true)},onShowKeyMetricsMetadata:async function e(t){const i=t.getSource().getBindingContext();const o=e=>{try{return JSON.stringify(JSON.parse(e),null,2)}catch(t){return e}};const r=new n({metadata:o(i.getProperty("metadata")),subject:o(i.getProperty("subject")),query:o(i.getProperty("query")),cacheOptions:o(i.getProperty("cacheOptions")),keyName:i.getProperty("keyName")});const a=await s.load({definition:`<core:FragmentDefinition xmlns:core="sap.ui.core" xmlns:mvc="sap.ui.core.mvc" xmlns="sap.m" xmlns:form="sap.ui.layout.form">\n <Popover title="{localData>/keyName}" placement="Bottom" contentWidth="30rem">\n <content>\n <IconTabBar>\n <items>\n <IconTabFilter text="Metadata">\n <content>\n <TextArea value="{localData>/metadata}" rows="20" width="100%" editable="false" />\n </content>\n </IconTabFilter>\n <IconTabFilter text="Subject" >\n <content>\n <TextArea value="{localData>/subject}" rows="20" width="100%" editable="false" />\n </content>\n </IconTabFilter>\n <IconTabFilter text="Query" >\n <content>\n <TextArea value="{localData>/query}" rows="20" width="100%" editable="false" />\n </content>\n </IconTabFilter>\n <IconTabFilter text="Cache Options" >\n <content>\n <TextArea value="{localData>/cacheOptions}" rows="20" width="100%" editable="false" />\n </content>\n </IconTabFilter>\n </items>\n </IconTabBar>\n </content>\n </Popover>\n </core:FragmentDefinition>`,controller:this});const c=a;c.setModel(r,"localData");c.openBy(t.getSource())},onClearMetrics:async function t(){const n=this.getView().getElementBinding().getBoundContext();if(!n){return}try{const e=this.getModel();const t=e.bindContext(`plugin.cds_caching.CachingApiService.clearMetrics(...)`,n);await t.invoke();i.show("Metrics cleared successfully");await this.onRefreshMetricsData()}catch(t){console.error("Error clearing metrics:",t);e.error("Failed to clear metrics")}},onClearKeyMetrics:async function t(){const n=this.getView().getElementBinding().getBoundContext();if(!n){return}try{const e=this.getModel();const t=e.bindContext(`plugin.cds_caching.CachingApiService.clearKeyMetrics(...)`,n);await t.invoke();i.show("Key metrics cleared successfully");await this.onRefreshKeyMetricsData()}catch(t){console.error("Error clearing key metrics:",t);e.error("Failed to clear key metrics")}}});return l});
|
|
17
|
+
sap.ui.predefine("cds/plugin/caching/dashboard/controller/App.controller", ["sap/m/MessageBox","./BaseController","sap/m/MessageToast"],function(t,e,i){"use strict";function s(t){return t&&t.__esModule&&typeof t.default!=="undefined"?t.default:t}const a=s(e);const n=a.extend("cds.plugin.caching.dashboard.controller.App",{onInit:function t(){this.getView().addStyleClass(this.getOwnerComponent().getContentDensityClass())},onSelectionChange:function t(e){const i=e.getParameter("selectedKey");this.getRouter().navTo(i)},onCacheChange:async function t(){const e=this.getModel("app").getProperty("/selectedCache");if(e){await this.loadRuntimeConfiguration(e)}},loadRuntimeConfiguration:async function t(e){try{const t=await this.statisticsService.getRuntimeConfiguration(e);this.getModel("app").setProperty("/enableStatistics",t.enableStatistics);this.getModel("app").setProperty("/enableKeyTracking",t.enableKeyTracking)}catch(t){console.error("Error loading runtime configuration:",t);this.getModel("app").setProperty("/enableStatistics",false);this.getModel("app").setProperty("/enableKeyTracking",false)}},onEnableStatisticsChange:async function e(s){const a=s.getParameter("state");const n=this.getModel("app").getProperty("/selectedCache");if(!n){t.warning(await this.i18nText("msgNoCacheSelected"));this.getModel("app").setProperty("/enableStatistics",!a);return}try{i.show(await this.i18nText("msgUpdatingStatsConfig"));const t=await this.statisticsService.setStatisticsEnabled(n,a);if(t){i.show(await this.i18nText(a?"msgStatsEnabled":"msgStatsDisabled"));await this.loadRuntimeConfiguration(n)}else{i.show(await this.i18nText("msgFailedUpdateStatsConfig"));this.getModel("app").setProperty("/enableStatistics",!a)}}catch(t){console.error("Error updating statistics configuration:",t);i.show(await this.i18nText("msgErrorUpdateStatsConfig"));this.getModel("app").setProperty("/enableStatistics",!a)}},onEnableKeyTrackingChange:async function e(s){const a=s.getParameter("state");const n=this.getModel("app").getProperty("/selectedCache");if(!n){t.warning(await this.i18nText("msgNoCacheSelected"));this.getModel("app").setProperty("/enableKeyTracking",!a);return}try{i.show(await this.i18nText("msgUpdatingKeyTracking"));const t=await this.statisticsService.setKeyTrackingEnabled(n,a);if(t){i.show(await this.i18nText(a?"msgKeyTrackingEnabled":"msgKeyTrackingDisabled"));await this.loadRuntimeConfiguration(n)}else{i.show(await this.i18nText("msgFailedKeyTracking"));this.getModel("app").setProperty("/enableKeyTracking",!a)}}catch(t){console.error("Error updating key tracking configuration:",t);i.show(await this.i18nText("msgErrorKeyTracking"));this.getModel("app").setProperty("/enableKeyTracking",!a)}},onPersistStatistics:async function e(){try{const e=this.getModel("app").getProperty("/selectedCache");if(!e){t.warning(await this.i18nText("msgNoCacheSelected"));return}const s=await this.statisticsService.persistStatistics(e);if(s){i.show(await this.i18nText("msgStatsPersisted"))}else{i.show(await this.i18nText("msgFailedPersistStats"))}}catch(t){console.error("Error persisting statistics:",t);i.show(await this.i18nText("msgErrorPersistStats"))}}});return n});
|
|
18
|
+
sap.ui.predefine("cds/plugin/caching/dashboard/controller/BaseController", ["sap/ui/core/mvc/Controller","sap/ui/core/UIComponent","sap/ui/core/routing/History"],function(e,t,n){"use strict";const o=e.extend("cds.plugin.caching.dashboard.controller.BaseController",{onInit:function e(){},getOwnerComponent:function t(){return e.prototype.getOwnerComponent.call(this)},getRouter:function e(){return t.getRouterFor(this)},getResourceBundle:function e(){const t=this.getOwnerComponent().getModel("i18n");return t.getResourceBundle()},i18nText:async function e(t,n){const o=await this.getResourceBundle();return n&&n.length?o.getText(t,n):o.getText(t)},getModel:function e(t){return this.getView().getModel(t)},setModel:function e(t,n){this.getView().setModel(t,n);return this},navTo:function e(t,n,o){this.getRouter().navTo(t,n,undefined,o)},onNavBack:function e(){const t=n.getInstance().getPreviousHash();if(t!==undefined){window.history.go(-1)}else{this.getRouter().navTo("main",{},undefined,true)}}});return o});
|
|
19
|
+
sap.ui.predefine("cds/plugin/caching/dashboard/controller/Cache.controller", ["sap/m/MessageBox","./BaseController","sap/ui/model/json/JSONModel","sap/m/MessageToast","sap/ui/model/Filter","sap/ui/model/FilterOperator","sap/ui/core/Fragment"],function(e,t,n,i,a,o,s){"use strict";function r(e){return e&&e.__esModule&&typeof e.default!=="undefined"?e.default:e}const c=r(t);const l=c.extend("cds.plugin.caching.dashboard.controller.Cache",{onInit:function e(){c.prototype.onInit.call(this);this.uiModel=new n({selectedTab:"main",statistics:[],loading:false,loadingEntries:false,showEntriesTable:false,cacheEntries:[],createKey:"",createValue:"",createTtl:3600,getKey:"",getValue:"",deleteKey:"",metricsEnabled:false,keyMetricsEnabled:false});this.getView().setModel(this.uiModel,"ui");this.getRouter().getRoute("cache").attachPatternMatched(this.onRouteMatched,this)},onRouteMatched:function e(t){const{cache:n}=t.getParameter("arguments");this.getModel("app").setProperty("/selectedCache",n);this.getModel("app").setProperty("/layout","TwoColumnsMidExpanded");this.getView().bindElement({path:"/Caches('"+n+"')",events:{change:e=>{const t=this.getView().getElementBinding().getBoundContext();if(t){const e=t.getProperty("configuration");this.uiModel.setProperty("/config",e);this.loadStatistics();this.loadKeyMetricsData()}}}})},loadStatistics:async function e(t=false){const n=this.getView().byId("metricsTable");const i=new a("cache",o.EQ,this.getModel("app").getProperty("/selectedCache"));if(n.getBinding("rows").isSuspended()){n.getBinding("rows").resume()}if(t){n.getBinding("rows").refresh()}else{n.getBinding("rows").filter(i)}},loadKeyMetricsData:async function e(t=false){const n=this.getView().byId("keyMetricsTable");const i=new a("cache",o.EQ,this.getModel("app").getProperty("/selectedCache"));if(n.getBinding("rows").isSuspended()){n.getBinding("rows").resume()}if(t){n.getBinding("rows").refresh()}else{n.getBinding("rows").filter(i)}},onLoadCacheEntries:async function t(){const n=this.getView().getElementBinding().getBoundContext();try{this.uiModel.setProperty("/loadingEntries",true);this.uiModel.setProperty("/showEntriesTable",true);this.uiModel.setSizeLimit(1e5);const e=this.getModel();const t=e.bindContext(`plugin.cds_caching.CachingApiService.getEntries(...)`,n);await t.invoke();const{value:i}=await t.requestObject();for(const e of i){e.tags=e.tags.join(", ")}this.uiModel.setProperty("/cacheEntries",i)}catch(t){console.error("Error loading cache entries:",t);e.error(await this.i18nText("msgLoadEntriesFailed"))}finally{this.uiModel.setProperty("/loadingEntries",false)}},onMetricsRowSelect:function e(t){const n=t.getParameter("rowContext");if(n){const e=n.getObject();const t=this.getView().getElementBinding().getBoundContext().getProperty("name");this.getRouter().navTo("singleMetric",{cache:t,metricId:e.ID});this.getModel("app").setProperty("/layout","ThreeColumnsEndExpanded")}},onSetKey:async function t(){const n=this.getView().getElementBinding().getBoundContext();const a=this.uiModel.getProperty("/createKey");const o=this.uiModel.getProperty("/createValue");const s=this.uiModel.getProperty("/createTtl");if(!a||!o){e.error(await this.i18nText("msgProvideKeyValue"));return}try{const e=this.getModel();const t=e.bindContext(`plugin.cds_caching.CachingApiService.setEntry(...)`,n);t.setParameter("key",a);t.setParameter("value",o);t.setParameter("ttl",s);await t.invoke();i.show(await this.i18nText("msgEntryCreated"));this.uiModel.setProperty("/createKey","");this.uiModel.setProperty("/createValue","");this.uiModel.setProperty("/createTtl",3600)}catch(t){console.error("Error setting cache entry:",t);e.error(await this.i18nText("msgCreateEntryFailed"))}},onGetKey:async function t(){const n=this.getView().getElementBinding().getBoundContext();const i=this.uiModel.getProperty("/getKey");if(!i){e.error(await this.i18nText("msgProvideKey"));return}try{const e=this.getModel();const t=e.bindContext(`plugin.cds_caching.CachingApiService.getEntry(...)`,n);t.setParameter("key",i);await t.invoke();const a=await t.requestObject();this.uiModel.setProperty("/getValue",a.value||await this.i18nText("msgNotFound"))}catch(e){console.error("Error getting cache entry:",e);this.uiModel.setProperty("/getValue",await this.i18nText("msgGetEntryError"))}},onDeleteKey:async function t(){const n=this.getView().getElementBinding().getBoundContext();const a=this.uiModel.getProperty("/deleteKey");if(!a){e.error(await this.i18nText("msgProvideKey"));return}try{const e=this.getModel();const t=e.bindContext(`plugin.cds_caching.CachingApiService.deleteEntry(...)`,n);t.setParameter("key",a);await t.invoke();i.show(await this.i18nText("msgEntryDeleted"));this.uiModel.setProperty("/deleteKey","")}catch(t){console.error("Error deleting cache entry:",t);e.error(await this.i18nText("msgDeleteEntryFailed"))}},onEnableMetricsChange:async function t(n){const a=n.getParameter("state");const o=this.getView().getElementBinding().getBoundContext();try{const e=this.getModel();const t=e.bindContext(`plugin.cds_caching.CachingApiService.setMetricsEnabled(...)`,o);t.setParameter("enabled",a);await t.invoke();i.show(await this.i18nText(a?"msgMetricsEnabled":"msgMetricsDisabled"))}catch(t){console.error("Error setting metrics enabled:",t);e.error(await this.i18nText("msgFailedUpdateMetrics"));this.uiModel.setProperty("/enableMetrics",!a)}},onEnableKeyMetricsChange:async function t(n){const a=n.getParameter("state");const o=this.getView().getElementBinding().getBoundContext();try{const e=this.getModel();const t=e.bindContext(`plugin.cds_caching.CachingApiService.setKeyMetricsEnabled(...)`,o);t.setParameter("enabled",a);await t.invoke();i.show(await this.i18nText(a?"msgKeyMetricsEnabled":"msgKeyMetricsDisabled"))}catch(t){console.error("Error setting key metrics enabled:",t);e.error(await this.i18nText("msgFailedKeyMetrics"));this.uiModel.setProperty("/enableKeyMetrics",!a)}},onClearCache:async function t(){const n=this.getView().getElementBinding().getBoundContext();const i=await this.i18nText("msgConfirmClearCache");e.confirm(i,{actions:[e.Action.OK,e.Action.CANCEL],emphasizedAction:e.Action.OK,onClose:async t=>{if(t===e.Action.OK){try{const t=this.getModel();const i=t.bindContext(`plugin.cds_caching.CachingApiService.clear(...)`,n);await i.invoke();e.success(await this.i18nText("msgCacheCleared"));await this.onRefresh()}catch(t){console.error("Error clearing cache:",t);e.error(await this.i18nText("msgClearCacheFailed"))}}}})},onRefresh:async function e(){if(this.getView().getElementBinding().getBoundContext()){await this.loadStatistics(true);await this.loadKeyMetricsData(true)}},handleClose:function e(){this.getRouter().navTo("main")},handleFullScreen:function e(){this.getModel("app").setProperty("/layout","MidColumnFullScreen")},handleExitFullScreen:function e(){this.getModel("app").setProperty("/layout","TwoColumnsMidExpanded")},onKeyMetricsRowSelect:function e(t){const n=t.getParameter("rowContext");if(n){const e=n.getObject();const t=this.getView().getElementBinding().getBoundContext().getProperty("name");this.getRouter().navTo("singleKeyMetric",{cache:t,keyMetricId:e.ID});this.getModel("app").setProperty("/layout","ThreeColumnsEndExpanded")}},onRefreshKeyMetricsData:async function e(){await this.loadKeyMetricsData(true)},onRefreshMetricsData:async function e(){await this.loadStatistics(true)},onShowKeyMetricsMetadata:async function e(t){const i=t.getSource().getBindingContext();const a=e=>{try{return JSON.stringify(JSON.parse(e),null,2)}catch(t){return e}};const o=new n({metadata:a(i.getProperty("metadata")),subject:a(i.getProperty("subject")),query:a(i.getProperty("query")),cacheOptions:a(i.getProperty("cacheOptions")),keyName:i.getProperty("keyName")});const r=e=>l.escapeFragmentXml(e);const c=r(await this.i18nText("keyTabMetadata"));const g=r(await this.i18nText("keyTabSubject"));const d=r(await this.i18nText("keyTabQuery"));const h=r(await this.i18nText("keyTabCacheOptions"));const u=await s.load({definition:`<core:FragmentDefinition xmlns:core="sap.ui.core" xmlns:mvc="sap.ui.core.mvc" xmlns="sap.m" xmlns:form="sap.ui.layout.form">\n <Popover title="{localData>/keyName}" placement="Bottom" contentWidth="30rem">\n <content>\n <IconTabBar>\n <items>\n <IconTabFilter text="${c}">\n <content>\n <TextArea value="{localData>/metadata}" rows="20" width="100%" editable="false" />\n </content>\n </IconTabFilter>\n <IconTabFilter text="${g}" >\n <content>\n <TextArea value="{localData>/subject}" rows="20" width="100%" editable="false" />\n </content>\n </IconTabFilter>\n <IconTabFilter text="${d}" >\n <content>\n <TextArea value="{localData>/query}" rows="20" width="100%" editable="false" />\n </content>\n </IconTabFilter>\n <IconTabFilter text="${h}" >\n <content>\n <TextArea value="{localData>/cacheOptions}" rows="20" width="100%" editable="false" />\n </content>\n </IconTabFilter>\n </items>\n </IconTabBar>\n </content>\n </Popover>\n </core:FragmentDefinition>`,controller:this});const y=u;y.setModel(o,"localData");y.openBy(t.getSource())},onClearMetrics:async function t(){const n=this.getView().getElementBinding().getBoundContext();if(!n){return}try{const e=this.getModel();const t=e.bindContext(`plugin.cds_caching.CachingApiService.clearMetrics(...)`,n);await t.invoke();i.show(await this.i18nText("msgMetricsCleared"));await this.onRefreshMetricsData()}catch(t){console.error("Error clearing metrics:",t);e.error(await this.i18nText("msgFailedClearMetrics"))}},onClearKeyMetrics:async function t(){const n=this.getView().getElementBinding().getBoundContext();if(!n){return}try{const e=this.getModel();const t=e.bindContext(`plugin.cds_caching.CachingApiService.clearKeyMetrics(...)`,n);await t.invoke();i.show(await this.i18nText("msgKeyMetricsCleared"));await this.onRefreshKeyMetricsData()}catch(t){console.error("Error clearing key metrics:",t);e.error(await this.i18nText("msgFailedClearKeyMetrics"))}}});l.escapeFragmentXml=function e(t){return t.replace(/&/g,"&").replace(/</g,"<").replace(/"/g,""").replace(/'/g,"'")};return l});
|
|
20
20
|
sap.ui.predefine("cds/plugin/caching/dashboard/controller/Main.controller", ["./BaseController"],function(e){"use strict";function t(e){return e&&e.__esModule&&typeof e.default!=="undefined"?e.default:e}const n=t(e);const i=n.extend("cds.plugin.caching.dashboard.controller.Main",{onInit:function e(){this.getRouter().getRoute("main").attachPatternMatched(this.onRouteMatched,this)},onRouteMatched:function e(t){this.getModel("app").setProperty("/layout","OneColumn");this.getView().byId("cachesList").getBinding("items").refresh()},onCacheSelect:function e(t){const n=t.getParameter("listItem").getBindingContext().getProperty("name");this.getRouter().navTo("cache",{cache:n})},onRefresh:function e(){this.getView().byId("cachesList").getBinding("items").refresh()}});return i});
|
|
21
|
-
sap.ui.predefine("cds/plugin/caching/dashboard/controller/SingleMetric.controller", ["./BaseController","sap/ui/model/json/JSONModel","sap/m/MessageBox"],function(e,t,i){"use strict";function a(e){return e&&e.__esModule&&typeof e.default!=="undefined"?e.default:e}const
|
|
21
|
+
sap.ui.predefine("cds/plugin/caching/dashboard/controller/SingleMetric.controller", ["./BaseController","sap/ui/model/json/JSONModel","sap/m/MessageBox"],function(e,t,i){"use strict";function a(e){return e&&e.__esModule&&typeof e.default!=="undefined"?e.default:e}const r=a(e);const s=r.extend("cds.plugin.caching.dashboard.controller.SingleMetric",{onInit:function e(){r.prototype.onInit.call(this);this.uiModel=new t({metricId:"",hitRatio:0,cacheEfficiency:0,throughput:0,errorRate:0,avgLatency:0,avgHitLatency:0,avgMissLatency:0,hits:0,misses:0,sets:0,deletes:0,errors:0,nativeSets:0,nativeGets:0,nativeDeletes:0,nativeClears:0,nativeDeleteByTags:0,nativeErrors:0,totalNativeOperations:0,nativeThroughput:0,nativeErrorRate:0,memoryUsage:0,itemCount:0,uniqueKeys:0,uptimeMs:0,latencyData:[],cacheThroughData:[],nativeData:[]});this.getView().setModel(this.uiModel,"ui");this.getRouter().getRoute("singleMetric").attachPatternMatched(this.onRouteMatched,this)},onRouteMatched:function e(t){const{cache:i,metricId:a}=t.getParameter("arguments");this.uiModel.setProperty("/metricId",a);this.getModel("app").setProperty("/layout","ThreeColumnsEndExpanded");this.loadMetric(i,a);this.formatChart()},loadMetric:async function e(t,a){try{const e=this.getModel();const r=await this.getResourceBundle();const s=e.bindContext(`/Metrics(ID='${a}',cache='${t}')`);const o=await s.requestObject();if(o){this.uiModel.setProperty("/hitRatio",o.hitRatio||0);this.uiModel.setProperty("/cacheEfficiency",o.cacheEfficiency||0);this.uiModel.setProperty("/throughput",o.throughput||0);this.uiModel.setProperty("/errorRate",o.errorRate||0);this.uiModel.setProperty("/avgLatency",o.avgLatency||0);this.uiModel.setProperty("/avgHitLatency",o.avgHitLatency||0);this.uiModel.setProperty("/avgMissLatency",o.avgMissLatency||0);this.uiModel.setProperty("/hits",o.hits||0);this.uiModel.setProperty("/misses",o.misses||0);this.uiModel.setProperty("/sets",o.sets||0);this.uiModel.setProperty("/deletes",o.deletes||0);this.uiModel.setProperty("/errors",o.errors||0);this.uiModel.setProperty("/nativeSets",o.nativeSets||0);this.uiModel.setProperty("/nativeGets",o.nativeGets||0);this.uiModel.setProperty("/nativeDeletes",o.nativeDeletes||0);this.uiModel.setProperty("/nativeClears",o.nativeClears||0);this.uiModel.setProperty("/nativeDeleteByTags",o.nativeDeleteByTags||0);this.uiModel.setProperty("/nativeErrors",o.nativeErrors||0);this.uiModel.setProperty("/totalNativeOperations",o.totalNativeOperations||0);this.uiModel.setProperty("/nativeThroughput",o.nativeThroughput||0);this.uiModel.setProperty("/nativeErrorRate",o.nativeErrorRate||0);this.uiModel.setProperty("/memoryUsage",o.memoryUsage||0);this.uiModel.setProperty("/itemCount",o.itemCount||0);this.uiModel.setProperty("/uptimeMs",o.uptimeMs||0);this.uiModel.setProperty("/uniqueKeys",0);this.generateLatencyChartData(o,r);this.generateCacheThroughChartData(o,r);this.generateNativeChartData(o,r)}else{i.error(await this.i18nText("msgMetricNotFound"))}}catch(e){console.error("Error loading metric:",e);i.error(await this.i18nText("msgLoadMetricFailed"))}},generateLatencyChartData:function e(t,i){const a=e=>i.getText(e);const r=[{operation:a("chartOpAvgHitLatency"),latency:t.avgHitLatency||0},{operation:a("chartOpAvgMissLatency"),latency:t.avgMissLatency||0},{operation:a("chartOpAvgReadThroughLatency"),latency:t.avgReadThroughLatency||0}];this.uiModel.setProperty("/latencyData",r)},generateCacheThroughChartData:function e(t,i){const a=e=>i.getText(e);const r=[{operation:a("chartOpHits"),count:t.hits||0},{operation:a("chartOpMisses"),count:t.misses||0},{operation:a("chartOpErrors"),count:t.errors||0}];this.uiModel.setProperty("/cacheThroughData",r)},generateNativeChartData:function e(t,i){const a=e=>i.getText(e);const r=[{operation:a("chartOpSets"),count:t.nativeSets||0},{operation:a("chartOpGets"),count:t.nativeGets||0},{operation:a("chartOpDeletes"),count:t.nativeDeletes||0},{operation:a("chartOpClears"),count:t.nativeClears||0},{operation:a("chartOpDeleteByTags"),count:t.nativeDeleteByTags||0},{operation:a("chartOpErrors"),count:t.nativeErrors||0}];this.uiModel.setProperty("/nativeData",r)},formatChart:function e(){const t=this.getView().byId("metricLatencyChart");if(t){void this.getResourceBundle().then(e=>{t.setVizProperties({legend:{visible:false},plotArea:{dataLabel:{visible:true,formatString:"#,## ms"},gridline:{visible:false}},valueAxis:{axisLine:{visible:false},axisTick:{visible:false},label:{visible:false},title:{visible:false}},categoryAxis:{title:{visible:false}},title:{visible:false,text:e.getText("chartTitleLatencyByOperation")}})})}const i=this.getView().byId("metricCacheThroughChart");if(i){i.setVizProperties({legend:{visible:true},plotArea:{dataLabel:{visible:true}},title:{visible:false}})}const a=this.getView().byId("metricNativeChart");if(a){a.setVizProperties({legend:{visible:true},plotArea:{dataLabel:{visible:true}},title:{visible:false}})}},onRefresh:function e(){const t=this.getModel("app").getProperty("/selectedCache");const i=this.uiModel.getProperty("/metricId");if(t&&i){this.loadMetric(t,i)}},handleFullScreen:function e(){this.getModel("app").setProperty("/layout","EndColumnFullScreen")},handleExitFullScreen:function e(){this.getModel("app").setProperty("/layout","ThreeColumnsEndExpanded")},handleClose:function e(){this.getModel("app").setProperty("/layout","TwoColumnsMidExpanded");this.getRouter().navTo("cache",{cache:this.getModel("app").getProperty("/selectedCache")})},onColumnsChange:function e(){}});return s});
|
|
22
22
|
sap.ui.predefine("cds/plugin/caching/dashboard/model/formatter", ["sap/m/library"],function(e){"use strict";const r=e["ValueColor"];var t={formatIntegerValue(e){if(e===null||e===undefined||e===0){return"0"}return`${e.toFixed(0)}`},formatNumberValue(e){if(e===null||e===undefined||e===0){return"0"}return`${e.toFixed(2)}`},formatPercentage(e){if(e===null||e===undefined){return"0%"}return`${(e*100).toFixed(1)}%`},formatPercentageValue(e){if(e===null||e===undefined){return"0"}return`${(e*100).toFixed(1)}`},formatLatency(e){if(e===null||e===undefined){return"0ms"}const r=Number(e);if(r<1){return`${(r*1e3).toFixed(2)}μs`}return`${r.toFixed(2)}ms`},formatMemoryUsage(e){if(e===null||e===undefined){return"0 B"}const r=["B","KB","MB","GB"];const t=Math.floor(Math.log(e)/Math.log(1024));return`${(e/Math.pow(1024,t)).toFixed(2)} ${r[t]}`},formatThroughput(e){if(e===null||e===undefined){return"0 req/s"}return`${e.toFixed(2)} req/s`},formatCacheEfficiency(e){if(e===null||e===undefined||e===0){return"N/A"}if(e<1){return`${(e*100).toFixed(1)}%`}return`${e.toFixed(1)}x`},formatUptime(e){if(e===null||e===undefined){return"0s"}const r=Math.floor(e/1e3);const t=Math.floor(r/60);const n=Math.floor(t/60);const o=Math.floor(n/24);if(o>0){return`${o}d ${n%24}h ${t%60}m`}else if(n>0){return`${n}h ${t%60}m ${r%60}s`}else if(t>0){return`${t}m ${r%60}s`}else{return`${r}s`}},formatDate(e){if(!e){return""}const r=new Date(e);return r.toLocaleString()},formatHitRatioWithColor(e){if(e===null||e===undefined){return r.None}if(e>=.9){return r.Good}else if(e>=.7){return r.Critical}else{return r.Error}},formatLatencyWithColor(e){if(e===null||e===undefined){return r.None}if(e<=10){return r.Good}else if(e<=50){return r.Critical}else{return r.Error}},formatErrorRateWithColor(e){if(e<=.01){return r.Good}else if(e<=.05){return r.Critical}else if(e<=.1){return r.Error}else{return r.Neutral}},getTotalRequests(e,r){return(e||0)+(r||0)},getTotalOperations(e,r,t,n){return(e||0)+(r||0)+(t||0)+(n||0)},formatJSON(e){if(!e){return""}try{if(typeof e==="string"){const r=JSON.parse(e);return JSON.stringify(r,null,2)}else{return JSON.stringify(e,null,2)}}catch(r){return e}},formatKeyName(e,r=30){if(!e){return""}if(e.length<=r){return e}return e.substring(0,r-3)+"..."},getRelativeTime(e){if(!e){return"Never"}const r=new Date(e);const t=new Date;const n=t.getTime()-r.getTime();const o=Math.floor(n/1e3);const u=Math.floor(o/60);const i=Math.floor(u/60);const f=Math.floor(i/24);if(f>0){return`${f} day${f>1?"s":""} ago`}else if(i>0){return`${i} hour${i>1?"s":""} ago`}else if(u>0){return`${u} minute${u>1?"s":""} ago`}else{return`${o} second${o>1?"s":""} ago`}},formatCacheEfficiencyWithColor(e){if(e===null||e===undefined){return r.None}if(e>5){return r.Good}else if(e>=3){return r.Critical}else{return r.Error}},formatTruncatedText(e,r=50){if(!e){return""}if(e.length<=r){return e}return e.substring(0,r)+"..."}};return t});
|
|
23
23
|
sap.ui.predefine("cds/plugin/caching/dashboard/model/models", ["sap/ui/model/json/JSONModel","sap/ui/model/BindingMode","sap/ui/Device"],function(e,i,n){"use strict";var d={createDeviceModel:()=>{const d=new e(n);d.setDefaultBindingMode(i.OneWay);return d}};return d});
|
|
24
24
|
sap.ui.predefine("cds/plugin/caching/dashboard/service/CacheStatisticsService", ["sap/m/MessageBox","sap/ui/model/odata/v4/ODataModel"],function(e,t){"use strict";class r{constructor(e){this.model=e||new t({serviceUrl:"/odata/v4/caching/",autoExpandSelect:true,groupId:"$auto"})}getModel(){return this.model}async getCurrentMetrics(t){try{const e=this.model.bindList("/Metrics",undefined,undefined,undefined,{$filter:`period eq 'hourly' and cache eq '${t}'`,$orderby:"timestamp desc"});const r=await e.requestContexts();const s=r.map(e=>e.getObject());if(s&&s.length>0){return this.transformStatistics(s[0])}else{return null}}catch(t){console.error("Error fetching current metrics:",t);e.error("Failed to load current metrics");return null}}async getHistoricalMetrics(t,r="hourly",s,n){try{let e=`period eq '${r}' and cache eq '${t}'`;if(s){e+=` and timestamp ge ${s}`}if(n){e+=` and timestamp le ${n}`}const i=this.model.bindList("/Metrics",undefined,undefined,undefined,{$filter:e,$orderby:"timestamp desc"});const a=await i.requestContexts();return a.map(e=>e.getObject())}catch(t){console.error("Error fetching historical metrics:",t);e.error("Failed to load historical metrics");return[]}}async getTopKeys(t,r=10){try{const e=this.model.bindList("/KeyMetrics",undefined,undefined,undefined,{$filter:`period eq 'current' and cache eq '${t}'`,$orderby:"totalRequests desc"});const r=await e.requestContexts();return r.map(e=>e.getObject())}catch(t){console.error("Error fetching top keys:",t);e.error("Failed to load top keys");return[]}}async getColdKeys(t,r=10){try{const e=this.model.bindList("/KeyMetrics",undefined,undefined,undefined,{$filter:`period eq 'current' and cache eq '${t}'`,$orderby:"lastAccess asc"});const r=await e.requestContexts();return r.map(e=>e.getObject())}catch(t){console.error("Error fetching cold keys:",t);e.error("Failed to load cold keys");return[]}}async persistStatistics(t){try{const t=this.model.bindContext("/persistStatistics(...)");return new Promise((r,s)=>{t.execute().then(()=>{r(true)}).catch(t=>{console.error("Error persisting statistics:",t);e.error("Failed to persist statistics");s(t)})})}catch(t){console.error("Error persisting statistics:",t);e.error("Failed to persist statistics");return false}}transformStatistics(e){return{hits:e.hits||0,misses:e.misses||0,sets:e.sets||0,deletes:e.deletes||0,errors:e.errors||0,avgLatency:e.avgLatency||0,p95Latency:e.p95Latency||0,p99Latency:e.p99Latency||0,minLatency:e.minLatency||0,maxLatency:e.maxLatency||0,avgHitLatency:e.avgHitLatency||0,p95HitLatency:e.p95HitLatency||0,p99HitLatency:e.p99HitLatency||0,minHitLatency:e.minHitLatency||0,maxHitLatency:e.maxHitLatency||0,avgMissLatency:e.avgMissLatency||0,p95MissLatency:e.p95MissLatency||0,p99MissLatency:e.p99MissLatency||0,minMissLatency:e.minMissLatency||0,maxMissLatency:e.maxMissLatency||0,avgSetLatency:e.avgSetLatency||0,avgDeleteLatency:e.avgDeleteLatency||0,memoryUsage:e.memoryUsage||0,itemCount:e.itemCount||0,hitRatio:e.hitRatio||0,throughput:e.throughput||0,errorRate:e.errorRate||0,cacheEfficiency:e.cacheEfficiency||0,uptimeMs:e.uptimeMs||0,uniqueKeys:0,topKeys:[],coldKeys:[],lastPersisted:e.lastPersisted||(new Date).toISOString()}}async getAvailableMetrics(t){try{const e=this.model.bindList("/Metrics",undefined,undefined,undefined,{$filter:`cache eq '${t}'`,$orderby:"timestamp desc"});const r=await e.requestContexts();return r.map(e=>e.getObject())}catch(t){console.error("Error fetching available metrics:",t);e.error("Failed to load available metrics");return[]}}async getMetricById(t,r){try{const e=this.model.bindList("/Metrics",undefined,undefined,undefined,{$filter:`ID eq '${r}' and cache eq '${t}'`});const s=await e.requestContexts();const n=s.map(e=>e.getObject());if(n&&n.length>0){return this.transformStatistics(n[0])}else{return null}}catch(t){console.error("Error fetching metric by ID:",t);e.error("Failed to load metric");return null}}async setMetricsEnabled(t,r){try{const s=this.model.bindContext(`/setMetricsEnabled(...)`);s.setParameter("cache",t);s.setParameter("enabled",r);return new Promise((t,r)=>{s.execute().then(()=>{t(true)}).catch(t=>{console.error("Error setting metrics enabled:",t);e.error("Failed to update metrics configuration");r(t)})})}catch(t){console.error("Error setting metrics enabled:",t);e.error("Failed to update metrics configuration");return false}}async setKeyMetricsEnabled(t,r){try{const s=this.model.bindContext(`/setKeyMetricsEnabled(...)`);s.setParameter("cache",t);s.setParameter("enabled",r);return new Promise((t,r)=>{s.execute().then(()=>{t(true)}).catch(t=>{console.error("Error setting key metrics enabled:",t);e.error("Failed to update key metrics configuration");r(t)})})}catch(t){console.error("Error setting key metrics enabled:",t);e.error("Failed to update key metrics configuration");return false}}}return r});
|
|
@@ -1655,7 +1655,7 @@ sap.ui.predefine("sap/tnt/library", ["./IllustratedMessageType","sap/ui/base/Dat
|
|
|
1655
1655
|
* (c) Copyright 2025 SAP SE or an SAP affiliate company.
|
|
1656
1656
|
* Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
|
|
1657
1657
|
*/
|
|
1658
|
-
sap.ui.predefine("sap/ui/Global", ["sap/ui/VersionInfo","sap/base/Log","sap/base/assert","sap/base/util/ObjectPath"],function(e,a,r,t){"use strict";if(globalThis.OpenAjax&&globalThis.OpenAjax.hub){OpenAjax.hub.registerLibrary("sap","http://www.sap.com/","0.1",{})}var n;let s={version:"1.136.0",buildinfo:{lastchange:"",buildtime:"
|
|
1658
|
+
sap.ui.predefine("sap/ui/Global", ["sap/ui/VersionInfo","sap/base/Log","sap/base/assert","sap/base/util/ObjectPath"],function(e,a,r,t){"use strict";if(globalThis.OpenAjax&&globalThis.OpenAjax.hub){OpenAjax.hub.registerLibrary("sap","http://www.sap.com/","0.1",{})}var n;let s={version:"1.136.0",buildinfo:{lastchange:"",buildtime:"20260424-2306"}};s=Object.assign(sap.ui,s);var o=sap.ui.loader._.getSyncCallBehavior();sap.ui.getVersionInfo=function(r){if(r&&r.async){a.info("Do not use deprecated function 'sap.ui.getVersionInfo'. Use"+" 'sap/ui/VersionInfo' module's asynchronous .load function instead")}else{a.warning("Do not use deprecated function 'sap.ui.getVersionInfo' synchronously! Use"+" 'sap/ui/VersionInfo' module's asynchronous .load function instead","Deprecation",null,function(){return{type:"sap.ui.getVersionInfo",name:"Global"}})}return e._load(r)};sap.ui.namespace=function(e){r(false,"sap.ui.namespace is long time deprecated and shouldn't be used");return t.create(e)};sap.ui.lazyRequire=function(e,s,i){r(typeof e==="string"&&e,"lazyRequire: sClassName must be a non-empty string");r(!s||typeof s==="string","lazyRequire: sMethods must be empty or a string");if(o===2){a.error("[nosync] lazy stub creation ignored for '"+e+"'");return}var u=e.replace(/\//gi,"."),l=u.lastIndexOf("."),c=u.substr(0,l),p=u.substr(l+1),f=t.create(c),y=f[p],d=(s||"new").split(" "),b=d.indexOf("new");i=i||u;if(!y){if(b>=0){y=function(){if(o){if(o===1){a.error("[nosync] lazy stub for constructor '"+u+"' called")}}else{a.debug("lazy stub for constructor '"+u+"' called.")}sap.ui.requireSync(i.replace(/\./g,"/"));var t=f[p];r(typeof t==="function","lazyRequire: oRealClass must be a function after loading");if(t._sapUiLazyLoader){throw new Error("lazyRequire: stub '"+u+"'has not been replaced by module '"+i+"'")}var s=Object.create(t.prototype);if(!(this instanceof y)){n=n||sap.ui.require("sap/ui/base/Object");if(n&&s instanceof n){a.error("Constructor "+e+' has been called without "new" operator!',null,null,function(){try{throw new Error}catch(e){return e}})}}var l=t.apply(s,arguments);if(l&&(typeof l==="function"||typeof l==="object")){s=l}return s};y._sapUiLazyLoader=true;d.splice(b,1)}else{y={}}f[p]=y}d.forEach(function(e){if(!y[e]){y[e]=function(){if(o){if(o===1){a.error("[no-sync] lazy stub for method '"+u+"."+e+"' called")}}else{a.debug("lazy stub for method '"+u+"."+e+"' called.")}sap.ui.requireSync(i.replace(/\./g,"/"));var t=f[p];r(typeof t==="function"||typeof t==="object","lazyRequire: oRealClass must be a function or object after loading");r(typeof t[e]==="function","lazyRequire: method must be a function");if(t[e]._sapUiLazyLoader){throw new Error("lazyRequire: stub '"+u+"."+e+"' has not been replaced by loaded module '"+i+"'")}return t[e].apply(t,arguments)};y[e]._sapUiLazyLoader=true}})};sap.ui.lazyRequire._isStub=function(e){r(typeof e==="string"&&e,"lazyRequire._isStub: sClassName must be a non-empty string");var a=e.lastIndexOf("."),n=e.slice(0,a),s=e.slice(a+1),o=t.get(n||"");return!!(o&&typeof o[s]==="function"&&o[s]._sapUiLazyLoader)};sap.ui.resource=function(e,a){r(typeof e==="string","sLibraryName must be a string");r(typeof a==="string","sResourcePath must be a string");return sap.ui.require.toUrl((String(e).replace(/\./g,"/")+"/"+a).replace(/^\/*/,""))};sap.ui.localResources=function(e){r(e,"sNamespace must not be empty");var a={};a[e.replace(/\./g,"/")]="./"+e.replace(/\./g,"/");sap.ui.loader.config({paths:a})};return s});
|
|
1659
1659
|
/*!
|
|
1660
1660
|
* OpenUI5
|
|
1661
1661
|
* (c) Copyright 2025 SAP SE or an SAP affiliate company.
|
|
@@ -4351,14 +4351,14 @@ sap.ui.predefine("sap/viz/ui5/theming/Util", ["sap/ui/Device","sap/ui/core/themi
|
|
|
4351
4351
|
*/
|
|
4352
4352
|
sap.ui.predefine("sap/viz/ui5/utils/CommonUtil", function(){"use strict";var e={};e.extendScales=function(){var e={},r=arguments[0]||[],n=0,t=r.length,f=[];for(;n<t;n++){e[r[n].feed]=r[n]}for(n=1,t=arguments.length;n<t;n++){var u=arguments[n];for(var a=0,i=u.length;a<i;a++){e[u[a].feed]=u[a]}}for(n in e){f.push(e[n])}return f};return e});
|
|
4353
4353
|
sap.ui.require.preload({
|
|
4354
|
-
"cds/plugin/caching/dashboard/i18n/i18n.properties":'
|
|
4355
|
-
"cds/plugin/caching/dashboard/i18n/i18n_de.properties":'appTitle=cds.plugin.caching.dashboard\nappDescription=UI5 Application cds.plugin.caching.dashboard\nbtnText=Sag Hallo\n',
|
|
4356
|
-
"cds/plugin/caching/dashboard/i18n/i18n_en.properties":'
|
|
4354
|
+
"cds/plugin/caching/dashboard/i18n/i18n.properties":'# Default (English) \\u2013 bundle fallback\n\nappTitle=Cache Performance Dashboard\nappDescription=Comprehensive cache statistics and monitoring dashboard\nbtnText=Say Hello\n\n# Main Dashboard\nmainTitle=Cache Performance Dashboard\nrefreshButton=Refresh\npersistButton=Persist Statistics\n\n# Navigation\nkeyAnalysis=Key Analysis\n\n# Metrics\nhitRatio=Hit Ratio\navgLatency=Average Latency\nthroughput=Throughput\nerrorRate=Error Rate\ntotalRequests=Total Requests\nmemoryUsage=Memory Usage\nuniqueKeys=Unique Keys\nuptime=Uptime\n\n# Keys\nkeysTitle=Key Analysis\nkeysSubtitle=Cache Key Access Patterns\ntopKeys=Top Accessed Keys\ncoldKeys=Cold Keys\nkeyStatistics=Key Statistics\ntotalKeysTracked=Total Keys Tracked\nmostActiveKey=Most Active Key\nleastActiveKey=Least Active Key\n\n# Common\nloading=Loading...\nnoData=No data available\nerror=Error\nsuccess=Success\nwarning=Warning\n\n# Statistics Page\nstatisticsTitle=Statistics\nstatisticsSubtitle=Historical cache statistics\nstatisticsFilters=Filters\nstatisticsFiltersSubtitle=Select date range and period\nstatisticsSummary=Summary\nstatisticsSummarySubtitle=Statistics overview\nstatisticsData=Statistics Data\nstatisticsDataSubtitle=Detailed statistics records\nstatisticsTrends=Trends\nstatisticsTrendsSubtitle=Performance trends over time\nstatisticsPeriod=Period\nstatisticsFrom=From\nstatisticsTo=To\nstatisticsLoad=Load\nstatisticsRefresh=Refresh\nstatisticsExport=Export CSV\nstatisticsTotalRecords=Total Records\nstatisticsAvgHitRatio=Average Hit Ratio\nstatisticsAvgLatency=Average Latency\nstatisticsTotalRequests=Total Requests\nstatisticsNoData=No statistics found for the selected criteria\n\n# Main list\nhomePageTitle=cds-caching \\u2013 Dashboard\ncachingServicesHeader=Caching Services\nnoCachesAvailable=No caches available\ncolName=Name\ncolStatisticTrackingEnabled=Statistic Tracking Enabled\ncolKeyTrackingEnabled=Key Tracking Enabled\n\n# Tooltips\nttFullScreenEnter=Enter Full Screen Mode\nttFullScreenExit=Exit Full Screen Mode\nttCloseMidColumn=Close middle column\nttCloseEndColumn=Close end column\n\n# Cache view \\u2013 page\ncachePagePrefix=Cache:\nenableMetricsLabel=Enable Metrics\nenableKeyMetricsLabel=Enable Key Metrics\nactionClearCache=Clear Cache\n\n# Tabs\ntabOverview=Overview\ntabMetrics=Metrics\ntabKeyMetrics=Key Metrics\ntabBrowseCacheEntries=Browse Cache Entries\n\n# Cards overview\nconfigCardTitle=Configuration\nconfigCardSubtitle=Cache Configuration\ncreateEntryTitle=Create Cache Entry\ncreateEntrySubtitle=Create a new cache entry\ngetEntryTitle=Get Cache Entry\ngetEntrySubtitle=Get a cache entry\ndeleteEntryTitle=Delete Cache Entry\ndeleteEntrySubtitle=Delete a cache entry\n\n# Form\nlabelKey=Key\nlabelValue=Value\nlabelTtlSeconds=TTL (seconds)\nbtnSetEntry=Set Entry\nbtnGetEntry=Get Entry\nbtnDeleteEntry=Delete Entry\n\n# Metrics & toolbars\naggregatedMetricsByHour=Aggregated Metrics by Hour\nbtnClearMetrics=Clear Metrics\nbtnLoadCacheEntries=Load Cache Entries\nkeyMetricsToolbarTitle=Key Metrics\n\n# Column groups\ngroupReadThrough=Read-Through\ngroupReadThroughOps=Read-Through Operations\ngroupReadThroughPerformance=Read-Through Performance\ngroupReadThroughLatencies=Read-Through Latencies\ngroupReadThroughHitLatencies=Read-Through Hit Latencies\ngroupReadThroughMissLatencies=Read-Through Miss Latencies\ngroupNativeFunction=Native Function\ngroupNativeFunctionOps=Native Function Operations\ngroupNativeFunctionPerformance=Native Function Performance\nctxGroup=Context\ninfoAdditional=Additional Information\n\n# Column sub-labels\ncolHits=Hits\ncolMisses=Misses\ncolTotalRequests=Total Requests\ncolHitRatioPct=Hit Ratio %\ncolErrorRatePct=Error Rate %\ncolCacheEfficiency=Cache Efficiency\ncolTimestamp=Timestamp\ncolAvgLatencyMs=Avg Latency (ms)\ncolHitAvgMs=Hit Avg (ms)\ncolHitMinMs=Hit Min (ms)\ncolHitMaxMs=Hit Max (ms)\ncolMissAvgMs=Miss Avg (ms)\ncolMissMinMs=Miss Min (ms)\ncolMissMaxMs=Miss Max (ms)\ncolTotal=Total\ncolSets=Sets\ncolGets=Gets\ncolDeletes=Deletes\ncolClears=Clears\ncolDeleteByTags=Delete By Tags\ncolErrors=Errors\ncolKeyName=Key Name\ncolOperation=Operation\ncolType=Type\ncolOperationType=Operation Type\ncolTarget=Target\ncolMetadata=Metadata\ncolAvgHitLatencyMs=Avg Hit Latency (ms)\ncolMinHitLatencyMs=Min Hit Latency (ms)\ncolMaxHitLatencyMs=Max Hit Latency (ms)\ncolAvgMissLatencyMs=Avg Miss Latency (ms)\ncolMinMissLatencyMs=Min Miss Latency (ms)\ncolMaxMissLatencyMs=Max Miss Latency (ms)\ncolTenant=Tenant\ncolUser=User\ncolLocale=Locale\ncolLastAccess=Last Access\ncolFirstAccess=First Access\ncolTags=Tags\nbtnShowMetadata=Show Metadata\n\n# Browse\ncacheEntriesTitle=Cache Entries\ncacheEntriesSubtitle=Browse all cache entries (use with caution)\nmessageStripLoadEntriesWarning=Warning: Loading all cache entries may impact performance for large caches. Use the button below to load entries on demand.\n\n# Placeholder chart\nchartPlaceholder=Chart visualization will be implemented here\nselectChartHitLatency=Hit Latency\nselectChartMissLatency=Miss Latency\n\n# Card chart headers (hidden section)\ntrendsCardTitle=Trends\ntrendsCardSubtitle=Performance trends over time\n\n# Single metric \\u2013 page\nmetricDetailsPageTitle=Metric Details\nmetricPagePrefix=Metric:\nsectionReadThroughPerformance=Read-Through Performance\nsectionNativeFunctionPerformance=Native Function Performance\n\n# Generic tiles\ntileSubCacheHitRate=Cache Hit Rate\ntileSubPerformanceFactor=Performance Factor\ntileSubReqPerSec=Requests per Second\ntileSubCacheErrors=Cache Errors\ntileSubCacheOperations=Cache Operations\ntileSubSuccessfulRetrievals=Successful Retrievals\ntileSubFailedRetrievals=Failed Retrievals\ntileSubErrorCount=Error Count\ntileSubCacheHitResponse=Cache Hit Response\ntileSubCacheMissResponse=Cache Miss Response\nheaderCacheEfficiency=Cache Efficiency\nheaderErrorRate=Error Rate\nheaderCacheHits=Cache Hits\nheaderCacheMisses=Cache Misses\nheaderCacheErrors=Cache Errors\nheaderHitLatency=Hit Latency\nheaderMissLatency=Miss Latency\nheaderNativeThroughput=Native Throughput\nheaderNativeErrorRate=Native Error Rate\nheaderNativeSets=Native Sets\nheaderNativeGets=Native Gets\nheaderNativeDeletes=Native Deletes\nheaderNativeClears=Native Clears\nheaderDeleteByTags=Delete By Tags\nheaderNativeErrors=Native Errors\nheaderTotalNativeOps=Total Native Ops\ntileSubNativeOpsPerSec=Operations per Second\ntileSubWriteOps=Write Operations\ntileSubReadOps=Read Operations\ntileSubDeleteOps=Delete Operations\ntileSubClearOps=Clear Operations\ntileSubTagDeletes=Tag-based Deletes\ntileSubAllOperations=All Operations\n\n# Cards (single metric)\ncardReadThroughOps=Read-Through Operations\ncardReadThroughOpsSub=Hit/Miss/Error Distribution\ncardLatencyCompare=Latency Comparison\ncardLatencyCompareSub=Read-Through Latency Metrics\ncardNativeFunctionOps=Native Function Operations\ncardNativeFunctionOpsSub=Operation Distribution\n\n# Viz internal labels\nvizMeasureCount=Count\nvizMeasureLatency=Latency\n\n# Controllers & messages\nmsgNoCacheSelected=No cache selected\nmsgUpdatingStatsConfig=Updating statistics configuration\\u2026\nmsgStatsEnabled=Statistics enabled successfully\nmsgStatsDisabled=Statistics disabled successfully\nmsgFailedUpdateStatsConfig=Failed to update statistics configuration\nmsgErrorUpdateStatsConfig=Error updating statistics configuration\nmsgUpdatingKeyTracking=Updating key tracking configuration\\u2026\nmsgKeyTrackingEnabled=Key tracking enabled successfully\nmsgKeyTrackingDisabled=Key tracking disabled successfully\nmsgFailedKeyTracking=Failed to update key tracking configuration\nmsgErrorKeyTracking=Error updating key tracking configuration\nmsgStatsPersisted=Statistics persisted successfully\nmsgFailedPersistStats=Failed to persist statistics\nmsgErrorPersistStats=Error persisting statistics\nmsgLoadEntriesFailed=Failed to load cache entries\nmsgProvideKeyValue=Please provide both key and value\nmsgEntryCreated=Cache entry created successfully\nmsgCreateEntryFailed=Failed to create cache entry\nmsgProvideKey=Please provide a key\nmsgEntryDeleted=Cache entry deleted successfully\nmsgDeleteEntryFailed=Failed to delete cache entry\nmsgNotFound=Not found\nmsgGetEntryError=Error: Entry not found or error occurred\nmsgMetricsEnabled=Metrics enabled successfully\nmsgMetricsDisabled=Metrics disabled successfully\nmsgFailedUpdateMetrics=Failed to update metrics setting\nmsgKeyMetricsEnabled=Key metrics enabled successfully\nmsgKeyMetricsDisabled=Key metrics disabled successfully\nmsgFailedKeyMetrics=Failed to update key metrics setting\nmsgConfirmClearCache=Are you sure you want to clear this cache? This action cannot be undone.\nmsgCacheCleared=Cache cleared successfully\nmsgClearCacheFailed=Failed to clear cache\nmsgMetricsCleared=Metrics cleared successfully\nmsgKeyMetricsCleared=Key metrics cleared successfully\nmsgFailedClearMetrics=Failed to clear metrics\nmsgFailedClearKeyMetrics=Failed to clear key metrics\nmsgMetricNotFound=Metric not found\nmsgLoadMetricFailed=Failed to load metric details\n\n# Key metrics popover tabs\nkeyTabMetadata=Metadata\nkeyTabSubject=Subject\nkeyTabQuery=Query\nkeyTabCacheOptions=Cache Options\n\n# Chart (single metric) \\u2013 operation labels\nchartOpAvgHitLatency=Average Hit Latency\nchartOpAvgMissLatency=Average Miss Latency\nchartOpAvgReadThroughLatency=Average Read-Through Latency\nchartOpHits=Hits\nchartOpMisses=Misses\nchartOpErrors=Errors\nchartOpSets=Sets\nchartOpGets=Gets\nchartOpDeletes=Deletes\nchartOpClears=Clears\nchartOpDeleteByTags=Delete By Tags\n\nchartTitleLatencyByOperation=Latency by Operation\n',
|
|
4355
|
+
"cds/plugin/caching/dashboard/i18n/i18n_de.properties":'# German\n\nappTitle=Cache-Performance-Dashboard\nappDescription=Zusammenfassendes Statistik- und \\u00dcberwachungs-Dashboard\nbtnText=Hallo sagen\n\nmainTitle=Cache-Performance-Dashboard\nrefreshButton=Aktualisieren\npersistButton=Statistiken speichern\n\nkeyAnalysis=Schl\\u00fcsselanalyse\n\nhitRatio=Trefferquote\navgLatency=Mittlere Latenz\nthroughput=Durchsatz\nerrorRate=Fehlerrate\ntotalRequests=Anfragen gesamt\nmemoryUsage=Speicherverbrauch\nuniqueKeys=Eindeutige Schl\\u00fcssel\nuptime=Betriebszeit\n\nkeysTitle=Schl\\u00fcsselanalyse\nkeysSubtitle=Zugriffsmuster auf Cache-Schl\\u00fcssel\ntopKeys=Meist genutzte Schl\\u00fcssel\ncoldKeys=Kalte Schl\\u00fcssel\nkeyStatistics=Schl\\u00fcsselstatistiken\ntotalKeysTracked=Erfasste Schl\\u00fcssel gesamt\nmostActiveKey=Aktivster Schl\\u00fcssel\nleastActiveKey=Am wenigsten aktiver Schl\\u00fcssel\n\nloading=Wird geladen\\u2026\nnoData=Keine Daten verf\\u00fcgbar\nerror=Fehler\nsuccess=Erfolg\nwarning=Warnung\n\nstatisticsTitle=Statistiken\nstatisticsSubtitle=Historische Cache-Statistiken\nstatisticsFilters=Filter\nstatisticsFiltersSubtitle=Datumsbereich und Zeitraum w\\u00e4hlen\nstatisticsSummary=Zusammenfassung\nstatisticsSummarySubtitle=Statistik-\\u00dcberblick\nstatisticsData=Statistikdaten\nstatisticsDataSubtitle=Detaillierte Statistikdatens\\u00e4tze\nstatisticsTrends=Trends\nstatisticsTrendsSubtitle=Leistungstrends \\u00fcber die Zeit\nstatisticsPeriod=Zeitraum\nstatisticsFrom=Von\nstatisticsTo=Bis\nstatisticsLoad=Laden\nstatisticsRefresh=Aktualisieren\nstatisticsExport=CSV exportieren\nstatisticsTotalRecords=Datens\\u00e4tze gesamt\nstatisticsAvgHitRatio=Mittlere Trefferquote\nstatisticsAvgLatency=Mittlere Latenz\nstatisticsTotalRequests=Anfragen gesamt\nstatisticsNoData=Keine Statistiken f\\u00fcr die gew\\u00e4hlten Kriterien\n\nhomePageTitle=cds-caching \\u2013 Dashboard\ncachingServicesHeader=Caching-Services\nnoCachesAvailable=Keine Caches verf\\u00fcgbar\ncolName=Name\ncolStatisticTrackingEnabled=Statistiken aktiv\ncolKeyTrackingEnabled=Schl\\u00fcsselmetriken aktiv\n\nttFullScreenEnter=Vollbildmodus\nttFullScreenExit=Vollbildmodus beenden\nttCloseMidColumn=Mittlere Spalte schlie\\u00dfen\nttCloseEndColumn=Rechte Spalte schlie\\u00dfen\n\ncachePagePrefix=Cache:\nenableMetricsLabel=Metriken aktivieren\nenableKeyMetricsLabel=Schl\\u00fcsselmetriken aktivieren\nactionClearCache=Cache leeren\n\ntabOverview=\\u00dcberblick\ntabMetrics=Metriken\ntabKeyMetrics=Schl\\u00fcsselmetriken\ntabBrowseCacheEntries=Cache-Eintr\\u00e4ge durchsuchen\n\nconfigCardTitle=Konfiguration\nconfigCardSubtitle=Cache-Konfiguration\ncreateEntryTitle=Cache-Eintrag anlegen\ncreateEntrySubtitle=Neuen Cache-Eintrag anlegen\ngetEntryTitle=Cache-Eintrag lesen\ngetEntrySubtitle=Cache-Eintrag abrufen\ndeleteEntryTitle=Cache-Eintrag l\\u00f6schen\ndeleteEntrySubtitle=Cache-Eintrag entfernen\n\nlabelKey=Schl\\u00fcssel\nlabelValue=Wert\nlabelTtlSeconds=TTL (Sekunden)\nbtnSetEntry=Eintrag setzen\nbtnGetEntry=Eintrag abrufen\nbtnDeleteEntry=Eintrag l\\u00f6schen\n\naggregatedMetricsByHour=Aggregierte Metriken pro Stunde\nbtnClearMetrics=Metriken leeren\nbtnLoadCacheEntries=Cache-Eintr\\u00e4ge laden\nkeyMetricsToolbarTitle=Schl\\u00fcsselmetriken\n\ngroupReadThrough=Read-Through\ngroupReadThroughOps=Read-Through-Vorg\\u00e4nge\ngroupReadThroughPerformance=Read-Through-Leistung\ngroupReadThroughLatencies=Read-Through-Latenzen\ngroupReadThroughHitLatencies=Read-Through-Treffer-Latenzen\ngroupReadThroughMissLatencies=Read-Through-Cache-Miss-Latenzen\ngroupNativeFunction=Native-Funktion\ngroupNativeFunctionOps=Native-Funktionsvorg\\u00e4nge\ngroupNativeFunctionPerformance=Native-Funktionsleistung\nctxGroup=Kontext\ninfoAdditional=Zusatzinformationen\n\ncolHits=Hits\ncolMisses=Misses\ncolTotalRequests=Anfragen gesamt\ncolHitRatioPct=Trefferquote %\ncolErrorRatePct=Fehlerrate %\ncolCacheEfficiency=Cache-Effizienz\ncolTimestamp=Zeitstempel\ncolAvgLatencyMs=\\u00d8 Latenz (ms)\ncolHitAvgMs=Treffer \\u00d8 (ms)\ncolHitMinMs=Treffer min (ms)\ncolHitMaxMs=Treffer max (ms)\ncolMissAvgMs=Miss \\u00d8 (ms)\ncolMissMinMs=Miss min (ms)\ncolMissMaxMs=Miss max (ms)\ncolTotal=Gesamt\ncolSets=Sets\ncolGets=Gets\ncolDeletes=Deletes\ncolClears=Clears\ncolDeleteByTags=L\\u00f6schen per Tags\ncolErrors=Fehler\ncolKeyName=Schl\\u00fcsselname\ncolOperation=Operation\ncolType=Typ\ncolOperationType=Operationstyp\ncolTarget=Ziel\ncolMetadata=Metadaten\ncolAvgHitLatencyMs=\\u00d8 Treffer-Latenz (ms)\ncolMinHitLatencyMs=Min. Treffer-Latenz (ms)\ncolMaxHitLatencyMs=Max. Treffer-Latenz (ms)\ncolAvgMissLatencyMs=\\u00d8 Miss-Latenz (ms)\ncolMinMissLatencyMs=Min. Miss-Latenz (ms)\ncolMaxMissLatencyMs=Max. Miss-Latenz (ms)\ncolTenant=Mandant\ncolUser=Benutzer\ncolLocale=Locale\ncolLastAccess=Letzter Zugriff\ncolFirstAccess=Erster Zugriff\ncolTags=Tags\nbtnShowMetadata=Metadaten anzeigen\n\ncacheEntriesTitle=Cache-Eintr\\u00e4ge\ncacheEntriesSubtitle=Alle Cache-Eintr\\u00e4ge durchsuchen (Vorsicht)\nmessageStripLoadEntriesWarning=Hinweis: Das Laden aller Cache-Eintr\\u00e4ge kann bei gro\\u00dfen Caches die Leistung beeintr\\u00e4chtigen. Verwenden Sie die Schaltfl\\u00e4che, um Bedarf einzutragen.\n\nchartPlaceholder=Diagramm-Ansicht wird hier implementiert\nselectChartHitLatency=Treffer-Latenz\nselectChartMissLatency=Miss-Latenz\n\ntrendsCardTitle=Trends\ntrendsCardSubtitle=Leistungstrends \\u00fcber die Zeit\n\nmetricDetailsPageTitle=Metrikdetails\nmetricPagePrefix=Metrik:\nsectionReadThroughPerformance=Read-Through-Leistung\nsectionNativeFunctionPerformance=Native-Funktionsleistung\n\ntileSubCacheHitRate=Cache-Trefferquote\ntileSubPerformanceFactor=Leistungsfaktor\ntileSubReqPerSec=Anfragen pro Sekunde\ntileSubCacheErrors=Cache-Fehler\ntileSubCacheOperations=Cache-Operationen\ntileSubSuccessfulRetrievals=Erfolgreiche Lesevorg\\u00e4nge\ntileSubFailedRetrievals=Fehlgeschlagene Lesevorg\\u00e4nge\ntileSubErrorCount=Fehleranzahl\ntileSubCacheHitResponse=Antwort bei Treffer\ntileSubCacheMissResponse=Antwort bei Miss\nheaderCacheEfficiency=Cache-Effizienz\nheaderErrorRate=Fehlerrate\nheaderCacheHits=Cache-Treffer\nheaderCacheMisses=Cache-Misses\nheaderCacheErrors=Cache-Fehler\nheaderHitLatency=Treffer-Latenz\nheaderMissLatency=Miss-Latenz\nheaderNativeThroughput=Native-Durchsatz\nheaderNativeErrorRate=Native-Fehlerrate\nheaderNativeSets=Native-Set-Operationen\nheaderNativeGets=Native-Get-Operationen\nheaderNativeDeletes=Native-L\\u00f6schvorg\\u00e4nge\nheaderNativeClears=Native-Clear-Operationen\nheaderDeleteByTags=L\\u00f6schen per Tags\nheaderNativeErrors=Native-Fehler\nheaderTotalNativeOps=Native-Operationen gesamt\ntileSubNativeOpsPerSec=Operationen pro Sekunde\ntileSubWriteOps=Schreibvorg\\u00e4nge\ntileSubReadOps=Lesevorg\\u00e4nge\ntileSubDeleteOps=L\\u00f6schvorg\\u00e4nge\ntileSubClearOps=Clear-Operationen\ntileSubTagDeletes=Tag-basiertes L\\u00f6schen\ntileSubAllOperations=Alle Operationen\n\ncardReadThroughOps=Read-Through-Vorg\\u00e4nge\ncardReadThroughOpsSub=Verteilung Treffer/Miss/Fehler\ncardLatencyCompare=Latenzvergleich\ncardLatencyCompareSub=Read-Through-Latenzmetriken\ncardNativeFunctionOps=Native-Funktionsvorg\\u00e4nge\ncardNativeFunctionOpsSub=Verteilung Treffer/Miss/Fehler\n\nvizMeasureCount=Anzahl\nvizMeasureLatency=Latenz\n\nmsgNoCacheSelected=Kein Cache ausgew\\u00e4hlt\nmsgUpdatingStatsConfig=Statistik-Konfiguration wird aktualisiert\\u2026\nmsgStatsEnabled=Statistik-Erfassung aktiviert\nmsgStatsDisabled=Statistik-Erfassung deaktiviert\nmsgFailedUpdateStatsConfig=Statistik-Konfiguration konnte nicht aktualisiert werden\nmsgErrorUpdateStatsConfig=Fehler beim Aktualisieren der Statistik-Konfiguration\nmsgUpdatingKeyTracking=Schl\\u00fcsselverfolgung wird konfiguriert\\u2026\nmsgKeyTrackingEnabled=Schl\\u00fcsselverfolgung aktiviert\nmsgKeyTrackingDisabled=Schl\\u00fcsselverfolgung deaktiviert\nmsgFailedKeyTracking=Schl\\u00fcsselverfolgung konnte nicht konfiguriert werden\nmsgErrorKeyTracking=Fehler bei der Konfiguration der Schl\\u00fcsselverfolgung\nmsgStatsPersisted=Statistiken gespeichert\nmsgFailedPersistStats=Statistiken konnten nicht gespeichert werden\nmsgErrorPersistStats=Fehler beim Speichern der Statistiken\nmsgLoadEntriesFailed=Cache-Eintr\\u00e4ge konnten nicht geladen werden\nmsgProvideKeyValue=Bitte Schl\\u00fcssel und Wert eingeben\nmsgEntryCreated=Cache-Eintrag angelegt\nmsgCreateEntryFailed=Cache-Eintrag konnte nicht angelegt werden\nmsgProvideKey=Bitte einen Schl\\u00fcssel eingeben\nmsgEntryDeleted=Cache-Eintrag gel\\u00f6scht\nmsgDeleteEntryFailed=Cache-Eintrag konnte nicht gel\\u00f6scht werden\nmsgNotFound=Nicht gefunden\nmsgGetEntryError=Fehler: Eintrag nicht gefunden oder Fehler\nmsgMetricsEnabled=Metriken aktiviert\nmsgMetricsDisabled=Metriken deaktiviert\nmsgFailedUpdateMetrics=Metrik-Einstellung konnte nicht aktualisiert werden\nmsgKeyMetricsEnabled=Schl\\u00fcsselmetriken aktiviert\nmsgKeyMetricsDisabled=Schl\\u00fcsselmetriken deaktiviert\nmsgFailedKeyMetrics=Schl\\u00fcsselmetriken-Einstellung konnte nicht aktualisiert werden\nmsgConfirmClearCache=Cache wirklich leeren? Diese Aktion kann nicht r\\u00fcckg\\u00e4ngig gemacht werden.\nmsgCacheCleared=Cache geleert\nmsgClearCacheFailed=Cache konnte nicht geleert werden\nmsgMetricsCleared=Metriken geleert\nmsgKeyMetricsCleared=Schl\\u00fcsselmetriken geleert\nmsgFailedClearMetrics=Metriken konnten nicht geleert werden\nmsgFailedClearKeyMetrics=Schl\\u00fcsselmetriken konnten nicht geleert werden\nmsgMetricNotFound=Metrik nicht gefunden\nmsgLoadMetricFailed=Metrikdetails konnten nicht geladen werden\n\nkeyTabMetadata=Metadaten\nkeyTabSubject=Subject\nkeyTabQuery=Abfrage\nkeyTabCacheOptions=Cache-Optionen\n\nchartOpAvgHitLatency=Mittlere Treffer-Latenz\nchartOpAvgMissLatency=Mittlere Miss-Latenz\nchartOpAvgReadThroughLatency=Mittlere Read-Through-Latenz\nchartOpHits=Hits\nchartOpMisses=Misses\nchartOpErrors=Fehler\nchartOpSets=Sets\nchartOpGets=Gets\nchartOpDeletes=Deletes\nchartOpClears=Clears\nchartOpDeleteByTags=L\\u00f6schen per Tags\n\nchartTitleLatencyByOperation=Latenz je Operation\n',
|
|
4356
|
+
"cds/plugin/caching/dashboard/i18n/i18n_en.properties":'# Default (English) \\u2013 bundle fallback\n\nappTitle=Cache Performance Dashboard\nappDescription=Comprehensive cache statistics and monitoring dashboard\nbtnText=Say Hello\n\n# Main Dashboard\nmainTitle=Cache Performance Dashboard\nrefreshButton=Refresh\npersistButton=Persist Statistics\n\n# Navigation\nkeyAnalysis=Key Analysis\n\n# Metrics\nhitRatio=Hit Ratio\navgLatency=Average Latency\nthroughput=Throughput\nerrorRate=Error Rate\ntotalRequests=Total Requests\nmemoryUsage=Memory Usage\nuniqueKeys=Unique Keys\nuptime=Uptime\n\n# Keys\nkeysTitle=Key Analysis\nkeysSubtitle=Cache Key Access Patterns\ntopKeys=Top Accessed Keys\ncoldKeys=Cold Keys\nkeyStatistics=Key Statistics\ntotalKeysTracked=Total Keys Tracked\nmostActiveKey=Most Active Key\nleastActiveKey=Least Active Key\n\n# Common\nloading=Loading...\nnoData=No data available\nerror=Error\nsuccess=Success\nwarning=Warning\n\n# Statistics Page\nstatisticsTitle=Statistics\nstatisticsSubtitle=Historical cache statistics\nstatisticsFilters=Filters\nstatisticsFiltersSubtitle=Select date range and period\nstatisticsSummary=Summary\nstatisticsSummarySubtitle=Statistics overview\nstatisticsData=Statistics Data\nstatisticsDataSubtitle=Detailed statistics records\nstatisticsTrends=Trends\nstatisticsTrendsSubtitle=Performance trends over time\nstatisticsPeriod=Period\nstatisticsFrom=From\nstatisticsTo=To\nstatisticsLoad=Load\nstatisticsRefresh=Refresh\nstatisticsExport=Export CSV\nstatisticsTotalRecords=Total Records\nstatisticsAvgHitRatio=Average Hit Ratio\nstatisticsAvgLatency=Average Latency\nstatisticsTotalRequests=Total Requests\nstatisticsNoData=No statistics found for the selected criteria\n\n# Main list\nhomePageTitle=cds-caching \\u2013 Dashboard\ncachingServicesHeader=Caching Services\nnoCachesAvailable=No caches available\ncolName=Name\ncolStatisticTrackingEnabled=Statistic Tracking Enabled\ncolKeyTrackingEnabled=Key Tracking Enabled\n\n# Tooltips\nttFullScreenEnter=Enter Full Screen Mode\nttFullScreenExit=Exit Full Screen Mode\nttCloseMidColumn=Close middle column\nttCloseEndColumn=Close end column\n\n# Cache view \\u2013 page\ncachePagePrefix=Cache:\nenableMetricsLabel=Enable Metrics\nenableKeyMetricsLabel=Enable Key Metrics\nactionClearCache=Clear Cache\n\n# Tabs\ntabOverview=Overview\ntabMetrics=Metrics\ntabKeyMetrics=Key Metrics\ntabBrowseCacheEntries=Browse Cache Entries\n\n# Cards overview\nconfigCardTitle=Configuration\nconfigCardSubtitle=Cache Configuration\ncreateEntryTitle=Create Cache Entry\ncreateEntrySubtitle=Create a new cache entry\ngetEntryTitle=Get Cache Entry\ngetEntrySubtitle=Get a cache entry\ndeleteEntryTitle=Delete Cache Entry\ndeleteEntrySubtitle=Delete a cache entry\n\n# Form\nlabelKey=Key\nlabelValue=Value\nlabelTtlSeconds=TTL (seconds)\nbtnSetEntry=Set Entry\nbtnGetEntry=Get Entry\nbtnDeleteEntry=Delete Entry\n\n# Metrics & toolbars\naggregatedMetricsByHour=Aggregated Metrics by Hour\nbtnClearMetrics=Clear Metrics\nbtnLoadCacheEntries=Load Cache Entries\nkeyMetricsToolbarTitle=Key Metrics\n\n# Column groups\ngroupReadThrough=Read-Through\ngroupReadThroughOps=Read-Through Operations\ngroupReadThroughPerformance=Read-Through Performance\ngroupReadThroughLatencies=Read-Through Latencies\ngroupReadThroughHitLatencies=Read-Through Hit Latencies\ngroupReadThroughMissLatencies=Read-Through Miss Latencies\ngroupNativeFunction=Native Function\ngroupNativeFunctionOps=Native Function Operations\ngroupNativeFunctionPerformance=Native Function Performance\nctxGroup=Context\ninfoAdditional=Additional Information\n\n# Column sub-labels\ncolHits=Hits\ncolMisses=Misses\ncolTotalRequests=Total Requests\ncolHitRatioPct=Hit Ratio %\ncolErrorRatePct=Error Rate %\ncolCacheEfficiency=Cache Efficiency\ncolTimestamp=Timestamp\ncolAvgLatencyMs=Avg Latency (ms)\ncolHitAvgMs=Hit Avg (ms)\ncolHitMinMs=Hit Min (ms)\ncolHitMaxMs=Hit Max (ms)\ncolMissAvgMs=Miss Avg (ms)\ncolMissMinMs=Miss Min (ms)\ncolMissMaxMs=Miss Max (ms)\ncolTotal=Total\ncolSets=Sets\ncolGets=Gets\ncolDeletes=Deletes\ncolClears=Clears\ncolDeleteByTags=Delete By Tags\ncolErrors=Errors\ncolKeyName=Key Name\ncolOperation=Operation\ncolType=Type\ncolOperationType=Operation Type\ncolTarget=Target\ncolMetadata=Metadata\ncolAvgHitLatencyMs=Avg Hit Latency (ms)\ncolMinHitLatencyMs=Min Hit Latency (ms)\ncolMaxHitLatencyMs=Max Hit Latency (ms)\ncolAvgMissLatencyMs=Avg Miss Latency (ms)\ncolMinMissLatencyMs=Min Miss Latency (ms)\ncolMaxMissLatencyMs=Max Miss Latency (ms)\ncolTenant=Tenant\ncolUser=User\ncolLocale=Locale\ncolLastAccess=Last Access\ncolFirstAccess=First Access\ncolTags=Tags\nbtnShowMetadata=Show Metadata\n\n# Browse\ncacheEntriesTitle=Cache Entries\ncacheEntriesSubtitle=Browse all cache entries (use with caution)\nmessageStripLoadEntriesWarning=Warning: Loading all cache entries may impact performance for large caches. Use the button below to load entries on demand.\n\n# Placeholder chart\nchartPlaceholder=Chart visualization will be implemented here\nselectChartHitLatency=Hit Latency\nselectChartMissLatency=Miss Latency\n\n# Card chart headers (hidden section)\ntrendsCardTitle=Trends\ntrendsCardSubtitle=Performance trends over time\n\n# Single metric \\u2013 page\nmetricDetailsPageTitle=Metric Details\nmetricPagePrefix=Metric:\nsectionReadThroughPerformance=Read-Through Performance\nsectionNativeFunctionPerformance=Native Function Performance\n\n# Generic tiles\ntileSubCacheHitRate=Cache Hit Rate\ntileSubPerformanceFactor=Performance Factor\ntileSubReqPerSec=Requests per Second\ntileSubCacheErrors=Cache Errors\ntileSubCacheOperations=Cache Operations\ntileSubSuccessfulRetrievals=Successful Retrievals\ntileSubFailedRetrievals=Failed Retrievals\ntileSubErrorCount=Error Count\ntileSubCacheHitResponse=Cache Hit Response\ntileSubCacheMissResponse=Cache Miss Response\nheaderCacheEfficiency=Cache Efficiency\nheaderErrorRate=Error Rate\nheaderCacheHits=Cache Hits\nheaderCacheMisses=Cache Misses\nheaderCacheErrors=Cache Errors\nheaderHitLatency=Hit Latency\nheaderMissLatency=Miss Latency\nheaderNativeThroughput=Native Throughput\nheaderNativeErrorRate=Native Error Rate\nheaderNativeSets=Native Sets\nheaderNativeGets=Native Gets\nheaderNativeDeletes=Native Deletes\nheaderNativeClears=Native Clears\nheaderDeleteByTags=Delete By Tags\nheaderNativeErrors=Native Errors\nheaderTotalNativeOps=Total Native Ops\ntileSubNativeOpsPerSec=Operations per Second\ntileSubWriteOps=Write Operations\ntileSubReadOps=Read Operations\ntileSubDeleteOps=Delete Operations\ntileSubClearOps=Clear Operations\ntileSubTagDeletes=Tag-based Deletes\ntileSubAllOperations=All Operations\n\n# Cards (single metric)\ncardReadThroughOps=Read-Through Operations\ncardReadThroughOpsSub=Hit/Miss/Error Distribution\ncardLatencyCompare=Latency Comparison\ncardLatencyCompareSub=Read-Through Latency Metrics\ncardNativeFunctionOps=Native Function Operations\ncardNativeFunctionOpsSub=Operation Distribution\n\n# Viz internal labels\nvizMeasureCount=Count\nvizMeasureLatency=Latency\n\n# Controllers & messages\nmsgNoCacheSelected=No cache selected\nmsgUpdatingStatsConfig=Updating statistics configuration\\u2026\nmsgStatsEnabled=Statistics enabled successfully\nmsgStatsDisabled=Statistics disabled successfully\nmsgFailedUpdateStatsConfig=Failed to update statistics configuration\nmsgErrorUpdateStatsConfig=Error updating statistics configuration\nmsgUpdatingKeyTracking=Updating key tracking configuration\\u2026\nmsgKeyTrackingEnabled=Key tracking enabled successfully\nmsgKeyTrackingDisabled=Key tracking disabled successfully\nmsgFailedKeyTracking=Failed to update key tracking configuration\nmsgErrorKeyTracking=Error updating key tracking configuration\nmsgStatsPersisted=Statistics persisted successfully\nmsgFailedPersistStats=Failed to persist statistics\nmsgErrorPersistStats=Error persisting statistics\nmsgLoadEntriesFailed=Failed to load cache entries\nmsgProvideKeyValue=Please provide both key and value\nmsgEntryCreated=Cache entry created successfully\nmsgCreateEntryFailed=Failed to create cache entry\nmsgProvideKey=Please provide a key\nmsgEntryDeleted=Cache entry deleted successfully\nmsgDeleteEntryFailed=Failed to delete cache entry\nmsgNotFound=Not found\nmsgGetEntryError=Error: Entry not found or error occurred\nmsgMetricsEnabled=Metrics enabled successfully\nmsgMetricsDisabled=Metrics disabled successfully\nmsgFailedUpdateMetrics=Failed to update metrics setting\nmsgKeyMetricsEnabled=Key metrics enabled successfully\nmsgKeyMetricsDisabled=Key metrics disabled successfully\nmsgFailedKeyMetrics=Failed to update key metrics setting\nmsgConfirmClearCache=Are you sure you want to clear this cache? This action cannot be undone.\nmsgCacheCleared=Cache cleared successfully\nmsgClearCacheFailed=Failed to clear cache\nmsgMetricsCleared=Metrics cleared successfully\nmsgKeyMetricsCleared=Key metrics cleared successfully\nmsgFailedClearMetrics=Failed to clear metrics\nmsgFailedClearKeyMetrics=Failed to clear key metrics\nmsgMetricNotFound=Metric not found\nmsgLoadMetricFailed=Failed to load metric details\n\n# Key metrics popover tabs\nkeyTabMetadata=Metadata\nkeyTabSubject=Subject\nkeyTabQuery=Query\nkeyTabCacheOptions=Cache Options\n\n# Chart (single metric) \\u2013 operation labels\nchartOpAvgHitLatency=Average Hit Latency\nchartOpAvgMissLatency=Average Miss Latency\nchartOpAvgReadThroughLatency=Average Read-Through Latency\nchartOpHits=Hits\nchartOpMisses=Misses\nchartOpErrors=Errors\nchartOpSets=Sets\nchartOpGets=Gets\nchartOpDeletes=Deletes\nchartOpClears=Clears\nchartOpDeleteByTags=Delete By Tags\n\nchartTitleLatencyByOperation=Latency by Operation\n',
|
|
4357
4357
|
"cds/plugin/caching/dashboard/manifest.json":'{"_version":"1.12.0","sap.app":{"id":"cds.plugin.caching.dashboard","type":"application","i18n":"i18n/i18n.properties","title":"{{appTitle}}","description":"{{appDescription}}","applicationVersion":{"version":"1.0.0"},"sourceTemplate":{"id":"generator-ui5-ts-app","version":"1.1.0"},"dataSources":{"caching":{"uri":"/odata/v4/caching/","type":"OData","settings":{"odataVersion":"4.0"}}}},"sap.ui":{"technology":"UI5","icons":{},"deviceTypes":{"desktop":true,"tablet":true,"phone":true}},"sap.ui5":{"rootView":{"viewName":"cds.plugin.caching.dashboard.view.App","type":"XML","id":"app"},"dependencies":{"minUI5Version":"1.136.1","libs":{"sap.ui.core":{},"sap.m":{},"sap.ui.layout":{},"sap.viz":{},"sap.ui.table":{},"sap.ui.unified":{},"sap.f":{},"sap.tnt":{}}},"handleValidation":true,"contentDensities":{"compact":true,"cozy":true},"models":{"i18n":{"type":"sap.ui.model.resource.ResourceModel","settings":{"bundleName":"cds.plugin.caching.dashboard.i18n.i18n","supportedLocales":["en","de"],"fallbackLocale":"en","async":true}},"formatter":{"type":"sap.ui.model.json.JSONModel","settings":{}},"":{"type":"sap.ui.model.odata.v4.ODataModel","settings":{"serviceUrl":"/odata/v4/caching-api/","operationMode":"Server","autoExpandSelect":true,"groupId":"$auto"}}},"routing":{"config":{"routerClass":"sap.f.routing.Router","viewType":"XML","viewPath":"cds.plugin.caching.dashboard.view","controlId":"fcl","controlAggregation":"pages"},"routes":[{"pattern":"","name":"main","target":"main","subroutes":[{"pattern":"cache/{cache}","name":"cache","target":"cache","subroutes":[{"pattern":"cache/{cache}/statistic/{metricId}","name":"singleMetric","target":"singleMetric"},{"pattern":"cache/{cache}/key-metric/{keyMetricId}","name":"singleKeyMetric","target":"singleKeyMetric"}]}]}],"targets":{"main":{"viewName":"Main","viewLevel":1,"controlAggregation":"beginColumnPages"},"cache":{"viewName":"Cache","viewLevel":2,"controlAggregation":"midColumnPages"},"singleMetric":{"viewName":"SingleMetric","viewLevel":3,"controlAggregation":"endColumnPages"},"singleKeyMetric":{"viewName":"SingleKeyMetric","viewLevel":3,"controlAggregation":"endColumnPages"}}},"flexBundle":false}}',
|
|
4358
4358
|
"cds/plugin/caching/dashboard/view/App.view.xml":'<mvc:View controllerName="cds.plugin.caching.dashboard.controller.App" displayBlock="true"\n\txmlns="sap.m"\n\txmlns:core="sap.ui.core"\n\txmlns:l="sap.ui.layout"\n\txmlns:f="sap.f"\n\txmlns:form="sap.ui.layout.form"\n\txmlns:fb="sap.ui.comp.filterbar"\n\txmlns:card="sap.f.cards"\n\txmlns:viz="sap.viz.ui5.controls"\n\txmlns:viz.feeds="sap.viz.ui5.controls.common.feeds"\n\txmlns:mvc="sap.ui.core.mvc"><App id="app"><f:FlexibleColumnLayout id="fcl" layout="{app>/layout}"></f:FlexibleColumnLayout></App></mvc:View> ',
|
|
4359
|
-
"cds/plugin/caching/dashboard/view/Cache.view.xml":'<mvc:View controllerName="cds.plugin.caching.dashboard.controller.Cache"\n\txmlns="sap.m"\n\txmlns:mvc="sap.ui.core.mvc"\n\txmlns:f="sap.f"\n\txmlns:card="sap.f.cards"\n\txmlns:core="sap.ui.core"\n\txmlns:l="sap.ui.layout"\n\txmlns:ui="sap.ui.table"\n\txmlns:form="sap.ui.layout.form"\n\txmlns:semantic="sap.m.semantic"\n\txmlns:unified="sap.ui.unified"\n\txmlns:app="http://schemas.sap.com/sapui5/extension/sap.ui.core.CustomData/1" app:routePattern="statistics" core:require="{\n\t\tformatter: \'cds/plugin/caching/dashboard/model/formatter\'\n\t}"><f:DynamicPage title="Cache: {app>/selectedCache}" stickySubheaderProvider="cacheStickySubheaderProvider"><f:title><f:DynamicPageTitle><f:heading><Title text="Cache: {app>/selectedCache}"/></f:heading><f:actions><Label text="Enable Metrics" class=""/><Switch id="cacheEnableMetrics" state="{ path: \'metricsEnabled\', mode: \'sap.ui.model.BindingMode.OneWay\'}" change="onEnableMetricsChange" /><Label text="Enable Key Metrics" class=""/><Switch id="cacheEnableKeyMetrics" state="{ path: \'keyMetricsEnabled\', mode: \'sap.ui.model.BindingMode.OneWay\' }" change="onEnableKeyMetricsChange" /><ToolbarSeparator /><Button text="Clear Cache" type="Transparent" press="onClearCache" /></f:actions><f:navigationActions><OverflowToolbarButton type="Transparent" icon="sap-icon://full-screen" press="handleFullScreen" tooltip="Enter Full Screen Mode" visible="{= ${app>/layout} === \'TwoColumnsMidExpanded\' }"/><OverflowToolbarButton type="Transparent" icon="sap-icon://exit-full-screen" press="handleExitFullScreen" tooltip="Exit Full Screen Mode" visible="{= ${app>/layout} === \'MidColumnFullScreen\' }"/><OverflowToolbarButton type="Transparent" icon="sap-icon://decline" press="handleClose" tooltip="Close middle column"/></f:navigationActions></f:DynamicPageTitle></f:title><f:header><f:DynamicPageHeader><f:content></f:content></f:DynamicPageHeader></f:header><f:content><IconTabBar id="cacheStickySubheaderProvider" stretchContentHeight="true" expandable="false" headerMode="Inline" select=".onSelectionChange" selectedKey="{ui>/selectedTab}"><items><IconTabFilter text="Overview" key="main"><f:GridContainer snapToRow="true" allowDenseFill="true"><f:Card><f:header><card:Header title="Configuration" subtitle="Cache Configuration" /></f:header><f:content><VBox width="100%"><form:SimpleForm width="100%" editable="true" labelSpanL="2" labelSpanM="2" labelSpanS="2" layout="ResponsiveGridLayout"><form:content><TextArea rows="10" editable="false" width="100%" value="{ path: \'config\', formatter: \'formatter.formatJSON\' }" /></form:content></form:SimpleForm></VBox></f:content><f:layoutData><f:GridContainerItemLayoutData columns="6" minRows="3"/></f:layoutData></f:Card><f:Card><f:header><card:Header title="Create Cache Entry" subtitle="Create a new cache entry" /></f:header><f:content><VBox width="100%"><form:SimpleForm width="100%" editable="true" labelSpanL="2" labelSpanM="2" labelSpanS="2" layout="ResponsiveGridLayout"><form:content><Label text="Key" /><Input id="createKeyInput" value="{ui>/createKey}" width="100%" /><Label text="Value"/><TextArea id="createValueInput" rows="10" value="{ui>/createValue}" width="100%" /><Label text="TTL (seconds)"/><Input id="createTtlInput" type="Number" value="{ui>/createTtl}" width="100%" /></form:content></form:SimpleForm><Button text="Set Entry" type="Emphasized" press="onSetKey" class="sapUiSmallMarginEnd sapUiSmallMarginBottom"><layoutData><FlexItemData alignSelf="End" /></layoutData></Button></VBox></f:content><f:layoutData><f:GridContainerItemLayoutData columns="6" minRows="3"/></f:layoutData></f:Card><f:Card><f:header><card:Header title="Get Cache Entry" subtitle="Get a cache entry" /></f:header><f:content><VBox width="100%"><form:SimpleForm width="100%" editable="true" labelSpanL="2" labelSpanM="2" labelSpanS="2" layout="ResponsiveGridLayout"><form:content><Label text="Key"/><Input id="getKeyInput" value="{ui>/getKey}" width="100%" /><Label text="Value"/><TextArea id="getValueOutput" rows="10" editable="false" width="100%" value="{ui>/getValue}" /></form:content></form:SimpleForm><Button text="Get Entry" type="Emphasized" press="onGetKey" class="sapUiSmallMarginEnd sapUiSmallMarginBottom"><layoutData><FlexItemData alignSelf="End" /></layoutData></Button></VBox></f:content><f:layoutData><f:GridContainerItemLayoutData columns="6" minRows="3"/></f:layoutData></f:Card><f:Card><f:header><card:Header title="Delete Cache Entry" subtitle="Delete a cache entry" /></f:header><f:content><VBox width="100%"><form:SimpleForm width="100%" editable="true" labelSpanL="2" labelSpanM="2" labelSpanS="2" layout="ResponsiveGridLayout"><form:content><Label text="Key" class=""/><Input id="deleteKeyInput" value="{ui>/deleteKey}" width="100%" /></form:content></form:SimpleForm><Button text="Delete Entry" type="Emphasized" press="onDeleteKey" class="sapUiSmallMarginEnd sapUiSmallMarginBottom"><layoutData><FlexItemData alignSelf="End" /></layoutData></Button></VBox></f:content><f:layoutData><f:GridContainerItemLayoutData columns="6" minRows="3"/></f:layoutData></f:Card></f:GridContainer></IconTabFilter><IconTabSeparator /><IconTabFilter text="Metrics" key="metrics"><Toolbar class="sapUiTinyMarginBottom" design="Transparent" style="Clear"><Title text="Aggregated Metrics by Hour" /><ToolbarSpacer /><Button icon="sap-icon://refresh" text="Refresh" press="onRefreshMetricsData" type="Transparent" class="sapUiTinyMarginEnd" /><Button type="Transparent" text="Clear Metrics" press="onClearMetrics" class="sapUiTinyMarginEnd" /></Toolbar><ui:Table id="metricsTable" rows="{\n\t\t\t\t\t\t\t\t \tpath: \'/Metrics\',\n\t\t\t\t\t\t\t\t\tsuspended: true,\n\t\t\t\t\t\t\t\t\tsorter: {\n\t\t\t\t\t\t\t\t\t\tpath: \'timestamp\',\n\t\t\t\t\t\t\t\t\t\tdescending: true\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t }" rowMode="Auto" selectionMode="Single" selectionBehavior="RowOnly" rowSelectionChange=".onMetricsRowSelect" enableColumnReordering="true"><ui:columns><ui:Column width="150px" sortProperty="timestamp" filterProperty="timestamp"><ui:label><Text text="Timestamp" /></ui:label><ui:template><Text text="{ path: \'timestamp\'}" /></ui:template></ui:Column><ui:Column width="80px" sortProperty="hits" filterProperty="hits" headerSpan="15,1"><ui:multiLabels><Text text="Read-Through" /><Text text="Hits" /></ui:multiLabels><ui:template><Text text="{path: \'hits\', type: \'sap.ui.model.type.Integer\'}" /></ui:template></ui:Column><ui:Column width="80px" sortProperty="misses" filterProperty="misses"><ui:multiLabels><Text text="Read-Through" /><Text text="Misses" /></ui:multiLabels><ui:template><Text text="{path: \'misses\', type: \'sap.ui.model.type.Integer\'}" /></ui:template></ui:Column><ui:Column width="80px" sortProperty="errors" filterProperty="errors"><ui:multiLabels><Text text="Read-Through" /><Text text="Errors" /></ui:multiLabels><ui:template><Text text="{path: \'errors\', type: \'sap.ui.model.type.Integer\'}" /></ui:template></ui:Column><ui:Column width="80px" sortProperty="totalRequests" filterProperty="totalRequests"><ui:multiLabels><Text text="Read-Through" /><Text text="Total Requests" /></ui:multiLabels><ui:template><Text text="{path: \'totalRequests\', type: \'sap.ui.model.type.Integer\'}" /></ui:template></ui:Column><ui:Column width="100px" sortProperty="hitRatio" filterProperty="hitRatio"><ui:multiLabels><Text text="Read-Through Performance" /><Text text="Hit Ratio %" /></ui:multiLabels><ui:template><Text text="{path: \'hitRatio\', type: \'sap.ui.model.type.Float\', formatOptions: {style: \'short\', decimals: 2}}" /></ui:template></ui:Column><ui:Column width="100px" sortProperty="throughput" filterProperty="throughput"><ui:multiLabels><Text text="Read-Through Performance" /><Text text="Throughput" /></ui:multiLabels><ui:template><Text text="{path: \'throughput\', type: \'sap.ui.model.type.Float\', formatOptions: {style: \'short\', decimals: 2}}" /></ui:template></ui:Column><ui:Column width="100px" sortProperty="errorRate" filterProperty="errorRate"><ui:multiLabels><Text text="Read-Through Performance" /><Text text="Error Rate %" /></ui:multiLabels><ui:template><Text text="{path: \'errorRate\', type: \'sap.ui.model.type.Float\', formatOptions: {style: \'short\', decimals: 2}}" /></ui:template></ui:Column><ui:Column width="120px" sortProperty="cacheEfficiency" filterProperty="cacheEfficiency"><ui:multiLabels><Text text="Read-Through Performance" /><Text text="Cache Efficiency" /></ui:multiLabels><ui:template><Text text="{path: \'cacheEfficiency\', type: \'sap.ui.model.type.Float\', formatOptions: {style: \'short\', decimals: 2}}" /></ui:template></ui:Column><ui:Column width="120px" sortProperty="avgReadThroughLatency" filterProperty="avgReadThroughLatency" headerSpan="8,1"><ui:multiLabels><Text text="Read-Through Latencies" /><Text text="Avg Latency (ms)" /></ui:multiLabels><ui:template><Text text="{path: \'avgReadThroughLatency\', type: \'sap.ui.model.type.Float\', formatOptions: {style: \'short\', decimals: 2}}ms" /></ui:template></ui:Column><ui:Column width="120px" sortProperty="avgHitLatency" filterProperty="avgHitLatency" headerSpan="8,1"><ui:multiLabels><Text text="Read-Through Hit Latencies" /><Text text="Hit Avg (ms)" /></ui:multiLabels><ui:template><Text text="{path: \'avgHitLatency\', type: \'sap.ui.model.type.Float\', formatOptions: {style: \'short\', decimals: 2}}ms" /></ui:template></ui:Column><ui:Column width="120px" sortProperty="minHitLatency" filterProperty="minHitLatency"><ui:multiLabels><Text text="Read-Through Hit Latencies" /><Text text="Hit Min (ms)" /></ui:multiLabels><ui:template><Text text="{path: \'minHitLatency\', type: \'sap.ui.model.type.Float\', formatOptions: {style: \'short\', decimals: 2}}ms" /></ui:template></ui:Column><ui:Column width="120px" sortProperty="maxHitLatency" filterProperty="maxHitLatency"><ui:multiLabels><Text text="Read-Through Hit Latencies" /><Text text="Hit Max (ms)" /></ui:multiLabels><ui:template><Text text="{path: \'maxHitLatency\', type: \'sap.ui.model.type.Float\', formatOptions: {style: \'short\', decimals: 2}}ms" /></ui:template></ui:Column><ui:Column width="120px" sortProperty="avgMissLatency" filterProperty="avgMissLatency" headerSpan="5,1"><ui:multiLabels><Text text="Read-Through Miss Latencies" /><Text text="Miss Avg (ms)" /></ui:multiLabels><ui:template><Text text="{path: \'avgMissLatency\', type: \'sap.ui.model.type.Float\', formatOptions: {style: \'short\', decimals: 2}}ms" /></ui:template></ui:Column><ui:Column width="120px" sortProperty="minMissLatency" filterProperty="minMissLatency"><ui:multiLabels><Text text="Read-Through Miss Latencies" /><Text text="Miss Min (ms)" /></ui:multiLabels><ui:template><Text text="{path: \'minMissLatency\', type: \'sap.ui.model.type.Float\', formatOptions: {style: \'short\', decimals: 2}}ms" /></ui:template></ui:Column><ui:Column width="120px" sortProperty="maxMissLatency" filterProperty="maxMissLatency"><ui:multiLabels><Text text="Read-Through Miss Latencies" /><Text text="Miss Max (ms)" /></ui:multiLabels><ui:template><Text text="{path: \'maxMissLatency\', type: \'sap.ui.model.type.Float\', formatOptions: {style: \'short\', decimals: 2}}ms" /></ui:template></ui:Column><ui:Column width="80px" sortProperty="nativeSets" filterProperty="nativeSets" headerSpan="9,1"><ui:multiLabels><Text text="Native Function" /><Text text="Sets" /></ui:multiLabels><ui:template><Text text="{path: \'nativeSets\', type: \'sap.ui.model.type.Integer\'}" /></ui:template></ui:Column><ui:Column width="80px" sortProperty="nativeGets" filterProperty="nativeGets"><ui:multiLabels><Text text="Native Function Operations" /><Text text="Gets" /></ui:multiLabels><ui:template><Text text="{path: \'nativeGets\', type: \'sap.ui.model.type.Integer\'}" /></ui:template></ui:Column><ui:Column width="80px" sortProperty="nativeDeletes" filterProperty="nativeDeletes"><ui:multiLabels><Text text="Native Function Operations" /><Text text="Deletes" /></ui:multiLabels><ui:template><Text text="{path: \'nativeDeletes\', type: \'sap.ui.model.type.Integer\'}" /></ui:template></ui:Column><ui:Column width="80px" sortProperty="nativeClears" filterProperty="nativeClears"><ui:multiLabels><Text text="Native Function Operations" /><Text text="Clears" /></ui:multiLabels><ui:template><Text text="{path: \'nativeClears\', type: \'sap.ui.model.type.Integer\'}" /></ui:template></ui:Column><ui:Column width="80px" sortProperty="nativeDeleteByTags" filterProperty="nativeDeleteByTags"><ui:multiLabels><Text text="Native Function Operations" /><Text text="Delete By Tags" /></ui:multiLabels><ui:template><Text text="{path: \'nativeDeleteByTags\', type: \'sap.ui.model.type.Integer\'}" /></ui:template></ui:Column><ui:Column width="80px" sortProperty="nativeErrors" filterProperty="nativeErrors"><ui:multiLabels><Text text="Native Function Operations" /><Text text="Errors" /></ui:multiLabels><ui:template><Text text="{path: \'nativeErrors\', type: \'sap.ui.model.type.Integer\'}" /></ui:template></ui:Column><ui:Column width="80px" sortProperty="totalNativeOperations" filterProperty="totalNativeOperations"><ui:multiLabels><Text text="Native Function Operations" /><Text text="Total" /></ui:multiLabels><ui:template><Text text="{path: \'totalNativeOperations\', type: \'sap.ui.model.type.Integer\'}" /></ui:template></ui:Column><ui:Column width="100px" sortProperty="nativeThroughput" filterProperty="nativeThroughput" headerSpan="2,1"><ui:multiLabels><Text text="Native Function Performance" /><Text text="Throughput" /></ui:multiLabels><ui:template><Text text="{path: \'nativeThroughput\', type: \'sap.ui.model.type.Float\', formatOptions: {style: \'short\', decimals: 2}}" /></ui:template></ui:Column><ui:Column width="100px" sortProperty="nativeErrorRate" filterProperty="nativeErrorRate"><ui:multiLabels><Text text="Native Function Performance" /><Text text="Error Rate %" /></ui:multiLabels><ui:template><Text text="{path: \'nativeErrorRate\', type: \'sap.ui.model.type.Float\', formatOptions: {style: \'short\', decimals: 2}}" /></ui:template></ui:Column></ui:columns></ui:Table><f:Card class="sapUiTinyMarginBottom" visible="false"><f:header><card:Header title="Trends" subtitle="Performance trends over time" /></f:header><f:content><l:VerticalLayout class="sapUiTinyMargin"><l:HorizontalLayout class="sapUiTinyMarginBottom"><Select id="cacheChartMetric" selectedKey="{ui>/chartMetric}" change=".onChartMetricChange" class="sapUiTinyMarginEnd"><core:Item key="hitRatio" text="Hit Ratio" /><core:Item key="avgLatency" text="Average Latency" /><core:Item key="avgHitLatency" text="Hit Latency" /><core:Item key="avgMissLatency" text="Miss Latency" /><core:Item key="cacheEfficiency" text="Cache Efficiency" /><core:Item key="throughput" text="Throughput" /><core:Item key="errorRate" text="Error Rate" /><core:Item key="memoryUsage" text="Memory Usage" /></Select></l:HorizontalLayout><Text text="Chart visualization will be implemented here" /></l:VerticalLayout></f:content></f:Card></IconTabFilter><IconTabFilter text="Key Metrics" key="keymetrics"><Toolbar class="sapUiTinyMarginBottom" design="Transparent" style="Clear"><Title text="Key Metrics" /><ToolbarSpacer /><Button icon="sap-icon://refresh" text="Refresh" press="onRefreshKeyMetricsData" type="Transparent" class="sapUiTinyMarginEnd" /><Button type="Transparent" text="Clear Metrics" press="onClearKeyMetrics" class="sapUiTinyMarginEnd" /></Toolbar><ui:Table id="keyMetricsTable" rows="{\n\t\t\t\t\t\t\t\t \tpath: \'/KeyMetrics\',\n\t\t\t\t\t\t\t\t\tsuspended: true\n\t\t\t\t\t\t\t\t }" \n\t\t\t\t\t\t\t\t rowMode="Auto" \n\t\t\t\t\t\t\t\t selectionMode="None" \n\t\t\t\t\t\t\t\t enableColumnReordering="true"><ui:columns><ui:Column minWidth="200px" sortProperty="keyName" filterProperty="keyName"><ui:multiLabels><Text text="Key Name" /></ui:multiLabels><ui:template><VBox width="100%"><Text text="{ path: \'keyName\'}" tooltip="{keyName}" wrapping="false" wrappingType="Normal" /><Text visible="false" text="{query}" /><Text visible="false" text="{metadata}" /><Text visible="false" text="{subject}" /><Text visible="false" text="{cacheOptions}" /></VBox></ui:template></ui:Column><ui:Column width="100px" sortProperty="operation" filterProperty="operation" headerSpan="5,1"><ui:multiLabels><Text text="Context" /><Text text="Operation" /></ui:multiLabels><ui:template><Text text="{operation}" /></ui:template></ui:Column><ui:Column width="150px" sortProperty="dataType" filterProperty="dataType" ><ui:multiLabels><Text text="Context" /><Text text="Type" /></ui:multiLabels><ui:template><Text text="{dataType}" /></ui:template></ui:Column><ui:Column width="150px" sortProperty="operationType" filterProperty="operationType"><ui:multiLabels><Text text="Context" /><Text text="Operation Type" /></ui:multiLabels><ui:template><Text text="{operationType}" /></ui:template></ui:Column><ui:Column width="200px" sortProperty="target" filterProperty="target"><ui:multiLabels><Text text="Context" /><Text text="Target" /></ui:multiLabels><ui:template><Text text="{target}" /></ui:template></ui:Column><ui:Column width="180px" ><ui:multiLabels><Text text="Context" /><Text text="Metadata" /></ui:multiLabels><ui:template><Button text="Show Metadata" type="Transparent" press="onShowKeyMetricsMetadata" /></ui:template></ui:Column><ui:Column width="60px" sortProperty="hits" filterProperty="hits" headerSpan="11,1"><ui:multiLabels><Text text="Read-Through" /><Text text="Hits" /></ui:multiLabels><ui:template><Text text="{path: \'hits\', type: \'sap.ui.model.type.Integer\'}" /></ui:template></ui:Column><ui:Column width="60px" sortProperty="misses" filterProperty="misses"><ui:multiLabels><Text text="Read-Through Operations" /><Text text="Misses" /></ui:multiLabels><ui:template><Text text="{path: \'misses\', type: \'sap.ui.model.type.Integer\'}" /></ui:template></ui:Column><ui:Column width="60px" sortProperty="total" filterProperty="total"><ui:multiLabels><Text text="Read-Through Operations" /><Text text="Total" /></ui:multiLabels><ui:template><Text text="{path: \'totalRequests\', type: \'sap.ui.model.type.Integer\'}" /></ui:template></ui:Column><ui:Column width="100px" sortProperty="hitRatio" filterProperty="hitRatio" headerSpan="2,1"><ui:multiLabels><Text text="Read-Through Performance" /><Text text="Hit Ratio %" /></ui:multiLabels><ui:template><Text text="{path: \'hitRatio\', type: \'sap.ui.model.type.Float\', formatOptions: {style: \'short\', decimals: 2}}" /></ui:template></ui:Column><ui:Column width="120px" sortProperty="cacheEfficiency" filterProperty="cacheEfficiency"><ui:multiLabels><Text text="Read-Through Performance" /><Text text="Cache Efficiency" /></ui:multiLabels><ui:template><Text text="{path: \'cacheEfficiency\', type: \'sap.ui.model.type.Float\', formatOptions: {style: \'short\', decimals: 2}}" /></ui:template></ui:Column><ui:Column width="120px" sortProperty="avgHitLatency" filterProperty="avgHitLatency" headerSpan="5,1"><ui:multiLabels><Text text="Read-Through Hit Latencies" /><Text text="Avg Hit Latency (ms)" /></ui:multiLabels><ui:template><Text text="{path: \'avgHitLatency\', type: \'sap.ui.model.type.Float\', formatOptions: {style: \'short\', decimals: 2}}" /></ui:template></ui:Column><ui:Column width="120px" sortProperty="minHitLatency" filterProperty="minHitLatency"><ui:multiLabels><Text text="Read-Through Hit Latencies" /><Text text="Min Hit Latency (ms)" /></ui:multiLabels><ui:template><Text text="{path: \'minHitLatency\', type: \'sap.ui.model.type.Float\', formatOptions: {style: \'short\', decimals: 2}}" /></ui:template></ui:Column><ui:Column width="120px" sortProperty="maxHitLatency" filterProperty="maxHitLatency"><ui:multiLabels><Text text="Read-Through Hit Latencies" /><Text text="Max Hit Latency (ms)" /></ui:multiLabels><ui:template><Text text="{path: \'maxHitLatency\', type: \'sap.ui.model.type.Float\', formatOptions: {style: \'short\', decimals: 2}}" /></ui:template></ui:Column><ui:Column width="120px" sortProperty="avgMissLatency" filterProperty="avgMissLatency" headerSpan="5,1"><ui:multiLabels><Text text="Read-Through Miss Latencies" /><Text text="Avg Miss Latency (ms)" /></ui:multiLabels><ui:template><Text text="{path: \'avgMissLatency\', type: \'sap.ui.model.type.Float\', formatOptions: {style: \'short\', decimals: 2}}" /></ui:template></ui:Column><ui:Column width="120px" sortProperty="minMissLatency" filterProperty="minMissLatency"><ui:multiLabels><Text text="Read-Through Miss Latencies" /><Text text="Min Miss Latency (ms)" /></ui:multiLabels><ui:template><Text text="{path: \'minMissLatency\', type: \'sap.ui.model.type.Float\', formatOptions: {style: \'short\', decimals: 2}}" /></ui:template></ui:Column><ui:Column width="120px" sortProperty="maxMissLatency" filterProperty="maxMissLatency"><ui:multiLabels><Text text="Read-Through Miss Latencies" /><Text text="Max Miss Latency (ms)" /></ui:multiLabels><ui:template><Text text="{path: \'maxMissLatency\', type: \'sap.ui.model.type.Float\', formatOptions: {style: \'short\', decimals: 2}}" /></ui:template></ui:Column><ui:Column width="70px" sortProperty="nativeHits" filterProperty="nativeHits" headerSpan="4,1"><ui:multiLabels><Text text="Native Function Operations" /><Text text="Hits" /></ui:multiLabels><ui:template><Text text="{nativeHits}" /></ui:template></ui:Column><ui:Column width="70px" sortProperty="nativeMisses" filterProperty="nativeMisses"><ui:multiLabels><Text text="Native Function Operations" /><Text text="Misses" /></ui:multiLabels><ui:template><Text text="{nativeMisses}" /></ui:template></ui:Column><ui:Column width="70px" sortProperty="nativeSets" filterProperty="nativeSets"><ui:multiLabels><Text text="Native Function Operations" /><Text text="Sets" /></ui:multiLabels><ui:template><Text text="{nativeSets}" /></ui:template></ui:Column><ui:Column width="70px" sortProperty="nativeDeletes" filterProperty="nativeDeletes"><ui:multiLabels><Text text="Native Function Operations" /><Text text="Deletes" /></ui:multiLabels><ui:template><Text text="{nativeDeletes}" /></ui:template></ui:Column><ui:Column width="100px" sortProperty="tenant" filterProperty="tenant" headerSpan="5,1"><ui:multiLabels><Text text="Additional Information" /><Text text="Tenant" /></ui:multiLabels><ui:template><Text text="{tenant}" /></ui:template></ui:Column><ui:Column width="100px" sortProperty="user" filterProperty="user"><ui:multiLabels><Text text="Additional Information" /><Text text="User" /></ui:multiLabels><ui:template><Text text="{user}" /></ui:template></ui:Column><ui:Column width="80px" sortProperty="locale" filterProperty="locale"><ui:multiLabels><Text text="Additional Information" /><Text text="Locale" /></ui:multiLabels><ui:template><Text text="{locale}" /></ui:template></ui:Column><ui:Column width="150px" sortProperty="lastAccess" filterProperty="lastAccess" ><ui:multiLabels><Text text="Additional Information" /><Text text="Last Access" /></ui:multiLabels><ui:template><Text text="{ path: \'lastAccess\'}" /></ui:template></ui:Column><ui:Column width="150px" sortProperty="timestamp" filterProperty="timestamp"><ui:multiLabels><Text text="Additional Information" /><Text text="First Access" /></ui:multiLabels><ui:template><Text text="{ path: \'timestamp\'}" /></ui:template></ui:Column></ui:columns></ui:Table></IconTabFilter><IconTabSeparator ></IconTabSeparator><IconTabFilter text="Browse Cache Entries" key="entries" icon="sap-icon://warning" iconColor="Critical"><l:VerticalLayout width="100%"><f:Card class="sapUiTinyMargin"><f:header><card:Header title="Cache Entries" subtitle="Browse all cache entries (use with caution)" /></f:header><f:content><l:VerticalLayout class="sapUiTinyMargin"><MessageStrip text="Warning: Loading all cache entries may impact performance for large caches. Use the button below to load entries on demand." type="Warning" showIcon="true" class="sapUiTinyMarginBottom" /><Button text="Load Cache Entries" icon="sap-icon://download" press="onLoadCacheEntries" type="Emphasized" class="sapUiTinyMarginBottom" /><Table id="cacheEntriesTable" items="{ui>/cacheEntries}" busyIndicatorDelay="0" busy="{ui>/loadingEntries}" visible="{ui>/showEntriesTable}"><columns><Column width="200px"><Text text="Key" /></Column><Column width="300px"><Text text="Value" /></Column><Column width="100px"><Text text="Tags" /></Column><Column width="150px"><Text text="Timestamp" /></Column></columns><items><ColumnListItem><cells><Text text="{ui>entryKey}" tooltip="{ui>entryKey}" /><Text text="{ui>value}" tooltip="{ui>value}" /><Text text="{ui>tags}" /><Text text="{ path: \'ui>timestamp\'}" /></cells></ColumnListItem></items></Table></l:VerticalLayout></f:content></f:Card></l:VerticalLayout></IconTabFilter></items></IconTabBar></f:content></f:DynamicPage></mvc:View> ',
|
|
4360
|
-
"cds/plugin/caching/dashboard/view/Main.view.xml":'<mvc:View controllerName="cds.plugin.caching.dashboard.controller.Main" displayBlock="true"\n\txmlns="sap.m"\n\txmlns:mvc="sap.ui.core.mvc"\n\txmlns:core="sap.ui.core"\n\txmlns:l="sap.ui.layout"\n\txmlns:f="sap.f"\n\txmlns:fb="sap.ui.comp.filterbar"\n\txmlns:card="sap.f.cards"\n\txmlns:cssgrid="sap.ui.layout.cssgrid"\n\txmlns:viz="sap.viz.ui5.controls"\n\txmlns:viz.feeds="sap.viz.ui5.controls.common.feeds"\n\txmlns:viz.data="sap.viz.ui5.data" core:require="{\n\t\tformatter: \'cds/plugin/caching/dashboard/model/formatter\'\n\t}"><f:DynamicPage title="
|
|
4361
|
-
"cds/plugin/caching/dashboard/view/SingleMetric.view.xml":'<mvc:View controllerName="cds.plugin.caching.dashboard.controller.SingleMetric"\n\txmlns="sap.m"\n\txmlns:mvc="sap.ui.core.mvc"\n\txmlns:core="sap.ui.core"\n\txmlns:l="sap.ui.layout"\n\txmlns:f="sap.f"\n\txmlns:fb="sap.ui.comp.filterbar"\n\txmlns:card="sap.f.cards"\n\txmlns:cssgrid="sap.ui.layout.cssgrid"\n\txmlns:viz="sap.viz.ui5.controls"\n\txmlns:viz.feeds="sap.viz.ui5.controls.common.feeds"\n\txmlns:viz.data="sap.viz.ui5.data"\n\txmlns:form="sap.ui.layout.form" core:require="{\n\t\tformatter: \'cds/plugin/caching/dashboard/model/formatter\'\n\t}"><f:DynamicPage title="Metric Details" showFooter="false"><f:title><f:DynamicPageTitle><f:heading><Title text="Metric: {ui>/metricId}" /></f:heading><f:actions><Button icon="sap-icon://refresh" text="Refresh" type="Transparent" press="onRefresh" /></f:actions><f:navigationActions><OverflowToolbarButton type="Transparent" icon="sap-icon://full-screen" press="handleFullScreen" tooltip="Enter Full Screen Mode" visible="{= ${app>/layout} !== \'EndColumnFullScreen\' }"/><OverflowToolbarButton type="Transparent" icon="sap-icon://exit-full-screen" press="handleExitFullScreen" tooltip="Exit Full Screen Mode" visible="{= ${app>/layout} === \'EndColumnFullScreen\' }"/><OverflowToolbarButton type="Transparent" icon="sap-icon://decline" press="handleClose" tooltip="Close end column"/></f:navigationActions></f:DynamicPageTitle></f:title><f:content><cssgrid:CSSGrid id="metricMainGrid" width="100%"><cssgrid:customLayout><cssgrid:ResponsiveColumnLayout /></cssgrid:customLayout><VBox renderType="Bare"><layoutData><cssgrid:ResponsiveColumnItemLayoutData columns="24"/></layoutData><Title text="Read-Through Performance" titleStyle="H5" class="sapUiMediumMarginTop sapUiTinyMarginBottom" /><f:GridContainer id="metricCacheThroughGrid" columnsChange=".onColumnsChange"><GenericTile class="sapUiTinyMarginBegin sapUiTinyMarginTop tileLayout" header="Hit Ratio" subheader="Cache Hit Rate"><TileContent unit="%"><NumericContent valueColor="{formatter: \'formatter.formatHitRatioWithColor\', path: \'ui>/hitRatio\'}" value="{ path: \'ui>/hitRatio\', type: \'sap.ui.model.type.Float\', formatOptions: {style: \'short\', decimals: 2}}" /></TileContent><layoutData><f:GridContainerItemLayoutData columns="2" minRows="2"/></layoutData></GenericTile><GenericTile class="sapUiTinyMarginBegin sapUiTinyMarginTop tileLayout" header="Cache Efficiency" subheader="Performance Factor"><TileContent unit="x"><NumericContent valueColor="{formatter: \'formatter.formatCacheEfficiencyWithColor\', path: \'ui>/cacheEfficiency\'}" value="{path: \'ui>/cacheEfficiency\', type: \'sap.ui.model.type.Float\', formatOptions: {style: \'short\', decimals: 2}}" /></TileContent><layoutData><f:GridContainerItemLayoutData columns="2" minRows="2"/></layoutData></GenericTile><GenericTile class="sapUiTinyMarginBegin sapUiTinyMarginTop tileLayout" header="Throughput" subheader="Requests per Second"><TileContent unit="req/s"><NumericContent value="{ path: \'ui>/throughput\', type: \'sap.ui.model.type.Float\', formatOptions: {style: \'short\', decimals: 2}}" withMargin="false" /></TileContent><layoutData><f:GridContainerItemLayoutData columns="2" minRows="2"/></layoutData></GenericTile><GenericTile class="sapUiTinyMarginBegin sapUiTinyMarginTop tileLayout" header="Error Rate" subheader="Cache Errors"><TileContent unit="%"><NumericContent valueColor="{formatter: \'formatter.formatErrorRateWithColor\', path: \'ui>/errorRate\'}" value="{ path: \'ui>/errorRate\', formatter: \'formatter.formatPercentageValue\' }" /></TileContent><layoutData><f:GridContainerItemLayoutData columns="2" minRows="2"/></layoutData></GenericTile><GenericTile class="sapUiTinyMarginBegin sapUiTinyMarginTop tileLayout" header="Total Requests" subheader="Cache Operations"><TileContent unit="req"><NumericContent value="{= ${ui>/hits} + ${ui>/misses}}" withMargin="false" /></TileContent><layoutData><f:GridContainerItemLayoutData columns="2" minRows="2"/></layoutData></GenericTile><GenericTile class="sapUiTinyMarginBegin sapUiTinyMarginTop tileLayout" header="Cache Hits" subheader="Successful Retrievals"><TileContent unit="hits"><NumericContent value="{ui>/hits}" withMargin="false" /></TileContent><layoutData><f:GridContainerItemLayoutData columns="2" minRows="2"/></layoutData></GenericTile><GenericTile class="sapUiTinyMarginBegin sapUiTinyMarginTop tileLayout" header="Cache Misses" subheader="Failed Retrievals"><TileContent unit="misses"><NumericContent value="{ui>/misses}" withMargin="false" /></TileContent><layoutData><f:GridContainerItemLayoutData columns="2" minRows="2"/></layoutData></GenericTile><GenericTile class="sapUiTinyMarginBegin sapUiTinyMarginTop tileLayout" header="Cache Errors" subheader="Error Count"><TileContent unit="errors"><NumericContent value="{ui>/errors}" withMargin="false" /></TileContent><layoutData><f:GridContainerItemLayoutData columns="2" minRows="2"/></layoutData></GenericTile><GenericTile class="sapUiTinyMarginBegin sapUiTinyMarginTop tileLayout" header="Hit Latency" subheader="Cache Hit Response"><TileContent unit="ms"><NumericContent valueColor="{formatter: \'formatter.formatLatencyWithColor\', path: \'ui>/avgHitLatency\'}" value="{ path: \'ui>/avgHitLatency\', type: \'sap.ui.model.type.Float\', formatOptions: {style: \'short\', decimals: 2}}" /></TileContent><layoutData><f:GridContainerItemLayoutData columns="2" minRows="2"/></layoutData></GenericTile><GenericTile class="sapUiTinyMarginBegin sapUiTinyMarginTop tileLayout" header="Miss Latency" subheader="Cache Miss Response"><TileContent unit="ms"><NumericContent valueColor="{formatter: \'formatter.formatLatencyWithColor\', path: \'ui>/avgMissLatency\'}" value="{ path: \'ui>/avgMissLatency\', type: \'sap.ui.model.type.Float\', formatOptions: {style: \'short\', decimals: 2}}" /></TileContent><layoutData><f:GridContainerItemLayoutData columns="2" minRows="2"/></layoutData></GenericTile><f:Card class="sapUiTinyMargin"><f:header><card:Header title="Read-Through Operations" subtitle="Hit/Miss/Error Distribution" /></f:header><f:content><l:VerticalLayout width="100%"><viz:Popover id="metricCacheThroughPopOver"></viz:Popover><viz:VizFrame id="metricCacheThroughChart" vizType="pie" width="100%" height="300px"><viz:dataset><viz.data:FlattenedDataset data="{ui>/cacheThroughData}"><viz.data:dimensions><viz.data:DimensionDefinition name="Operation" value="{operation}" /></viz.data:dimensions><viz.data:measures><viz.data:MeasureDefinition name="Count" value="{count}" /></viz.data:measures></viz.data:FlattenedDataset></viz:dataset><viz:feeds><viz.feeds:FeedItem id="metricCacheThroughValueAxisFeed" uid="size" type="Measure" values="Count" /><viz.feeds:FeedItem id="metricCacheThroughCategoryAxisFeed" uid="color" type="Dimension" values="Operation" /></viz:feeds></viz:VizFrame></l:VerticalLayout></f:content><f:layoutData><f:GridContainerItemLayoutData columns="4" minRows="4"/></f:layoutData></f:Card><f:Card class="sapUiTinyMargin"><f:header><card:Header title="Latency Comparison" subtitle="Read-Through Latency Metrics" /></f:header><f:content><l:VerticalLayout width="100%"><viz:Popover id="metricLatencyPopOver"></viz:Popover><viz:VizFrame id="metricLatencyChart" vizType="bar" width="100%" height="300px"><viz:dataset><viz.data:FlattenedDataset data="{ui>/latencyData}"><viz.data:dimensions><viz.data:DimensionDefinition name="Operation" value="{operation}" /></viz.data:dimensions><viz.data:measures><viz.data:MeasureDefinition name="Latency" value="{latency}" /></viz.data:measures></viz.data:FlattenedDataset></viz:dataset><viz:feeds><viz.feeds:FeedItem id="metricValueAxisFeed" uid="valueAxis" type="Measure" values="Latency" /><viz.feeds:FeedItem id="metricCategoryAxisFeed" uid="categoryAxis" type="Dimension" values="Operation" /></viz:feeds></viz:VizFrame></l:VerticalLayout></f:content><f:layoutData><f:GridContainerItemLayoutData columns="12" minRows="4"/></f:layoutData></f:Card></f:GridContainer></VBox><VBox renderType="Bare"><layoutData><cssgrid:ResponsiveColumnItemLayoutData columns="24"/></layoutData><Title text="Native Function Performance" titleStyle="H5" class="sapUiMediumMarginTop sapUiTinyMarginBottom" /><f:GridContainer id="metricNativeGrid" columnsChange=".onColumnsChange"><GenericTile class="sapUiTinyMarginBegin sapUiTinyMarginTop tileLayout" header="Native Throughput" subheader="Operations per Second"><TileContent unit="ops/s"><NumericContent value="{ path: \'ui>/nativeThroughput\', formatter: \'formatter.formatNumberValue\' }" withMargin="false" /></TileContent><layoutData><f:GridContainerItemLayoutData columns="2" minRows="2"/></layoutData></GenericTile><GenericTile class="sapUiTinyMarginBegin sapUiTinyMarginTop tileLayout" header="Native Error Rate" subheader="Native Function Errors"><TileContent unit="%"><NumericContent valueColor="{formatter: \'formatter.formatErrorRateWithColor\', path: \'ui>/nativeErrorRate\'}" value="{ path: \'ui>/nativeErrorRate\', formatter: \'formatter.formatPercentageValue\' }" /></TileContent><layoutData><f:GridContainerItemLayoutData columns="2" minRows="2"/></layoutData></GenericTile><GenericTile class="sapUiTinyMarginBegin sapUiTinyMarginTop tileLayout" header="Native Sets" subheader="Write Operations"><TileContent unit="sets"><NumericContent value="{ui>/nativeSets}" withMargin="false" /></TileContent><layoutData><f:GridContainerItemLayoutData columns="2" minRows="2"/></layoutData></GenericTile><GenericTile class="sapUiTinyMarginBegin sapUiTinyMarginTop tileLayout" header="Native Gets" subheader="Read Operations"><TileContent unit="gets"><NumericContent value="{ui>/nativeGets}" withMargin="false" /></TileContent><layoutData><f:GridContainerItemLayoutData columns="2" minRows="2"/></layoutData></GenericTile><GenericTile class="sapUiTinyMarginBegin sapUiTinyMarginTop tileLayout" header="Native Deletes" subheader="Delete Operations"><TileContent unit="deletes"><NumericContent value="{ui>/nativeDeletes}" withMargin="false" /></TileContent><layoutData><f:GridContainerItemLayoutData columns="2" minRows="2"/></layoutData></GenericTile><GenericTile class="sapUiTinyMarginBegin sapUiTinyMarginTop tileLayout" header="Native Clears" subheader="Clear Operations"><TileContent unit="clears"><NumericContent value="{ui>/nativeClears}" withMargin="false" /></TileContent><layoutData><f:GridContainerItemLayoutData columns="2" minRows="2"/></layoutData></GenericTile><GenericTile class="sapUiTinyMarginBegin sapUiTinyMarginTop tileLayout" header="Delete By Tags" subheader="Tag-based Deletes"><TileContent unit="deletes"><NumericContent value="{ui>/nativeDeleteByTags}" withMargin="false" /></TileContent><layoutData><f:GridContainerItemLayoutData columns="2" minRows="2"/></layoutData></GenericTile><GenericTile class="sapUiTinyMarginBegin sapUiTinyMarginTop tileLayout" header="Native Errors" subheader="Error Count"><TileContent unit="errors"><NumericContent value="{ui>/nativeErrors}" withMargin="false" /></TileContent><layoutData><f:GridContainerItemLayoutData columns="2" minRows="2"/></layoutData></GenericTile><GenericTile class="sapUiTinyMarginBegin sapUiTinyMarginTop tileLayout" header="Total Native Ops" subheader="All Operations"><TileContent unit="ops"><NumericContent value="{ui>/totalNativeOperations}" withMargin="false" /></TileContent><layoutData><f:GridContainerItemLayoutData columns="2" minRows="2"/></layoutData></GenericTile><f:Card class="sapUiTinyMargin"><f:header><card:Header title="Native Function Operations" subtitle="Hit/Miss/Error Distribution" /></f:header><f:content><l:VerticalLayout width="100%"><viz:Popover id="metricNativePopOver"></viz:Popover><viz:VizFrame id="metricNativeChart" vizType="pie" width="100%" height="300px"><viz:dataset><viz.data:FlattenedDataset data="{ui>/nativeData}"><viz.data:dimensions><viz.data:DimensionDefinition name="Operation" value="{operation}" /></viz.data:dimensions><viz.data:measures><viz.data:MeasureDefinition name="Count" value="{count}" /></viz.data:measures></viz.data:FlattenedDataset></viz:dataset><viz:feeds><viz.feeds:FeedItem id="metricNativeValueAxisFeed" uid="size" type="Measure" values="Count" /><viz.feeds:FeedItem id="metricNativeCategoryAxisFeed" uid="color" type="Dimension" values="Operation" /></viz:feeds></viz:VizFrame></l:VerticalLayout></f:content><f:layoutData><f:GridContainerItemLayoutData columns="4" minRows="4"/></f:layoutData></f:Card></f:GridContainer></VBox></cssgrid:CSSGrid></f:content></f:DynamicPage></mvc:View> ',
|
|
4359
|
+
"cds/plugin/caching/dashboard/view/Cache.view.xml":'<mvc:View controllerName="cds.plugin.caching.dashboard.controller.Cache"\n\txmlns="sap.m"\n\txmlns:mvc="sap.ui.core.mvc"\n\txmlns:f="sap.f"\n\txmlns:card="sap.f.cards"\n\txmlns:core="sap.ui.core"\n\txmlns:l="sap.ui.layout"\n\txmlns:ui="sap.ui.table"\n\txmlns:form="sap.ui.layout.form"\n\txmlns:semantic="sap.m.semantic"\n\txmlns:unified="sap.ui.unified"\n\txmlns:app="http://schemas.sap.com/sapui5/extension/sap.ui.core.CustomData/1" app:routePattern="statistics" core:require="{\n\t\tformatter: \'cds/plugin/caching/dashboard/model/formatter\'\n\t}"><f:DynamicPage title="{= ${i18n>cachePagePrefix} + \' \' + ${app>/selectedCache} }" stickySubheaderProvider="cacheStickySubheaderProvider"><f:title><f:DynamicPageTitle><f:heading><Title text="{= ${i18n>cachePagePrefix} + \' \' + ${app>/selectedCache} }"/></f:heading><f:actions><Label text="{i18n>enableMetricsLabel}" class=""/><Switch id="cacheEnableMetrics" state="{ path: \'metricsEnabled\', mode: \'sap.ui.model.BindingMode.OneWay\'}" change="onEnableMetricsChange" /><Label text="{i18n>enableKeyMetricsLabel}" class=""/><Switch id="cacheEnableKeyMetrics" state="{ path: \'keyMetricsEnabled\', mode: \'sap.ui.model.BindingMode.OneWay\' }" change="onEnableKeyMetricsChange" /><ToolbarSeparator /><Button text="{i18n>actionClearCache}" type="Transparent" press="onClearCache" /></f:actions><f:navigationActions><OverflowToolbarButton type="Transparent" icon="sap-icon://full-screen" press="handleFullScreen" tooltip="{i18n>ttFullScreenEnter}" visible="{= ${app>/layout} === \'TwoColumnsMidExpanded\' }"/><OverflowToolbarButton type="Transparent" icon="sap-icon://exit-full-screen" press="handleExitFullScreen" tooltip="{i18n>ttFullScreenExit}" visible="{= ${app>/layout} === \'MidColumnFullScreen\' }"/><OverflowToolbarButton type="Transparent" icon="sap-icon://decline" press="handleClose" tooltip="{i18n>ttCloseMidColumn}"/></f:navigationActions></f:DynamicPageTitle></f:title><f:header><f:DynamicPageHeader><f:content></f:content></f:DynamicPageHeader></f:header><f:content><IconTabBar id="cacheStickySubheaderProvider" stretchContentHeight="true" expandable="false" headerMode="Inline" select=".onSelectionChange" selectedKey="{ui>/selectedTab}"><items><IconTabFilter text="{i18n>tabOverview}" key="main"><f:GridContainer snapToRow="true" allowDenseFill="true"><f:Card><f:header><card:Header title="{i18n>configCardTitle}" subtitle="{i18n>configCardSubtitle}" /></f:header><f:content><VBox width="100%"><form:SimpleForm width="100%" editable="true" labelSpanL="2" labelSpanM="2" labelSpanS="2" layout="ResponsiveGridLayout"><form:content><TextArea rows="10" editable="false" width="100%" value="{ path: \'config\', formatter: \'formatter.formatJSON\' }" /></form:content></form:SimpleForm></VBox></f:content><f:layoutData><f:GridContainerItemLayoutData columns="6" minRows="3"/></f:layoutData></f:Card><f:Card><f:header><card:Header title="{i18n>createEntryTitle}" subtitle="{i18n>createEntrySubtitle}" /></f:header><f:content><VBox width="100%"><form:SimpleForm width="100%" editable="true" labelSpanL="2" labelSpanM="2" labelSpanS="2" layout="ResponsiveGridLayout"><form:content><Label text="{i18n>labelKey}" /><Input id="createKeyInput" value="{ui>/createKey}" width="100%" /><Label text="{i18n>labelValue}"/><TextArea id="createValueInput" rows="10" value="{ui>/createValue}" width="100%" /><Label text="{i18n>labelTtlSeconds}"/><Input id="createTtlInput" type="Number" value="{ui>/createTtl}" width="100%" /></form:content></form:SimpleForm><Button text="{i18n>btnSetEntry}" type="Emphasized" press="onSetKey" class="sapUiSmallMarginEnd sapUiSmallMarginBottom"><layoutData><FlexItemData alignSelf="End" /></layoutData></Button></VBox></f:content><f:layoutData><f:GridContainerItemLayoutData columns="6" minRows="3"/></f:layoutData></f:Card><f:Card><f:header><card:Header title="{i18n>getEntryTitle}" subtitle="{i18n>getEntrySubtitle}" /></f:header><f:content><VBox width="100%"><form:SimpleForm width="100%" editable="true" labelSpanL="2" labelSpanM="2" labelSpanS="2" layout="ResponsiveGridLayout"><form:content><Label text="{i18n>labelKey}"/><Input id="getKeyInput" value="{ui>/getKey}" width="100%" /><Label text="{i18n>labelValue}"/><TextArea id="getValueOutput" rows="10" editable="false" width="100%" value="{ui>/getValue}" /></form:content></form:SimpleForm><Button text="{i18n>btnGetEntry}" type="Emphasized" press="onGetKey" class="sapUiSmallMarginEnd sapUiSmallMarginBottom"><layoutData><FlexItemData alignSelf="End" /></layoutData></Button></VBox></f:content><f:layoutData><f:GridContainerItemLayoutData columns="6" minRows="3"/></f:layoutData></f:Card><f:Card><f:header><card:Header title="{i18n>deleteEntryTitle}" subtitle="{i18n>deleteEntrySubtitle}" /></f:header><f:content><VBox width="100%"><form:SimpleForm width="100%" editable="true" labelSpanL="2" labelSpanM="2" labelSpanS="2" layout="ResponsiveGridLayout"><form:content><Label text="{i18n>labelKey}" class=""/><Input id="deleteKeyInput" value="{ui>/deleteKey}" width="100%" /></form:content></form:SimpleForm><Button text="{i18n>btnDeleteEntry}" type="Emphasized" press="onDeleteKey" class="sapUiSmallMarginEnd sapUiSmallMarginBottom"><layoutData><FlexItemData alignSelf="End" /></layoutData></Button></VBox></f:content><f:layoutData><f:GridContainerItemLayoutData columns="6" minRows="3"/></f:layoutData></f:Card></f:GridContainer></IconTabFilter><IconTabSeparator /><IconTabFilter text="{i18n>tabMetrics}" key="metrics"><Toolbar class="sapUiTinyMarginBottom" design="Transparent" style="Clear"><Title text="{i18n>aggregatedMetricsByHour}" /><ToolbarSpacer /><Button icon="sap-icon://refresh" text="{i18n>refreshButton}" press="onRefreshMetricsData" type="Transparent" class="sapUiTinyMarginEnd" /><Button type="Transparent" text="{i18n>btnClearMetrics}" press="onClearMetrics" class="sapUiTinyMarginEnd" /></Toolbar><ui:Table id="metricsTable" rows="{\n\t\t\t\t\t\t\t\t \tpath: \'/Metrics\',\n\t\t\t\t\t\t\t\t\tsuspended: true,\n\t\t\t\t\t\t\t\t\tsorter: {\n\t\t\t\t\t\t\t\t\t\tpath: \'timestamp\',\n\t\t\t\t\t\t\t\t\t\tdescending: true\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t }" rowMode="Auto" selectionMode="Single" selectionBehavior="RowOnly" rowSelectionChange=".onMetricsRowSelect" enableColumnReordering="true"><ui:columns><ui:Column width="150px" sortProperty="timestamp" filterProperty="timestamp"><ui:label><Text text="{i18n>colTimestamp}" /></ui:label><ui:template><Text text="{ path: \'timestamp\'}" /></ui:template></ui:Column><ui:Column width="80px" sortProperty="hits" filterProperty="hits" headerSpan="15,1"><ui:multiLabels><Text text="{i18n>groupReadThrough}" /><Text text="{i18n>colHits}" /></ui:multiLabels><ui:template><Text text="{path: \'hits\', type: \'sap.ui.model.type.Integer\'}" /></ui:template></ui:Column><ui:Column width="80px" sortProperty="misses" filterProperty="misses"><ui:multiLabels><Text text="{i18n>groupReadThrough}" /><Text text="{i18n>colMisses}" /></ui:multiLabels><ui:template><Text text="{path: \'misses\', type: \'sap.ui.model.type.Integer\'}" /></ui:template></ui:Column><ui:Column width="80px" sortProperty="errors" filterProperty="errors"><ui:multiLabels><Text text="{i18n>groupReadThrough}" /><Text text="{i18n>colErrors}" /></ui:multiLabels><ui:template><Text text="{path: \'errors\', type: \'sap.ui.model.type.Integer\'}" /></ui:template></ui:Column><ui:Column width="80px" sortProperty="totalRequests" filterProperty="totalRequests"><ui:multiLabels><Text text="{i18n>groupReadThrough}" /><Text text="{i18n>colTotalRequests}" /></ui:multiLabels><ui:template><Text text="{path: \'totalRequests\', type: \'sap.ui.model.type.Integer\'}" /></ui:template></ui:Column><ui:Column width="100px" sortProperty="hitRatio" filterProperty="hitRatio"><ui:multiLabels><Text text="{i18n>groupReadThroughPerformance}" /><Text text="{i18n>colHitRatioPct}" /></ui:multiLabels><ui:template><Text text="{path: \'hitRatio\', type: \'sap.ui.model.type.Float\', formatOptions: {style: \'short\', decimals: 2}}" /></ui:template></ui:Column><ui:Column width="100px" sortProperty="throughput" filterProperty="throughput"><ui:multiLabels><Text text="{i18n>groupReadThroughPerformance}" /><Text text="{i18n>throughput}" /></ui:multiLabels><ui:template><Text text="{path: \'throughput\', type: \'sap.ui.model.type.Float\', formatOptions: {style: \'short\', decimals: 2}}" /></ui:template></ui:Column><ui:Column width="100px" sortProperty="errorRate" filterProperty="errorRate"><ui:multiLabels><Text text="{i18n>groupReadThroughPerformance}" /><Text text="{i18n>colErrorRatePct}" /></ui:multiLabels><ui:template><Text text="{path: \'errorRate\', type: \'sap.ui.model.type.Float\', formatOptions: {style: \'short\', decimals: 2}}" /></ui:template></ui:Column><ui:Column width="120px" sortProperty="cacheEfficiency" filterProperty="cacheEfficiency"><ui:multiLabels><Text text="{i18n>groupReadThroughPerformance}" /><Text text="{i18n>colCacheEfficiency}" /></ui:multiLabels><ui:template><Text text="{path: \'cacheEfficiency\', type: \'sap.ui.model.type.Float\', formatOptions: {style: \'short\', decimals: 2}}" /></ui:template></ui:Column><ui:Column width="120px" sortProperty="avgReadThroughLatency" filterProperty="avgReadThroughLatency" headerSpan="8,1"><ui:multiLabels><Text text="{i18n>groupReadThroughLatencies}" /><Text text="{i18n>colAvgLatencyMs}" /></ui:multiLabels><ui:template><Text text="{path: \'avgReadThroughLatency\', type: \'sap.ui.model.type.Float\', formatOptions: {style: \'short\', decimals: 2}}ms" /></ui:template></ui:Column><ui:Column width="120px" sortProperty="avgHitLatency" filterProperty="avgHitLatency" headerSpan="8,1"><ui:multiLabels><Text text="{i18n>groupReadThroughHitLatencies}" /><Text text="{i18n>colHitAvgMs}" /></ui:multiLabels><ui:template><Text text="{path: \'avgHitLatency\', type: \'sap.ui.model.type.Float\', formatOptions: {style: \'short\', decimals: 2}}ms" /></ui:template></ui:Column><ui:Column width="120px" sortProperty="minHitLatency" filterProperty="minHitLatency"><ui:multiLabels><Text text="{i18n>groupReadThroughHitLatencies}" /><Text text="{i18n>colHitMinMs}" /></ui:multiLabels><ui:template><Text text="{path: \'minHitLatency\', type: \'sap.ui.model.type.Float\', formatOptions: {style: \'short\', decimals: 2}}ms" /></ui:template></ui:Column><ui:Column width="120px" sortProperty="maxHitLatency" filterProperty="maxHitLatency"><ui:multiLabels><Text text="{i18n>groupReadThroughHitLatencies}" /><Text text="{i18n>colHitMaxMs}" /></ui:multiLabels><ui:template><Text text="{path: \'maxHitLatency\', type: \'sap.ui.model.type.Float\', formatOptions: {style: \'short\', decimals: 2}}ms" /></ui:template></ui:Column><ui:Column width="120px" sortProperty="avgMissLatency" filterProperty="avgMissLatency" headerSpan="5,1"><ui:multiLabels><Text text="{i18n>groupReadThroughMissLatencies}" /><Text text="{i18n>colMissAvgMs}" /></ui:multiLabels><ui:template><Text text="{path: \'avgMissLatency\', type: \'sap.ui.model.type.Float\', formatOptions: {style: \'short\', decimals: 2}}ms" /></ui:template></ui:Column><ui:Column width="120px" sortProperty="minMissLatency" filterProperty="minMissLatency"><ui:multiLabels><Text text="{i18n>groupReadThroughMissLatencies}" /><Text text="{i18n>colMissMinMs}" /></ui:multiLabels><ui:template><Text text="{path: \'minMissLatency\', type: \'sap.ui.model.type.Float\', formatOptions: {style: \'short\', decimals: 2}}ms" /></ui:template></ui:Column><ui:Column width="120px" sortProperty="maxMissLatency" filterProperty="maxMissLatency"><ui:multiLabels><Text text="{i18n>groupReadThroughMissLatencies}" /><Text text="{i18n>colMissMaxMs}" /></ui:multiLabels><ui:template><Text text="{path: \'maxMissLatency\', type: \'sap.ui.model.type.Float\', formatOptions: {style: \'short\', decimals: 2}}ms" /></ui:template></ui:Column><ui:Column width="80px" sortProperty="nativeSets" filterProperty="nativeSets" headerSpan="9,1"><ui:multiLabels><Text text="{i18n>groupNativeFunction}" /><Text text="{i18n>colSets}" /></ui:multiLabels><ui:template><Text text="{path: \'nativeSets\', type: \'sap.ui.model.type.Integer\'}" /></ui:template></ui:Column><ui:Column width="80px" sortProperty="nativeGets" filterProperty="nativeGets"><ui:multiLabels><Text text="{i18n>groupNativeFunctionOps}" /><Text text="{i18n>colGets}" /></ui:multiLabels><ui:template><Text text="{path: \'nativeGets\', type: \'sap.ui.model.type.Integer\'}" /></ui:template></ui:Column><ui:Column width="80px" sortProperty="nativeDeletes" filterProperty="nativeDeletes"><ui:multiLabels><Text text="{i18n>groupNativeFunctionOps}" /><Text text="{i18n>colDeletes}" /></ui:multiLabels><ui:template><Text text="{path: \'nativeDeletes\', type: \'sap.ui.model.type.Integer\'}" /></ui:template></ui:Column><ui:Column width="80px" sortProperty="nativeClears" filterProperty="nativeClears"><ui:multiLabels><Text text="{i18n>groupNativeFunctionOps}" /><Text text="{i18n>colClears}" /></ui:multiLabels><ui:template><Text text="{path: \'nativeClears\', type: \'sap.ui.model.type.Integer\'}" /></ui:template></ui:Column><ui:Column width="80px" sortProperty="nativeDeleteByTags" filterProperty="nativeDeleteByTags"><ui:multiLabels><Text text="{i18n>groupNativeFunctionOps}" /><Text text="{i18n>colDeleteByTags}" /></ui:multiLabels><ui:template><Text text="{path: \'nativeDeleteByTags\', type: \'sap.ui.model.type.Integer\'}" /></ui:template></ui:Column><ui:Column width="80px" sortProperty="nativeErrors" filterProperty="nativeErrors"><ui:multiLabels><Text text="{i18n>groupNativeFunctionOps}" /><Text text="{i18n>colErrors}" /></ui:multiLabels><ui:template><Text text="{path: \'nativeErrors\', type: \'sap.ui.model.type.Integer\'}" /></ui:template></ui:Column><ui:Column width="80px" sortProperty="totalNativeOperations" filterProperty="totalNativeOperations"><ui:multiLabels><Text text="{i18n>groupNativeFunctionOps}" /><Text text="{i18n>colTotal}" /></ui:multiLabels><ui:template><Text text="{path: \'totalNativeOperations\', type: \'sap.ui.model.type.Integer\'}" /></ui:template></ui:Column><ui:Column width="100px" sortProperty="nativeThroughput" filterProperty="nativeThroughput" headerSpan="2,1"><ui:multiLabels><Text text="{i18n>groupNativeFunctionPerformance}" /><Text text="{i18n>throughput}" /></ui:multiLabels><ui:template><Text text="{path: \'nativeThroughput\', type: \'sap.ui.model.type.Float\', formatOptions: {style: \'short\', decimals: 2}}" /></ui:template></ui:Column><ui:Column width="100px" sortProperty="nativeErrorRate" filterProperty="nativeErrorRate"><ui:multiLabels><Text text="{i18n>groupNativeFunctionPerformance}" /><Text text="{i18n>colErrorRatePct}" /></ui:multiLabels><ui:template><Text text="{path: \'nativeErrorRate\', type: \'sap.ui.model.type.Float\', formatOptions: {style: \'short\', decimals: 2}}" /></ui:template></ui:Column></ui:columns></ui:Table><f:Card class="sapUiTinyMarginBottom" visible="false"><f:header><card:Header title="{i18n>statisticsTrends}" subtitle="{i18n>statisticsTrendsSubtitle}" /></f:header><f:content><l:VerticalLayout class="sapUiTinyMargin"><l:HorizontalLayout class="sapUiTinyMarginBottom"><Select id="cacheChartMetric" selectedKey="{ui>/chartMetric}" change=".onChartMetricChange" class="sapUiTinyMarginEnd"><core:Item key="hitRatio" text="{i18n>hitRatio}" /><core:Item key="avgLatency" text="{i18n>avgLatency}" /><core:Item key="avgHitLatency" text="{i18n>selectChartHitLatency}" /><core:Item key="avgMissLatency" text="{i18n>selectChartMissLatency}" /><core:Item key="cacheEfficiency" text="{i18n>colCacheEfficiency}" /><core:Item key="throughput" text="{i18n>throughput}" /><core:Item key="errorRate" text="{i18n>errorRate}" /><core:Item key="memoryUsage" text="{i18n>memoryUsage}" /></Select></l:HorizontalLayout><Text text="{i18n>chartPlaceholder}" /></l:VerticalLayout></f:content></f:Card></IconTabFilter><IconTabFilter text="{i18n>keyMetricsToolbarTitle}" key="keymetrics"><Toolbar class="sapUiTinyMarginBottom" design="Transparent" style="Clear"><Title text="{i18n>keyMetricsToolbarTitle}" /><ToolbarSpacer /><Button icon="sap-icon://refresh" text="{i18n>refreshButton}" press="onRefreshKeyMetricsData" type="Transparent" class="sapUiTinyMarginEnd" /><Button type="Transparent" text="{i18n>btnClearMetrics}" press="onClearKeyMetrics" class="sapUiTinyMarginEnd" /></Toolbar><ui:Table id="keyMetricsTable" rows="{\n\t\t\t\t\t\t\t\t \tpath: \'/KeyMetrics\',\n\t\t\t\t\t\t\t\t\tsuspended: true\n\t\t\t\t\t\t\t\t }" \n\t\t\t\t\t\t\t\t rowMode="Auto" \n\t\t\t\t\t\t\t\t selectionMode="None" \n\t\t\t\t\t\t\t\t enableColumnReordering="true"><ui:columns><ui:Column minWidth="200px" sortProperty="keyName" filterProperty="keyName"><ui:multiLabels><Text text="{i18n>colKeyName}" /></ui:multiLabels><ui:template><VBox width="100%"><Text text="{ path: \'keyName\'}" tooltip="{keyName}" wrapping="false" wrappingType="Normal" /><Text visible="false" text="{query}" /><Text visible="false" text="{metadata}" /><Text visible="false" text="{subject}" /><Text visible="false" text="{cacheOptions}" /></VBox></ui:template></ui:Column><ui:Column width="100px" sortProperty="operation" filterProperty="operation" headerSpan="5,1"><ui:multiLabels><Text text="{i18n>ctxGroup}" /><Text text="{i18n>colOperation}" /></ui:multiLabels><ui:template><Text text="{operation}" /></ui:template></ui:Column><ui:Column width="150px" sortProperty="dataType" filterProperty="dataType" ><ui:multiLabels><Text text="{i18n>ctxGroup}" /><Text text="{i18n>colType}" /></ui:multiLabels><ui:template><Text text="{dataType}" /></ui:template></ui:Column><ui:Column width="150px" sortProperty="operationType" filterProperty="operationType"><ui:multiLabels><Text text="{i18n>ctxGroup}" /><Text text="{i18n>colOperationType}" /></ui:multiLabels><ui:template><Text text="{operationType}" /></ui:template></ui:Column><ui:Column width="200px" sortProperty="target" filterProperty="target"><ui:multiLabels><Text text="{i18n>ctxGroup}" /><Text text="{i18n>colTarget}" /></ui:multiLabels><ui:template><Text text="{target}" /></ui:template></ui:Column><ui:Column width="180px" ><ui:multiLabels><Text text="{i18n>ctxGroup}" /><Text text="{i18n>colMetadata}" /></ui:multiLabels><ui:template><Button text="{i18n>btnShowMetadata}" type="Transparent" press="onShowKeyMetricsMetadata" /></ui:template></ui:Column><ui:Column width="60px" sortProperty="hits" filterProperty="hits" headerSpan="11,1"><ui:multiLabels><Text text="{i18n>groupReadThrough}" /><Text text="{i18n>colHits}" /></ui:multiLabels><ui:template><Text text="{path: \'hits\', type: \'sap.ui.model.type.Integer\'}" /></ui:template></ui:Column><ui:Column width="60px" sortProperty="misses" filterProperty="misses"><ui:multiLabels><Text text="{i18n>groupReadThroughOps}" /><Text text="{i18n>colMisses}" /></ui:multiLabels><ui:template><Text text="{path: \'misses\', type: \'sap.ui.model.type.Integer\'}" /></ui:template></ui:Column><ui:Column width="60px" sortProperty="total" filterProperty="total"><ui:multiLabels><Text text="{i18n>groupReadThroughOps}" /><Text text="{i18n>colTotal}" /></ui:multiLabels><ui:template><Text text="{path: \'totalRequests\', type: \'sap.ui.model.type.Integer\'}" /></ui:template></ui:Column><ui:Column width="100px" sortProperty="hitRatio" filterProperty="hitRatio" headerSpan="2,1"><ui:multiLabels><Text text="{i18n>groupReadThroughPerformance}" /><Text text="{i18n>colHitRatioPct}" /></ui:multiLabels><ui:template><Text text="{path: \'hitRatio\', type: \'sap.ui.model.type.Float\', formatOptions: {style: \'short\', decimals: 2}}" /></ui:template></ui:Column><ui:Column width="120px" sortProperty="cacheEfficiency" filterProperty="cacheEfficiency"><ui:multiLabels><Text text="{i18n>groupReadThroughPerformance}" /><Text text="{i18n>colCacheEfficiency}" /></ui:multiLabels><ui:template><Text text="{path: \'cacheEfficiency\', type: \'sap.ui.model.type.Float\', formatOptions: {style: \'short\', decimals: 2}}" /></ui:template></ui:Column><ui:Column width="120px" sortProperty="avgHitLatency" filterProperty="avgHitLatency" headerSpan="5,1"><ui:multiLabels><Text text="{i18n>groupReadThroughHitLatencies}" /><Text text="{i18n>colAvgHitLatencyMs}" /></ui:multiLabels><ui:template><Text text="{path: \'avgHitLatency\', type: \'sap.ui.model.type.Float\', formatOptions: {style: \'short\', decimals: 2}}" /></ui:template></ui:Column><ui:Column width="120px" sortProperty="minHitLatency" filterProperty="minHitLatency"><ui:multiLabels><Text text="{i18n>groupReadThroughHitLatencies}" /><Text text="{i18n>colMinHitLatencyMs}" /></ui:multiLabels><ui:template><Text text="{path: \'minHitLatency\', type: \'sap.ui.model.type.Float\', formatOptions: {style: \'short\', decimals: 2}}" /></ui:template></ui:Column><ui:Column width="120px" sortProperty="maxHitLatency" filterProperty="maxHitLatency"><ui:multiLabels><Text text="{i18n>groupReadThroughHitLatencies}" /><Text text="{i18n>colMaxHitLatencyMs}" /></ui:multiLabels><ui:template><Text text="{path: \'maxHitLatency\', type: \'sap.ui.model.type.Float\', formatOptions: {style: \'short\', decimals: 2}}" /></ui:template></ui:Column><ui:Column width="120px" sortProperty="avgMissLatency" filterProperty="avgMissLatency" headerSpan="5,1"><ui:multiLabels><Text text="{i18n>groupReadThroughMissLatencies}" /><Text text="{i18n>colAvgMissLatencyMs}" /></ui:multiLabels><ui:template><Text text="{path: \'avgMissLatency\', type: \'sap.ui.model.type.Float\', formatOptions: {style: \'short\', decimals: 2}}" /></ui:template></ui:Column><ui:Column width="120px" sortProperty="minMissLatency" filterProperty="minMissLatency"><ui:multiLabels><Text text="{i18n>groupReadThroughMissLatencies}" /><Text text="{i18n>colMinMissLatencyMs}" /></ui:multiLabels><ui:template><Text text="{path: \'minMissLatency\', type: \'sap.ui.model.type.Float\', formatOptions: {style: \'short\', decimals: 2}}" /></ui:template></ui:Column><ui:Column width="120px" sortProperty="maxMissLatency" filterProperty="maxMissLatency"><ui:multiLabels><Text text="{i18n>groupReadThroughMissLatencies}" /><Text text="{i18n>colMaxMissLatencyMs}" /></ui:multiLabels><ui:template><Text text="{path: \'maxMissLatency\', type: \'sap.ui.model.type.Float\', formatOptions: {style: \'short\', decimals: 2}}" /></ui:template></ui:Column><ui:Column width="70px" sortProperty="nativeHits" filterProperty="nativeHits" headerSpan="4,1"><ui:multiLabels><Text text="{i18n>groupNativeFunctionOps}" /><Text text="{i18n>colHits}" /></ui:multiLabels><ui:template><Text text="{nativeHits}" /></ui:template></ui:Column><ui:Column width="70px" sortProperty="nativeMisses" filterProperty="nativeMisses"><ui:multiLabels><Text text="{i18n>groupNativeFunctionOps}" /><Text text="{i18n>colMisses}" /></ui:multiLabels><ui:template><Text text="{nativeMisses}" /></ui:template></ui:Column><ui:Column width="70px" sortProperty="nativeSets" filterProperty="nativeSets"><ui:multiLabels><Text text="{i18n>groupNativeFunctionOps}" /><Text text="{i18n>colSets}" /></ui:multiLabels><ui:template><Text text="{nativeSets}" /></ui:template></ui:Column><ui:Column width="70px" sortProperty="nativeDeletes" filterProperty="nativeDeletes"><ui:multiLabels><Text text="{i18n>groupNativeFunctionOps}" /><Text text="{i18n>colDeletes}" /></ui:multiLabels><ui:template><Text text="{nativeDeletes}" /></ui:template></ui:Column><ui:Column width="100px" sortProperty="tenant" filterProperty="tenant" headerSpan="5,1"><ui:multiLabels><Text text="{i18n>infoAdditional}" /><Text text="{i18n>colTenant}" /></ui:multiLabels><ui:template><Text text="{tenant}" /></ui:template></ui:Column><ui:Column width="100px" sortProperty="user" filterProperty="user"><ui:multiLabels><Text text="{i18n>infoAdditional}" /><Text text="{i18n>colUser}" /></ui:multiLabels><ui:template><Text text="{user}" /></ui:template></ui:Column><ui:Column width="80px" sortProperty="locale" filterProperty="locale"><ui:multiLabels><Text text="{i18n>infoAdditional}" /><Text text="{i18n>colLocale}" /></ui:multiLabels><ui:template><Text text="{locale}" /></ui:template></ui:Column><ui:Column width="150px" sortProperty="lastAccess" filterProperty="lastAccess" ><ui:multiLabels><Text text="{i18n>infoAdditional}" /><Text text="{i18n>colLastAccess}" /></ui:multiLabels><ui:template><Text text="{ path: \'lastAccess\'}" /></ui:template></ui:Column><ui:Column width="150px" sortProperty="timestamp" filterProperty="timestamp"><ui:multiLabels><Text text="{i18n>infoAdditional}" /><Text text="{i18n>colFirstAccess}" /></ui:multiLabels><ui:template><Text text="{ path: \'timestamp\'}" /></ui:template></ui:Column></ui:columns></ui:Table></IconTabFilter><IconTabSeparator ></IconTabSeparator><IconTabFilter text="{i18n>tabBrowseCacheEntries}" key="entries" icon="sap-icon://warning" iconColor="Critical"><l:VerticalLayout width="100%"><f:Card class="sapUiTinyMargin"><f:header><card:Header title="{i18n>cacheEntriesTitle}" subtitle="{i18n>cacheEntriesSubtitle}" /></f:header><f:content><l:VerticalLayout class="sapUiTinyMargin"><MessageStrip text="{i18n>messageStripLoadEntriesWarning}" type="Warning" showIcon="true" class="sapUiTinyMarginBottom" /><Button text="{i18n>btnLoadCacheEntries}" icon="sap-icon://download" press="onLoadCacheEntries" type="Emphasized" class="sapUiTinyMarginBottom" /><Table id="cacheEntriesTable" items="{ui>/cacheEntries}" busyIndicatorDelay="0" busy="{ui>/loadingEntries}" visible="{ui>/showEntriesTable}"><columns><Column width="200px"><Text text="{i18n>labelKey}" /></Column><Column width="300px"><Text text="{i18n>labelValue}" /></Column><Column width="100px"><Text text="{i18n>colTags}" /></Column><Column width="150px"><Text text="{i18n>colTimestamp}" /></Column></columns><items><ColumnListItem><cells><Text text="{ui>entryKey}" tooltip="{ui>entryKey}" /><Text text="{ui>value}" tooltip="{ui>value}" /><Text text="{ui>tags}" /><Text text="{ path: \'ui>timestamp\'}" /></cells></ColumnListItem></items></Table></l:VerticalLayout></f:content></f:Card></l:VerticalLayout></IconTabFilter></items></IconTabBar></f:content></f:DynamicPage></mvc:View> ',
|
|
4360
|
+
"cds/plugin/caching/dashboard/view/Main.view.xml":'<mvc:View controllerName="cds.plugin.caching.dashboard.controller.Main" displayBlock="true"\n\txmlns="sap.m"\n\txmlns:mvc="sap.ui.core.mvc"\n\txmlns:core="sap.ui.core"\n\txmlns:l="sap.ui.layout"\n\txmlns:f="sap.f"\n\txmlns:fb="sap.ui.comp.filterbar"\n\txmlns:card="sap.f.cards"\n\txmlns:cssgrid="sap.ui.layout.cssgrid"\n\txmlns:viz="sap.viz.ui5.controls"\n\txmlns:viz.feeds="sap.viz.ui5.controls.common.feeds"\n\txmlns:viz.data="sap.viz.ui5.data" core:require="{\n\t\tformatter: \'cds/plugin/caching/dashboard/model/formatter\'\n\t}"><f:DynamicPage title="{i18n>homePageTitle}" headerExpanded="true" headerPinned="true"><f:title><f:DynamicPageTitle><f:heading><Title text="{i18n>homePageTitle}" /></f:heading><f:actions><Button type="Transparent" icon="sap-icon://refresh" text="{i18n>refreshButton}" press="onRefresh" /></f:actions></f:DynamicPageTitle></f:title><f:content><Table id="cachesList" headerText="{i18n>cachingServicesHeader}" mode="SingleSelectMaster" items="{path: \'/Caches\'}" itemPress="onCacheSelect" noDataText="{i18n>noCachesAvailable}"><columns><Column><Text text="{i18n>colName}" /></Column><Column><Text text="{i18n>colStatisticTrackingEnabled}" /></Column><Column><Text text="{i18n>colKeyTrackingEnabled}" /></Column></columns><items><ColumnListItem type="Navigation"><cells><Text text="{name}" /><Text text="{path: \'metricsEnabled\' }" /><Text text="{path: \'keyMetricsEnabled\' }" /></cells></ColumnListItem></items></Table></f:content></f:DynamicPage></mvc:View>\n',
|
|
4361
|
+
"cds/plugin/caching/dashboard/view/SingleMetric.view.xml":'<mvc:View controllerName="cds.plugin.caching.dashboard.controller.SingleMetric"\n\txmlns="sap.m"\n\txmlns:mvc="sap.ui.core.mvc"\n\txmlns:core="sap.ui.core"\n\txmlns:l="sap.ui.layout"\n\txmlns:f="sap.f"\n\txmlns:fb="sap.ui.comp.filterbar"\n\txmlns:card="sap.f.cards"\n\txmlns:cssgrid="sap.ui.layout.cssgrid"\n\txmlns:viz="sap.viz.ui5.controls"\n\txmlns:viz.feeds="sap.viz.ui5.controls.common.feeds"\n\txmlns:viz.data="sap.viz.ui5.data"\n\txmlns:form="sap.ui.layout.form" core:require="{\n\t\tformatter: \'cds/plugin/caching/dashboard/model/formatter\'\n\t}"><f:DynamicPage title="{i18n>metricDetailsPageTitle}" showFooter="false"><f:title><f:DynamicPageTitle><f:heading><Title text="{= ${i18n>metricPagePrefix} + \' \' + ${ui>/metricId} }" /></f:heading><f:actions><Button icon="sap-icon://refresh" text="{i18n>refreshButton}" type="Transparent" press="onRefresh" /></f:actions><f:navigationActions><OverflowToolbarButton type="Transparent" icon="sap-icon://full-screen" press="handleFullScreen" tooltip="{i18n>ttFullScreenEnter}" visible="{= ${app>/layout} !== \'EndColumnFullScreen\' }"/><OverflowToolbarButton type="Transparent" icon="sap-icon://exit-full-screen" press="handleExitFullScreen" tooltip="{i18n>ttFullScreenExit}" visible="{= ${app>/layout} === \'EndColumnFullScreen\' }"/><OverflowToolbarButton type="Transparent" icon="sap-icon://decline" press="handleClose" tooltip="{i18n>ttCloseEndColumn}"/></f:navigationActions></f:DynamicPageTitle></f:title><f:content><cssgrid:CSSGrid id="metricMainGrid" width="100%"><cssgrid:customLayout><cssgrid:ResponsiveColumnLayout /></cssgrid:customLayout><VBox renderType="Bare"><layoutData><cssgrid:ResponsiveColumnItemLayoutData columns="24"/></layoutData><Title text="{i18n>sectionReadThroughPerformance}" titleStyle="H5" class="sapUiMediumMarginTop sapUiTinyMarginBottom" /><f:GridContainer id="metricCacheThroughGrid" columnsChange=".onColumnsChange"><GenericTile class="sapUiTinyMarginBegin sapUiTinyMarginTop tileLayout" header="{i18n>hitRatio}" subheader="{i18n>tileSubCacheHitRate}"><TileContent unit="%"><NumericContent valueColor="{formatter: \'formatter.formatHitRatioWithColor\', path: \'ui>/hitRatio\'}" value="{ path: \'ui>/hitRatio\', type: \'sap.ui.model.type.Float\', formatOptions: {style: \'short\', decimals: 2}}" /></TileContent><layoutData><f:GridContainerItemLayoutData columns="2" minRows="2"/></layoutData></GenericTile><GenericTile class="sapUiTinyMarginBegin sapUiTinyMarginTop tileLayout" header="{i18n>headerCacheEfficiency}" subheader="{i18n>tileSubPerformanceFactor}"><TileContent unit="x"><NumericContent valueColor="{formatter: \'formatter.formatCacheEfficiencyWithColor\', path: \'ui>/cacheEfficiency\'}" value="{path: \'ui>/cacheEfficiency\', type: \'sap.ui.model.type.Float\', formatOptions: {style: \'short\', decimals: 2}}" /></TileContent><layoutData><f:GridContainerItemLayoutData columns="2" minRows="2"/></layoutData></GenericTile><GenericTile class="sapUiTinyMarginBegin sapUiTinyMarginTop tileLayout" header="{i18n>throughput}" subheader="{i18n>tileSubReqPerSec}"><TileContent unit="req/s"><NumericContent value="{ path: \'ui>/throughput\', type: \'sap.ui.model.type.Float\', formatOptions: {style: \'short\', decimals: 2}}" withMargin="false" /></TileContent><layoutData><f:GridContainerItemLayoutData columns="2" minRows="2"/></layoutData></GenericTile><GenericTile class="sapUiTinyMarginBegin sapUiTinyMarginTop tileLayout" header="{i18n>headerErrorRate}" subheader="{i18n>tileSubCacheErrors}"><TileContent unit="%"><NumericContent valueColor="{formatter: \'formatter.formatErrorRateWithColor\', path: \'ui>/errorRate\'}" value="{ path: \'ui>/errorRate\', formatter: \'formatter.formatPercentageValue\' }" /></TileContent><layoutData><f:GridContainerItemLayoutData columns="2" minRows="2"/></layoutData></GenericTile><GenericTile class="sapUiTinyMarginBegin sapUiTinyMarginTop tileLayout" header="{i18n>totalRequests}" subheader="{i18n>tileSubCacheOperations}"><TileContent unit="req"><NumericContent value="{= ${ui>/hits} + ${ui>/misses}}" withMargin="false" /></TileContent><layoutData><f:GridContainerItemLayoutData columns="2" minRows="2"/></layoutData></GenericTile><GenericTile class="sapUiTinyMarginBegin sapUiTinyMarginTop tileLayout" header="{i18n>headerCacheHits}" subheader="{i18n>tileSubSuccessfulRetrievals}"><TileContent unit="hits"><NumericContent value="{ui>/hits}" withMargin="false" /></TileContent><layoutData><f:GridContainerItemLayoutData columns="2" minRows="2"/></layoutData></GenericTile><GenericTile class="sapUiTinyMarginBegin sapUiTinyMarginTop tileLayout" header="{i18n>headerCacheMisses}" subheader="{i18n>tileSubFailedRetrievals}"><TileContent unit="misses"><NumericContent value="{ui>/misses}" withMargin="false" /></TileContent><layoutData><f:GridContainerItemLayoutData columns="2" minRows="2"/></layoutData></GenericTile><GenericTile class="sapUiTinyMarginBegin sapUiTinyMarginTop tileLayout" header="{i18n>headerCacheErrors}" subheader="{i18n>tileSubErrorCount}"><TileContent unit="errors"><NumericContent value="{ui>/errors}" withMargin="false" /></TileContent><layoutData><f:GridContainerItemLayoutData columns="2" minRows="2"/></layoutData></GenericTile><GenericTile class="sapUiTinyMarginBegin sapUiTinyMarginTop tileLayout" header="{i18n>headerHitLatency}" subheader="{i18n>tileSubCacheHitResponse}"><TileContent unit="ms"><NumericContent valueColor="{formatter: \'formatter.formatLatencyWithColor\', path: \'ui>/avgHitLatency\'}" value="{ path: \'ui>/avgHitLatency\', type: \'sap.ui.model.type.Float\', formatOptions: {style: \'short\', decimals: 2}}" /></TileContent><layoutData><f:GridContainerItemLayoutData columns="2" minRows="2"/></layoutData></GenericTile><GenericTile class="sapUiTinyMarginBegin sapUiTinyMarginTop tileLayout" header="{i18n>headerMissLatency}" subheader="{i18n>tileSubCacheMissResponse}"><TileContent unit="ms"><NumericContent valueColor="{formatter: \'formatter.formatLatencyWithColor\', path: \'ui>/avgMissLatency\'}" value="{ path: \'ui>/avgMissLatency\', type: \'sap.ui.model.type.Float\', formatOptions: {style: \'short\', decimals: 2}}" /></TileContent><layoutData><f:GridContainerItemLayoutData columns="2" minRows="2"/></layoutData></GenericTile><f:Card class="sapUiTinyMargin"><f:header><card:Header title="{i18n>cardReadThroughOps}" subtitle="{i18n>cardReadThroughOpsSub}" /></f:header><f:content><l:VerticalLayout width="100%"><viz:Popover id="metricCacheThroughPopOver"></viz:Popover><viz:VizFrame id="metricCacheThroughChart" vizType="pie" width="100%" height="300px"><viz:dataset><viz.data:FlattenedDataset data="{ui>/cacheThroughData}"><viz.data:dimensions><viz.data:DimensionDefinition name="Operation" value="{operation}" /></viz.data:dimensions><viz.data:measures><viz.data:MeasureDefinition name="Count" value="{count}" /></viz.data:measures></viz.data:FlattenedDataset></viz:dataset><viz:feeds><viz.feeds:FeedItem id="metricCacheThroughValueAxisFeed" uid="size" type="Measure" values="Count" /><viz.feeds:FeedItem id="metricCacheThroughCategoryAxisFeed" uid="color" type="Dimension" values="Operation" /></viz:feeds></viz:VizFrame></l:VerticalLayout></f:content><f:layoutData><f:GridContainerItemLayoutData columns="4" minRows="4"/></f:layoutData></f:Card><f:Card class="sapUiTinyMargin"><f:header><card:Header title="{i18n>cardLatencyCompare}" subtitle="{i18n>cardLatencyCompareSub}" /></f:header><f:content><l:VerticalLayout width="100%"><viz:Popover id="metricLatencyPopOver"></viz:Popover><viz:VizFrame id="metricLatencyChart" vizType="bar" width="100%" height="300px"><viz:dataset><viz.data:FlattenedDataset data="{ui>/latencyData}"><viz.data:dimensions><viz.data:DimensionDefinition name="Operation" value="{operation}" /></viz.data:dimensions><viz.data:measures><viz.data:MeasureDefinition name="Latency" value="{latency}" /></viz.data:measures></viz.data:FlattenedDataset></viz:dataset><viz:feeds><viz.feeds:FeedItem id="metricValueAxisFeed" uid="valueAxis" type="Measure" values="Latency" /><viz.feeds:FeedItem id="metricCategoryAxisFeed" uid="categoryAxis" type="Dimension" values="Operation" /></viz:feeds></viz:VizFrame></l:VerticalLayout></f:content><f:layoutData><f:GridContainerItemLayoutData columns="12" minRows="4"/></f:layoutData></f:Card></f:GridContainer></VBox><VBox renderType="Bare"><layoutData><cssgrid:ResponsiveColumnItemLayoutData columns="24"/></layoutData><Title text="{i18n>sectionNativeFunctionPerformance}" titleStyle="H5" class="sapUiMediumMarginTop sapUiTinyMarginBottom" /><f:GridContainer id="metricNativeGrid" columnsChange=".onColumnsChange"><GenericTile class="sapUiTinyMarginBegin sapUiTinyMarginTop tileLayout" header="{i18n>headerNativeThroughput}" subheader="{i18n>tileSubNativeOpsPerSec}"><TileContent unit="ops/s"><NumericContent value="{ path: \'ui>/nativeThroughput\', formatter: \'formatter.formatNumberValue\' }" withMargin="false" /></TileContent><layoutData><f:GridContainerItemLayoutData columns="2" minRows="2"/></layoutData></GenericTile><GenericTile class="sapUiTinyMarginBegin sapUiTinyMarginTop tileLayout" header="{i18n>headerNativeErrorRate}" subheader="{i18n>tileSubCacheErrors}"><TileContent unit="%"><NumericContent valueColor="{formatter: \'formatter.formatErrorRateWithColor\', path: \'ui>/nativeErrorRate\'}" value="{ path: \'ui>/nativeErrorRate\', formatter: \'formatter.formatPercentageValue\' }" /></TileContent><layoutData><f:GridContainerItemLayoutData columns="2" minRows="2"/></layoutData></GenericTile><GenericTile class="sapUiTinyMarginBegin sapUiTinyMarginTop tileLayout" header="{i18n>headerNativeSets}" subheader="{i18n>tileSubWriteOps}"><TileContent unit="sets"><NumericContent value="{ui>/nativeSets}" withMargin="false" /></TileContent><layoutData><f:GridContainerItemLayoutData columns="2" minRows="2"/></layoutData></GenericTile><GenericTile class="sapUiTinyMarginBegin sapUiTinyMarginTop tileLayout" header="{i18n>headerNativeGets}" subheader="{i18n>tileSubReadOps}"><TileContent unit="gets"><NumericContent value="{ui>/nativeGets}" withMargin="false" /></TileContent><layoutData><f:GridContainerItemLayoutData columns="2" minRows="2"/></layoutData></GenericTile><GenericTile class="sapUiTinyMarginBegin sapUiTinyMarginTop tileLayout" header="{i18n>headerNativeDeletes}" subheader="{i18n>tileSubDeleteOps}"><TileContent unit="deletes"><NumericContent value="{ui>/nativeDeletes}" withMargin="false" /></TileContent><layoutData><f:GridContainerItemLayoutData columns="2" minRows="2"/></layoutData></GenericTile><GenericTile class="sapUiTinyMarginBegin sapUiTinyMarginTop tileLayout" header="{i18n>headerNativeClears}" subheader="{i18n>tileSubClearOps}"><TileContent unit="clears"><NumericContent value="{ui>/nativeClears}" withMargin="false" /></TileContent><layoutData><f:GridContainerItemLayoutData columns="2" minRows="2"/></layoutData></GenericTile><GenericTile class="sapUiTinyMarginBegin sapUiTinyMarginTop tileLayout" header="{i18n>headerDeleteByTags}" subheader="{i18n>tileSubTagDeletes}"><TileContent unit="deletes"><NumericContent value="{ui>/nativeDeleteByTags}" withMargin="false" /></TileContent><layoutData><f:GridContainerItemLayoutData columns="2" minRows="2"/></layoutData></GenericTile><GenericTile class="sapUiTinyMarginBegin sapUiTinyMarginTop tileLayout" header="{i18n>headerNativeErrors}" subheader="{i18n>tileSubErrorCount}"><TileContent unit="errors"><NumericContent value="{ui>/nativeErrors}" withMargin="false" /></TileContent><layoutData><f:GridContainerItemLayoutData columns="2" minRows="2"/></layoutData></GenericTile><GenericTile class="sapUiTinyMarginBegin sapUiTinyMarginTop tileLayout" header="{i18n>headerTotalNativeOps}" subheader="{i18n>tileSubAllOperations}"><TileContent unit="ops"><NumericContent value="{ui>/totalNativeOperations}" withMargin="false" /></TileContent><layoutData><f:GridContainerItemLayoutData columns="2" minRows="2"/></layoutData></GenericTile><f:Card class="sapUiTinyMargin"><f:header><card:Header title="{i18n>cardNativeFunctionOps}" subtitle="{i18n>cardReadThroughOpsSub}" /></f:header><f:content><l:VerticalLayout width="100%"><viz:Popover id="metricNativePopOver"></viz:Popover><viz:VizFrame id="metricNativeChart" vizType="pie" width="100%" height="300px"><viz:dataset><viz.data:FlattenedDataset data="{ui>/nativeData}"><viz.data:dimensions><viz.data:DimensionDefinition name="Operation" value="{operation}" /></viz.data:dimensions><viz.data:measures><viz.data:MeasureDefinition name="Count" value="{count}" /></viz.data:measures></viz.data:FlattenedDataset></viz:dataset><viz:feeds><viz.feeds:FeedItem id="metricNativeValueAxisFeed" uid="size" type="Measure" values="Count" /><viz.feeds:FeedItem id="metricNativeCategoryAxisFeed" uid="color" type="Dimension" values="Operation" /></viz:feeds></viz:VizFrame></l:VerticalLayout></f:content><f:layoutData><f:GridContainerItemLayoutData columns="4" minRows="4"/></f:layoutData></f:Card></f:GridContainer></VBox></cssgrid:CSSGrid></f:content></f:DynamicPage></mvc:View> ',
|
|
4362
4362
|
"sap/f/manifest.json":'{"_version":"1.21.0","sap.app":{"id":"sap.f","type":"library","embeds":[],"applicationVersion":{"version":"1.136.0"},"title":"SAPUI5 library with Fiori controls.","description":"SAPUI5 library with Fiori controls.","ach":"CA-UI5-CTR","resources":"resources.json","offline":true},"sap.ui":{"technology":"UI5","supportedThemes":["base","sap_hcb"]},"sap.ui5":{"dependencies":{"minUI5Version":"1.136","libs":{"sap.ui.core":{"minVersion":"1.136.0"},"sap.ui.layout":{"minVersion":"1.136.0"},"sap.m":{"minVersion":"1.136.0"}}},"library":{"i18n":{"bundleUrl":"messagebundle.properties","supportedLocales":["","ar","bg","ca","cnr","cs","cy","da","de","el","en","en-GB","en-US-sappsd","en-US-saprigi","en-US-saptrc","es","es-MX","et","fi","fr","fr-CA","hi","hr","hu","id","it","iw","ja","kk","ko","lt","lv","mk","ms","nl","no","pl","pt","pt-PT","ro","ru","sh","sk","sl","sr","sv","th","tr","uk","vi","zh-CN","zh-TW"]},"content":{"controls":["sap.f.Avatar","sap.f.AvatarGroup","sap.f.AvatarGroupItem","sap.f.cards.Header","sap.f.cards.NumericHeader","sap.f.cards.NumericIndicators","sap.f.cards.NumericSideIndicator","sap.f.CalendarInCard","sap.f.Card","sap.f.GridContainer","sap.f.DynamicPage","sap.f.DynamicPageHeader","sap.f.DynamicPageTitle","sap.f.IllustratedMessage","sap.f.FlexibleColumnLayout","sap.f.semantic.SemanticPage","sap.f.GridList","sap.f.GridListItem","sap.f.PlanningCalendarInCardLegend","sap.f.ProductSwitch","sap.f.ProductSwitchItem","sap.f.ShellBar","sap.f.SidePanel","sap.f.Illustration"],"elements":["sap.f.DynamicPageAccessibleLandmarkInfo","sap.f.GridContainerItemLayoutData","sap.f.FlexibleColumnLayoutAccessibleLandmarkInfo","sap.f.FlexibleColumnLayoutData","sap.f.FlexibleColumnLayoutDataForDesktop","sap.f.FlexibleColumnLayoutDataForTablet","sap.f.cards.CardBadgeCustomData","sap.f.semantic.AddAction","sap.f.semantic.CloseAction","sap.f.semantic.CopyAction","sap.f.semantic.DeleteAction","sap.f.semantic.DiscussInJamAction","sap.f.semantic.EditAction","sap.f.semantic.ExitFullScreenAction","sap.f.semantic.FavoriteAction","sap.f.semantic.FlagAction","sap.f.semantic.FooterMainAction","sap.f.semantic.FullScreenAction","sap.f.semantic.MainAction","sap.f.semantic.MessagesIndicator","sap.f.semantic.NegativeAction","sap.f.semantic.PositiveAction","sap.f.semantic.PrintAction","sap.f.semantic.SemanticButton","sap.f.semantic.SemanticControl","sap.f.semantic.SemanticToggleButton","sap.f.semantic.SendEmailAction","sap.f.semantic.SendMessageAction","sap.f.semantic.ShareInJamAction","sap.f.semantic.TitleMainAction","sap.f.SearchManager","sap.f.SidePanelItem"],"types":["sap.f.AvatarImageFitType","sap.f.AvatarShape","sap.f.AvatarSize","sap.f.AvatarType","sap.f.AvatarColor","sap.f.AvatarGroupType","sap.f.CardBadgeVisibilityMode","sap.f.cards.SemanticRole","sap.f.cards.HeaderPosition","sap.f.cards.NumericHeaderSideIndicatorsAlignment","sap.f.DynamicPageTitleArea","sap.f.DynamicPageTitleShrinkRatio","sap.f.IllustratedMessageSize","sap.f.IllustratedMessageType","sap.f.LayoutType","sap.f.SidePanelPosition","sap.f.NavigationDirection"],"interfaces":["sap.f.cards.IHeader","sap.f.ICard","sap.f.IShellBar","sap.f.IDynamicPageStickyContent","sap.f.dnd.IGridDroppable"]}}}}',
|
|
4363
4363
|
"sap/m/manifest.json":'{"_version":"1.21.0","sap.app":{"id":"sap.m","type":"library","embeds":[],"applicationVersion":{"version":"1.136.0"},"title":"The main UI5 control library, with responsive controls that can be used in touch devices as well as desktop browsers.","description":"The main UI5 control library, with responsive controls that can be used in touch devices as well as desktop browsers.","ach":"CA-UI5-CTR","resources":"resources.json","offline":true,"openSourceComponents":[{"name":"DOMPurify","packagedWithMySelf":true,"version":"3.2.4"},{"name":"qunit-composite-2","packagedWithMySelf":true,"version":"2.0.0"}]},"sap.ui":{"technology":"UI5","supportedThemes":["base","sap_hcb"]},"sap.ui5":{"dependencies":{"minUI5Version":"1.136","libs":{"sap.ui.core":{"minVersion":"1.136.0"},"sap.ui.layout":{"minVersion":"1.136.0","lazy":true},"sap.ui.unified":{"minVersion":"1.136.0","lazy":true}}},"library":{"i18n":{"bundleUrl":"messagebundle.properties","supportedLocales":["","ar","bg","ca","cnr","cs","cy","da","de","el","en","en-GB","en-US-sappsd","en-US-saprigi","en-US-saptrc","es","es-MX","et","fi","fr","fr-CA","hi","hr","hu","id","it","iw","ja","kk","ko","lt","lv","mk","ms","nl","no","pl","pt","pt-PT","ro","ru","sh","sk","sl","sr","sv","th","tr","uk","vi","zh-CN","zh-TW"]},"content":{"controls":["sap.m.ActionListItem","sap.m.ActionSelect","sap.m.ActionSheet","sap.m.ActionTile","sap.m.ActionTileContent","sap.m.App","sap.m.Avatar","sap.m.Bar","sap.m.BusyDialog","sap.m.BusyIndicator","sap.m.Button","sap.m.Breadcrumbs","sap.m.Carousel","sap.m.CheckBox","sap.m.ColumnHeaderPopover","sap.m.ColumnListItem","sap.m.ColorPalette","sap.m.ColorPalettePopover","sap.m.ComboBox","sap.m.ComboBoxTextField","sap.m.ComboBoxBase","sap.m.TileAttribute","sap.m.CustomListItem","sap.m.CustomTile","sap.m.CustomTreeItem","sap.m.DatePicker","sap.m.DateRangeSelection","sap.m.DateTimeField","sap.m.DateTimeInput","sap.m.DateTimePicker","sap.m.Dialog","sap.m.DisplayListItem","sap.m.DraftIndicator","sap.m.DynamicDateRange","sap.m.ExpandableText","sap.m.AdditionalTextButton","sap.m.FacetFilter","sap.m.FacetFilterItem","sap.m.FacetFilterList","sap.m.FeedContent","sap.m.FeedInput","sap.m.FeedListItem","sap.m.FlexBox","sap.m.FormattedText","sap.m.GenericTag","sap.m.GenericTile","sap.m.GroupHeaderListItem","sap.m.GrowingList","sap.m.HBox","sap.m.HeaderContainer","sap.m.IconTabBar","sap.m.IconTabBarSelectList","sap.m.IconTabFilterExpandButtonBadge","sap.m.IconTabHeader","sap.m.IllustratedMessage","sap.m.Image","sap.m.ImageContent","sap.m.Input","sap.m.InputBase","sap.m.InputListItem","sap.m.Label","sap.m.LightBox","sap.m.Link","sap.m.List","sap.m.ListBase","sap.m.ListItemBase","sap.m.MaskInput","sap.m.Menu","sap.m.MenuButton","sap.m.MessagePage","sap.m.MessagePopover","sap.m.MessageView","sap.m.MessageStrip","sap.m.MultiComboBox","sap.m.MultiEditField","sap.m.MultiInput","sap.m.NavContainer","sap.m.NewsContent","sap.m.NumericContent","sap.m.NotificationList","sap.m.NotificationListBase","sap.m.NotificationListItem","sap.m.NotificationListGroup","sap.m.PagingButton","sap.m.PlanningCalendarLegend","sap.m.ObjectAttribute","sap.m.ObjectHeader","sap.m.ObjectIdentifier","sap.m.ObjectListItem","sap.m.ObjectMarker","sap.m.ObjectNumber","sap.m.ObjectStatus","sap.m.OverflowToolbar","sap.m.OverflowToolbarButton","sap.m.OverflowToolbarToggleButton","sap.m.OverflowToolbarMenuButton","sap.m.P13nColumnsPanel","sap.m.P13nGroupPanel","sap.m.P13nSelectionPanel","sap.m.P13nDimMeasurePanel","sap.m.P13nConditionPanel","sap.m.P13nDialog","sap.m.P13nFilterPanel","sap.m.P13nPanel","sap.m.P13nSortPanel","sap.m.Page","sap.m.Panel","sap.m.PDFViewer","sap.m.PlanningCalendar","sap.m.PlanningCalendarHeader","sap.m.Popover","sap.m.ProgressIndicator","sap.m.PullToRefresh","sap.m.QuickView","sap.m.QuickViewBase","sap.m.QuickViewCard","sap.m.QuickViewPage","sap.m.RadioButton","sap.m.RadioButtonGroup","sap.m.RangeSlider","sap.m.RatingIndicator","sap.m.ResponsivePopover","sap.m.ScrollContainer","sap.m.SearchField","sap.m.SegmentedButton","sap.m.Select","sap.m.SelectDialog","sap.m.SelectDialogBase","sap.m.SelectList","sap.m.SelectionDetails","sap.m.Shell","sap.m.SimpleFixFlex","sap.m.SinglePlanningCalendar","sap.m.SinglePlanningCalendarGrid","sap.m.SinglePlanningCalendarMonthGrid","sap.m.Slider","sap.m.SliderTooltip","sap.m.SliderTooltipBase","sap.m.SliderTooltipContainer","sap.m.SlideTile","sap.m.StepInput","sap.m.SplitApp","sap.m.SplitContainer","sap.m.StandardListItem","sap.m.StandardTreeItem","sap.m.StandardTile","sap.m.Switch","sap.m.Table","sap.m.TableSelectDialog","sap.m.TabContainer","sap.m.TabStrip","sap.m.Text","sap.m.TextArea","sap.m.Tile","sap.m.TileContainer","sap.m.TileContent","sap.m.TimePicker","sap.m.TimePickerInputs","sap.m.TimePickerClock","sap.m.TimePickerClocks","sap.m.TimePickerSliders","sap.m.Title","sap.m.ToggleButton","sap.m.Token","sap.m.Tokenizer","sap.m.Toolbar","sap.m.ToolbarSpacer","sap.m.ToolbarSeparator","sap.m.Tree","sap.m.TreeItemBase","sap.m.UploadCollection","sap.m.UploadCollectionToolbarPlaceholder","sap.m.upload.UploadSet","sap.m.upload.UploadSetToolbarPlaceholder","sap.m.VariantManagement","sap.m.VBox","sap.m.ViewSettingsDialog","sap.m.WheelSlider","sap.m.WheelSliderContainer","sap.m.Wizard","sap.m.WizardStep","sap.m.semantic.DetailPage","sap.m.semantic.SemanticPage","sap.m.semantic.ShareMenuPage","sap.m.semantic.FullscreenPage","sap.m.semantic.MasterPage","sap.m.p13n.AbstractContainer","sap.m.p13n.BasePanel","sap.m.p13n.Container","sap.m.p13n.GroupPanel","sap.m.p13n.QueryPanel","sap.m.p13n.SelectionPanel","sap.m.p13n.SortPanel","sap.m.p13n.Popup","sap.m.table.columnmenu.Menu"],"elements":["sap.m.BadgeCustomData","sap.m.CarouselLayout","sap.m.Column","sap.m.ColumnPopoverActionItem","sap.m.ColumnPopoverCustomItem","sap.m.ColumnPopoverItem","sap.m.ColumnPopoverSortItem","sap.m.ContentConfig","sap.m.DynamicDateOption","sap.m.DynamicDateValueHelpUIType","sap.m.FlexItemData","sap.m.FeedListItemAction","sap.m.IconTabFilter","sap.m.IconTabSeparator","sap.m.ImageCustomData","sap.m.LightBoxItem","sap.m.LinkTileContent","sap.m.OverflowToolbarLayoutData","sap.m.MaskInputRule","sap.m.MenuItem","sap.m.MessageItem","sap.m.MessagePopoverItem","sap.m.PageAccessibleLandmarkInfo","sap.m.P13nFilterItem","sap.m.P13nItem","sap.m.PlanningCalendarRow","sap.m.PlanningCalendarView","sap.m.P13nColumnsItem","sap.m.P13nDimMeasureItem","sap.m.P13nGroupItem","sap.m.P13nSortItem","sap.m.QuickViewGroup","sap.m.QuickViewGroupElement","sap.m.ResponsiveScale","sap.m.SegmentedButtonItem","sap.m.SelectionDetailsItem","sap.m.SelectionDetailsItemLine","sap.m.SinglePlanningCalendarDayView","sap.m.SinglePlanningCalendarMonthView","sap.m.SinglePlanningCalendarWeekView","sap.m.SinglePlanningCalendarWorkWeekView","sap.m.SinglePlanningCalendarView","sap.m.StandardDynamicDateOption","sap.m.SuggestionItem","sap.m.TabContainerItem","sap.m.TabStripItem","sap.m.ToolbarLayoutData","sap.m.TileInfo","sap.m.UploadCollectionItem","sap.m.UploadCollectionParameter","sap.m.upload.FilePreviewDialog","sap.m.upload.Uploader","sap.m.upload.UploaderTableItem","sap.m.upload.UploadSetItem","sap.m.VariantItem","sap.m.ViewSettingsCustomItem","sap.m.ViewSettingsCustomTab","sap.m.ViewSettingsFilterItem","sap.m.ViewSettingsItem","sap.m.plugins.CellSelector","sap.m.plugins.ColumnAIAction","sap.m.plugins.ColumnResizer","sap.m.plugins.CopyProvider","sap.m.plugins.DataStateIndicator","sap.m.plugins.PasteProvider","sap.m.plugins.PluginBase","sap.m.p13n.AbstractContainerItem","sap.m.semantic.AddAction","sap.m.semantic.CancelAction","sap.m.semantic.DeleteAction","sap.m.semantic.DiscussInJamAction","sap.m.semantic.EditAction","sap.m.semantic.FavoriteAction","sap.m.semantic.FilterAction","sap.m.semantic.FilterSelect","sap.m.semantic.FlagAction","sap.m.semantic.ForwardAction","sap.m.semantic.GroupAction","sap.m.semantic.GroupSelect","sap.m.semantic.MainAction","sap.m.semantic.MessagesIndicator","sap.m.semantic.MultiSelectAction","sap.m.semantic.NegativeAction","sap.m.semantic.OpenInAction","sap.m.semantic.PositiveAction","sap.m.semantic.PrintAction","sap.m.semantic.SaveAction","sap.m.semantic.SemanticButton","sap.m.semantic.SemanticControl","sap.m.semantic.SemanticSelect","sap.m.semantic.SemanticToggleButton","sap.m.semantic.SendEmailAction","sap.m.semantic.SendMessageAction","sap.m.semantic.ShareInJamAction","sap.m.semantic.SortAction","sap.m.semantic.SortSelect","sap.m.table.columnmenu.Entry","sap.m.table.columnmenu.ActionItem","sap.m.table.columnmenu.Item","sap.m.table.columnmenu.ItemBase","sap.m.table.columnmenu.QuickAction","sap.m.table.columnmenu.QuickActionBase","sap.m.plugins.UploadSetwithTable","sap.m.upload.UploadItemConfiguration","sap.m.upload.UploadItem"],"types":["sap.m.AvatarImageFitType","sap.m.AvatarShape","sap.m.AvatarSize","sap.m.AvatarType","sap.m.AvatarColor","sap.m.AvatarBadgeColor","sap.m.BackgroundDesign","sap.m.BadgeState","sap.m.BadgeStyle","sap.m.BadgeAnimationType","sap.m.BarDesign","sap.m.BorderDesign","sap.m.BreadcrumbsSeparatorStyle","sap.m.ButtonAccessibleRole","sap.m.ButtonType","sap.m.CarouselArrowsPlacement","sap.m.DateTimeInputType","sap.m.DeviationIndicator","sap.m.DialogRoleType","sap.m.DialogType","sap.m.DraftIndicatorState","sap.m.DynamicDateRangeGroups","sap.m.EmptyIndicatorMode","sap.m.FacetFilterListDataType","sap.m.FacetFilterType","sap.m.FilterPanelField","sap.m.FlexAlignContent","sap.m.FlexAlignItems","sap.m.FlexAlignSelf","sap.m.FlexDirection","sap.m.FlexJustifyContent","sap.m.FlexRendertype","sap.m.FlexWrap","sap.m.FrameType","sap.m.GenericTagDesign","sap.m.GenericTagValueState","sap.m.GenericTileMode","sap.m.Priority","sap.m.GenericTileScope","sap.m.HeaderLevel","sap.m.IBarHTMLTag","sap.m.IconTabDensityMode","sap.m.IconTabFilterDesign","sap.m.IconTabFilterInteractionMode","sap.m.IconTabHeaderMode","sap.m.IllustratedMessageSize","sap.m.IllustratedMessageType","sap.m.ImageMode","sap.m.InputListItemContentSize","sap.m.InputTextFormatMode","sap.m.InputType","sap.m.LabelDesign","sap.m.LightBoxLoadingStates","sap.m.LinkConversion","sap.m.LinkAccessibleRole","sap.m.ListGrowingDirection","sap.m.ListHeaderDesign","sap.m.ListKeyboardMode","sap.m.ListMode","sap.m.ListSeparators","sap.m.ListType","sap.m.LoadState","sap.m.MenuButtonMode","sap.m.MultiSelectMode","sap.m.ObjectHeaderPictureShape","sap.m.ObjectMarkerType","sap.m.ObjectMarkerVisibility","sap.m.OverflowToolbarPriority","sap.m.P13nPopupMode","sap.m.P13nPanelType","sap.m.P13nConditionOperation","sap.m.PageBackgroundDesign","sap.m.PanelAccessibleRole","sap.m.PDFViewerDisplayType","sap.m.PlacementType","sap.m.CarouselPageIndicatorPlacementType","sap.m.PlanningCalendarBuiltInView","sap.m.PlanningCalendarStickyMode","sap.m.PopinDisplay","sap.m.PopinLayout","sap.m.QuickViewGroupElementType","sap.m.RatingIndicatorVisualMode","sap.m.ReactiveAreaMode","sap.m.ScreenSize","sap.m.CarouselScrollMode","sap.m.SelectColumnRatio","sap.m.SelectionDetailsActionLevel","sap.m.SelectListKeyboardNavigationMode","sap.m.SelectDialogInitialFocus","sap.m.SelectType","sap.m.Size","sap.m.SplitAppMode","sap.m.StandardDynamicDateRangeKeys","sap.m.StandardTileType","sap.m.StepInputStepModeType","sap.m.StepInputValidationMode","sap.m.Sticky","sap.m.StringFilterOperator","sap.m.SwipeDirection","sap.m.SwitchType","sap.m.TabsOverflowMode","sap.m.ContentConfigType","sap.m.TileInfoColor","sap.m.TileSizeBehavior","sap.m.TimePickerMaskMode","sap.m.TitleAlignment","sap.m.ExpandableTextOverflowMode","sap.m.TokenizerRenderMode","sap.m.ToolbarDesign","sap.m.ToolbarStyle","sap.m.UploadState","sap.m.UploadType","sap.m.ValueColor","sap.m.ValueCSSColor","sap.m.VerticalPlacementType","sap.m.WrappingType","sap.m.SinglePlanningCalendarSelectionMode","sap.m.WizardRenderMode","sap.m.ResetAllMode","sap.m.SharingMode","sap.m.plugins.CopyPreference","sap.m.plugins.ContextMenuScope","sap.m.semantic.SemanticRuleSetType","sap.m.table.columnmenu.Category","sap.m.upload.UploaderHttpRequestMethod","sap.m.UploadSetwithTableActionPlaceHolder"],"interfaces":["sap.m.IBar","sap.m.IBadge","sap.m.IBreadcrumbs","sap.m.ITableItem","sap.m.p13n.IContent","sap.m.IconTab","sap.m.IScale","sap.m.IMenuItem","sap.m.semantic.IGroup","sap.m.semantic.IFilter","sap.m.semantic.ISort","sap.m.ObjectHeaderContainer","sap.m.IOverflowToolbarContent","sap.m.IOverflowToolbarFlexibleContent","sap.m.IToolbarInteractiveControl","sap.m.IHyphenation"]}}}}',
|
|
4364
4364
|
"sap/tnt/manifest.json":'{"_version":"1.21.0","sap.app":{"id":"sap.tnt","type":"library","embeds":[],"applicationVersion":{"version":"1.136.0"},"title":"SAPUI5 library with responsive controls.","description":"SAPUI5 library with responsive controls.","ach":"CA-UI5-CTR","resources":"resources.json","offline":true},"sap.ui":{"technology":"UI5","supportedThemes":["base","sap_hcb"]},"sap.ui5":{"dependencies":{"minUI5Version":"1.136","libs":{"sap.ui.core":{"minVersion":"1.136.0"},"sap.m":{"minVersion":"1.136.0"}}},"library":{"i18n":{"bundleUrl":"messagebundle.properties","supportedLocales":["","ar","bg","ca","cnr","cs","cy","da","de","el","en","en-GB","en-US-sappsd","en-US-saprigi","en-US-saptrc","es","es-MX","et","fi","fr","fr-CA","hi","hr","hu","id","it","iw","ja","kk","ko","lt","lv","mk","ms","nl","no","pl","pt","pt-PT","ro","ru","sh","sk","sl","sr","sv","th","tr","uk","vi","zh-CN","zh-TW"]},"content":{"controls":["sap.tnt.NavigationList","sap.tnt.ToolHeaderUtilitySeparator","sap.tnt.ToolHeader","sap.tnt.SideNavigation","sap.tnt.ToolPage","sap.tnt.InfoLabel"],"elements":["sap.tnt.NavigationListItem","sap.tnt.NavigationListGroup"],"types":["sap.tnt.IllustratedMessageType","sap.tnt.RenderMode","sap.tnt.NavigationListItemDesign","sap.tnt.SideNavigationDesign"],"interfaces":["sap.tnt.IToolHeader"]}}}}',
|