src/sap.f/src/sap/f/cards/ActionEnablement.js
function _setItemTypeFormatter(oAction) {
			var that = this;

			var oBindingInfo = ManagedObject.bindingParser("{path:''}");
			// Async formatter to set ListItem type depending if the list item context is a correct navigation target (decided by the navigation service).
			oBindingInfo.formatter = function (vValue) {

				var oBindingContext = this.getBindingContext(),
					oModel = this.getModel(),
					sPath;

				if (oBindingContext) {
					sPath = oBindingContext.getPath();
				}

				var mParameters = BindingResolver.resolveValue(oAction.parameters, oModel, sPath);

				if (vValue.__resolved) {
					if (vValue.__enabled) {
						return "Navigation";
					} else {
						return "Inactive";
					}
				}

				if (!vValue.__promise) {
					vValue.__promise = true;
					that._oServiceManager.getService(_getServiceName(oAction.service)).then(function (oNavigationService) {
						if (oNavigationService) {
							oNavigationService
								.enabled({
									parameters: mParameters
								})
								.then(function (bEnabled) {
									vValue.__resolved = true;
									vValue.__enabled = bEnabled;
									that.getModel().checkUpdate(true);
								})
								.catch(function () {
									vValue.__resolved = true;
									vValue.__enabled = false;
								});
						} else {
							vValue.__resolved = true;
							vValue.__enabled = false;
						}
					});
				}
				return "Inactive";
			};
			this._oItemTemplate.bindProperty("type", oBindingInfo);
		}
function _setItemTypeFormatter(oAction) {
			var that = this;

			var oBindingInfo = ManagedObject.bindingParser("{path:''}");
			// Async formatter to set ListItem type depending if the list item context is a correct navigation target (decided by the navigation service).
			oBindingInfo.formatter = function (vValue) {

				var oBindingContext = this.getBindingContext(),
					oModel = this.getModel(),
					sPath;

				if (oBindingContext) {
					sPath = oBindingContext.getPath();
				}

				var mParameters = BindingResolver.resolveValue(oAction.parameters, oModel, sPath);

				if (vValue.__resolved) {
					if (vValue.__enabled) {
						return "Navigation";
					} else {
						return "Inactive";
					}
				}

				if (!vValue.__promise) {
					vValue.__promise = true;
					that._oServiceManager.getService(_getServiceName(oAction.service)).then(function (oNavigationService) {
						if (oNavigationService) {
							oNavigationService
								.enabled({
									parameters: mParameters
								})
								.then(function (bEnabled) {
									vValue.__resolved = true;
									vValue.__enabled = bEnabled;
									that.getModel().checkUpdate(true);
								})
								.catch(function () {
									vValue.__resolved = true;
									vValue.__enabled = false;
								});
						} else {
							vValue.__resolved = true;
							vValue.__enabled = false;
						}
					});
				}
				return "Inactive";
			};
			this._oItemTemplate.bindProperty("type", oBindingInfo);
		}
function _setItemTypeFormatter ( oAction ) { var that = this ; var oBindingInfo = ManagedObject . bindingParser ( "{path:''}" ) ; // Async formatter to set ListItem type depending if the list item context is a correct navigation target (decided by the navigation service). oBindingInfo . formatter = function ( vValue ) { var oBindingContext = this . getBindingContext ( ) , oModel = this . getModel ( ) , sPath ; if ( oBindingContext ) { sPath = oBindingContext . getPath ( ) ; } var mParameters = BindingResolver . resolveValue ( oAction . parameters , oModel , sPath ) ; if ( vValue . __resolved ) { if ( vValue . __enabled ) { return "Navigation" ; } else { return "Inactive" ; } } if ( ! vValue . __promise ) { vValue . __promise = true ; that . _oServiceManager . getService ( _getServiceName ( oAction . service ) ) . then ( function ( oNavigationService ) { if ( oNavigationService ) { oNavigationService . enabled ( { parameters : mParameters } ) . then ( function ( bEnabled ) { vValue . __resolved = true ; vValue . __enabled = bEnabled ; that . getModel ( ) . checkUpdate ( true ) ; } ) . catch ( function ( ) { vValue . __resolved = true ; vValue . __enabled = false ; } ) ; } else { vValue . __resolved = true ; vValue . __enabled = false ; } } ) ; } return "Inactive" ; } ; this . _oItemTemplate . bindProperty ( "type" , oBindingInfo ) ; }
List card specific
List card specific