sap.ui.define( [ "sap/ui/core/mvc/Controller", "sap/m/MessageToast", "sap/ui/core/routing/History" ], function(Controller, MessageToast, History) { "use strict"; return Controller.extend("fivea.controller.Cultivar_Create", { onInit: function() { var oRouter = sap.ui.core.UIComponent.getRouterFor(this); this._oRouter = oRouter; var oView = this.getView(); var oModel = this.getOwnerComponent().getModel(); var oContext = oModel.createEntry("/cultivar", {}); oView.setModel(oModel); oView.setBindingContext(oContext); }, onCreatePress: function() { var oModel = this.getView().getModel(); var _oRouter = this._oRouter; function onSuccessHandler(data) { MessageToast.show("Create success"); // TODO: isnt this data access OData version dependant? // OneWay is simply // var new_entity_tab = data // The TwoWay way. No this is not ridiculous. You tell me the better way ? var new_entity_tab = data["__batchResponses"]["0"].__changeResponses["0"].data; _oRouter.navTo("cultivar_detail", { id: new_entity_tab["results"][0].id }); } function onErrorHandler() { MessageToast.show("Create failed"); } var mParms = {}; mParms.success = onSuccessHandler; mParms.error = onErrorHandler; oModel.submitChanges(mParms); }, onNavBack: function() { var oHistory = History.getInstance(); var sPreviousHash = oHistory.getPreviousHash(); if (sPreviousHash !== undefined) { window.history.go(-1); } else { this._oRouter.navTo("cultivarList", true); } }, inputId: "", inputDescrId: "", onBreederIdValueHelp: function(oEvent) { this.inputId = oEvent.getSource().getId(); this.inputDescrId = this.inputId + "_descr"; // create value help dialog if (!this._valueHelpDialog) { this._valueHelpDialog = sap.ui.xmlfragment( "fivea.view.BreederOptio", this ); this.getView().addDependent(this._valueHelpDialog); } this._valueHelpDialog.open(""); }, _handleValueHelpSearch: function(evt) { var sValue = evt.getParameter("value"); var oFilter = new Filter( "name", sap.ui.model.FilterOperator.Contains, sValue ); evt .getSource() .getBinding("items") .filter([oFilter]); }, _handleValueHelpClose: function(evt) { var oSelectedItem = evt.getParameter("selectedItem"); if (oSelectedItem) { var IDInput = this.getView().byId(this.inputId); IDInput.setValue(oSelectedItem.getDescription()); var oText = this.getView().byId(this.inputDescrId); oText.setText(oSelectedItem.getTitle()); } evt .getSource() .getBinding("items") .filter([]); } }); } );