fiveapples 0.0.1
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.
- checksums.yaml +7 -0
- data/bin/fiveapples +7 -0
- data/lib/config5.ru +31 -0
- data/lib/fiveapples.db3 +0 -0
- data/lib/fiveapples.rb +46 -0
- data/lib/model.rb +58 -0
- data/lib/ui5/Component.js +41 -0
- data/lib/ui5/controller/BreederList.controller.js +68 -0
- data/lib/ui5/controller/Breeder_Create.controller.js +82 -0
- data/lib/ui5/controller/Breeder_Detail.controller.js +89 -0
- data/lib/ui5/controller/CultivarList.controller.js +46 -0
- data/lib/ui5/controller/Cultivar_Create.controller.js +100 -0
- data/lib/ui5/controller/Cultivar_Detail.controller.js +204 -0
- data/lib/ui5/controller/FiveApplesApp.controller.js +62 -0
- data/lib/ui5/controller/MCultivarList.controller.js +96 -0
- data/lib/ui5/controller/MenuList.controller.js +28 -0
- data/lib/ui5/controller/NotFound.controller.js +9 -0
- data/lib/ui5/controller/ParentageList.controller.js +71 -0
- data/lib/ui5/controller/Parentage_Create.controller.js +134 -0
- data/lib/ui5/controller/Parentage_Detail.controller.js +116 -0
- data/lib/ui5/controller/VibertBaseController.js +40 -0
- data/lib/ui5/i18n/i18n.properties +7 -0
- data/lib/ui5/index.html +33 -0
- data/lib/ui5/manifest.json +194 -0
- data/lib/ui5/model/formatter.js +1 -0
- data/lib/ui5/model/models.js +19 -0
- data/lib/ui5/view/BreederList.view.xml +50 -0
- data/lib/ui5/view/BreederOptio.fragment.xml +21 -0
- data/lib/ui5/view/Breeder_Create.view.xml +26 -0
- data/lib/ui5/view/Breeder_Detail.view.xml +53 -0
- data/lib/ui5/view/CultivarList.view.xml +58 -0
- data/lib/ui5/view/CultivarOptio.fragment.xml +23 -0
- data/lib/ui5/view/Cultivar_Create.view.xml +33 -0
- data/lib/ui5/view/Cultivar_Detail.view.xml +93 -0
- data/lib/ui5/view/FiveApplesApp.view.xml +9 -0
- data/lib/ui5/view/MCultivarList.view.xml +43 -0
- data/lib/ui5/view/MenuList.view.xml +18 -0
- data/lib/ui5/view/NotFound.view.xml +9 -0
- data/lib/ui5/view/ParentageList.view.xml +64 -0
- data/lib/ui5/view/Parentage_Create.view.xml +26 -0
- data/lib/ui5/view/Parentage_Detail.view.xml +51 -0
- metadata +128 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 799660a5ae3948a0f6f645cf361f1a810f2dc18dab1529f8871ee0e4846d63cc
|
4
|
+
data.tar.gz: 52a6c2e5888e898f2fb70438ddb3432f3eadf464371f588baf8990d09e7cebb5
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: f7d7c2ed27c49f23e868bcec4dc7d46c8e8d657eb96cb66f38518a9cfc0cd479d43c7044d90c3f633ee6726516ef60b31b8aaaa7d405fe179b3a98fc9c1ef76d
|
7
|
+
data.tar.gz: 858254ff9e2d60c7e40958abbeda204d273e7520aacd2b8ee42cecf7dd2f2d58d36aff4c67c23286d981700f381ba6170323a8ac3ab139cd5c74cf1d3fc67180
|
data/bin/fiveapples
ADDED
data/lib/config5.ru
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
|
2
|
+
###########
|
3
|
+
# config5.ru
|
4
|
+
#
|
5
|
+
require_relative './model.rb'
|
6
|
+
|
7
|
+
require 'rack/logger'
|
8
|
+
|
9
|
+
fiveapples = Rack::OData::Builder.new do
|
10
|
+
|
11
|
+
use Rack::Cors do
|
12
|
+
allow do
|
13
|
+
origins 'localhost:9494', '127.0.0.1:9494'
|
14
|
+
resource '*',
|
15
|
+
methods: [:get, :post, :delete, :put, :patch, :options, :head],
|
16
|
+
headers: :any,
|
17
|
+
expose: ['Some-Custom-Response-Header']
|
18
|
+
end
|
19
|
+
end
|
20
|
+
use Rack::CommonLogger
|
21
|
+
use Rack::ShowExceptions
|
22
|
+
|
23
|
+
# Serve the ui5 app
|
24
|
+
use Rack::Static, :urls => ["/ui5"]
|
25
|
+
|
26
|
+
# Serve the OData
|
27
|
+
run ODataFiveApples.new
|
28
|
+
|
29
|
+
end
|
30
|
+
|
31
|
+
Rack::Handler::Thin.run fiveapples, :Port => 9494
|
data/lib/fiveapples.db3
ADDED
Binary file
|
data/lib/fiveapples.rb
ADDED
@@ -0,0 +1,46 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'safrano.rb'
|
4
|
+
require 'sequel'
|
5
|
+
require 'fileutils'
|
6
|
+
|
7
|
+
class FiveApples
|
8
|
+
CONFIGDIRNAME = 'fiveapples'.freeze
|
9
|
+
DBFILENAME = 'fiveapples.db3'.freeze
|
10
|
+
CONFIGRU = 'config5.ru'
|
11
|
+
|
12
|
+
attr_reader :db
|
13
|
+
|
14
|
+
def initialize
|
15
|
+
gconfigdir = File.expand_path('.config', Dir.home)
|
16
|
+
@apphome = File.expand_path(CONFIGDIRNAME, gconfigdir)
|
17
|
+
@libdir = __dir__.dup
|
18
|
+
@systemdbname = File.join(@libdir, DBFILENAME)
|
19
|
+
@homedbname = File.expand_path(DBFILENAME, @apphome)
|
20
|
+
@configru = File.expand_path(CONFIGRU, @libdir)
|
21
|
+
end
|
22
|
+
|
23
|
+
def setup_db_in_homedir
|
24
|
+
FileUtils.mkdir_p(@apphome) unless Dir.exist?(@apphome)
|
25
|
+
FileUtils.cp(@systemdbname, @homedbname) unless File.exist?(@homedbname)
|
26
|
+
end
|
27
|
+
|
28
|
+
def startdb
|
29
|
+
setup_db_in_homedir
|
30
|
+
|
31
|
+
@db = Sequel::Model.db = Sequel.sqlite(@homedbname)
|
32
|
+
|
33
|
+
Kernel.at_exit { Sequel::Model.db.disconnect if Sequel::Model.db }
|
34
|
+
|
35
|
+
end
|
36
|
+
|
37
|
+
def serve
|
38
|
+
|
39
|
+
Dir.chdir @libdir
|
40
|
+
exec "rackup -I#{@libdir} #{@configru}"
|
41
|
+
|
42
|
+
end
|
43
|
+
|
44
|
+
end
|
45
|
+
|
46
|
+
FiveA = FiveApples.new
|
data/lib/model.rb
ADDED
@@ -0,0 +1,58 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require_relative './fiveapples.rb'
|
4
|
+
|
5
|
+
FiveA.startdb
|
6
|
+
|
7
|
+
class Cultivar < Sequel::Model(:cultivar)
|
8
|
+
|
9
|
+
# Navigation attributes
|
10
|
+
one_to_many :parent, :class => :Parentage, :key => :cultivar_id
|
11
|
+
one_to_many :child, :class => :Parentage, :key => :parent_id
|
12
|
+
|
13
|
+
many_to_one :breeder, :key => :breeder_id
|
14
|
+
|
15
|
+
end
|
16
|
+
|
17
|
+
class ParentageType < Sequel::Model(:par_type)
|
18
|
+
end
|
19
|
+
|
20
|
+
class Breeder < Sequel::Model(:breeder)
|
21
|
+
one_to_many :cultivar, :key => :breeder_id
|
22
|
+
end
|
23
|
+
|
24
|
+
class Parentage < Sequel::Model(:parentage)
|
25
|
+
# A parentage is for a given cultivar; there can be multiple parentage records
|
26
|
+
# (type: father or mother), or one (type seedling) or none
|
27
|
+
#
|
28
|
+
many_to_one :cultivar, :class => :Cultivar, :key=>:cultivar_id
|
29
|
+
many_to_one :parent, :class=> :Cultivar, :key=>:parent_id
|
30
|
+
many_to_one :par_type, :class=>:ParentageType, :key => :ptype_id
|
31
|
+
|
32
|
+
end
|
33
|
+
|
34
|
+
### SERVER Part #############################
|
35
|
+
|
36
|
+
class ODataFiveApples < OData::ServerApp
|
37
|
+
publish_service do
|
38
|
+
|
39
|
+
title 'Five apples OData API'
|
40
|
+
name 'FiveApplesService'
|
41
|
+
namespace 'ODataFiveApples'
|
42
|
+
path_prefix '/odata'
|
43
|
+
|
44
|
+
publish_model Cultivar, :cultivar do
|
45
|
+
add_nav_prop_single :breeder
|
46
|
+
add_nav_prop_collection :parent
|
47
|
+
add_nav_prop_collection :child
|
48
|
+
end
|
49
|
+
publish_model Breeder, :breeder do add_nav_prop_collection :cultivar end
|
50
|
+
publish_model ParentageType, :par_type
|
51
|
+
publish_model Parentage, :parentage do
|
52
|
+
add_nav_prop_single :parent
|
53
|
+
add_nav_prop_single :cultivar
|
54
|
+
add_nav_prop_single :par_type
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
@@ -0,0 +1,41 @@
|
|
1
|
+
sap.ui.define([
|
2
|
+
"sap/ui/core/UIComponent",
|
3
|
+
"sap/ui/model/odata/ODataModel",
|
4
|
+
"sap/ui/model/resource/ResourceModel"
|
5
|
+
], function (UIComponent, ODataModel, ResourceModel) {
|
6
|
+
"use strict";
|
7
|
+
return UIComponent.extend("vibert.Component", {
|
8
|
+
metadata : { manifest: "json" },
|
9
|
+
id : "vibert.Component",
|
10
|
+
name : "vibert.Component",
|
11
|
+
parenstypusDescriptioMap : {},
|
12
|
+
init : function () {
|
13
|
+
// call the init function of the parent
|
14
|
+
UIComponent.prototype.init.apply(this, arguments);
|
15
|
+
|
16
|
+
|
17
|
+
// set OData model
|
18
|
+
|
19
|
+
var mParameters = new Map();
|
20
|
+
mParameters.json = true;
|
21
|
+
mParameters.tokenHandling = true;
|
22
|
+
// mParameters.disableHeadRequestForToken = true;
|
23
|
+
mParameters.useBatch = false; //not yet supported it says
|
24
|
+
mParameters.defaultBindingMode = "OneWay" ;
|
25
|
+
|
26
|
+
var oModel = new sap.ui.model.odata.v2.ODataModel("http://localhost:9494/odata", mParameters);
|
27
|
+
oModel.setTokenHandlingEnabled(true);
|
28
|
+
|
29
|
+
this.setModel(oModel);
|
30
|
+
|
31
|
+
// set i18n model
|
32
|
+
var i18nModel = new ResourceModel({ bundleName : "vibert.i18n.i18n" });
|
33
|
+
|
34
|
+
this.setModel(i18nModel, "i18n");
|
35
|
+
|
36
|
+
// create the views based on the url/hash
|
37
|
+
this.getRouter().initialize();
|
38
|
+
}
|
39
|
+
|
40
|
+
});
|
41
|
+
});
|
@@ -0,0 +1,68 @@
|
|
1
|
+
sap.ui.define(["sap/ui/core/mvc/Controller",
|
2
|
+
"sap/m/MessageToast",
|
3
|
+
"sap/ui/model/odata/ODataModel",
|
4
|
+
"sap/ui/commons/Dialog",
|
5
|
+
"sap/ui/model/resource/ResourceModel"],
|
6
|
+
function (Controller, MessageToast, ODataModel, Dialog, ResourceModel) {
|
7
|
+
"use strict";
|
8
|
+
return Controller.extend("vibert.controller.BreederList", {
|
9
|
+
|
10
|
+
|
11
|
+
onCreatePress: function (evt) {
|
12
|
+
|
13
|
+
var oRouter = sap.ui.core.UIComponent.getRouterFor(this);
|
14
|
+
oRouter.navTo( "breeder_create" );
|
15
|
+
|
16
|
+
},
|
17
|
+
|
18
|
+
onDeletePress: function (evt) {
|
19
|
+
var oTable = this.getView().byId("breeder_table");
|
20
|
+
var oModel = this.getView().getModel();
|
21
|
+
var iIndex = oTable.getSelectedIndex();
|
22
|
+
var mParms = {};
|
23
|
+
|
24
|
+
var oDeleteDialog = new sap.ui.commons.Dialog();
|
25
|
+
oDeleteDialog.setTitle("Delete breeder");
|
26
|
+
var oText = new sap.ui.commons.TextView({text: "Are you sure to delete this Breeder?"});
|
27
|
+
oDeleteDialog.addContent(oText);
|
28
|
+
oDeleteDialog.addButton(
|
29
|
+
new sap.ui.commons.Button({
|
30
|
+
text: "Confirm",
|
31
|
+
press:function(){
|
32
|
+
var mParms = {};
|
33
|
+
mParms.merge = true;
|
34
|
+
|
35
|
+
mParms.success = function(data, response){
|
36
|
+
oModel.refresh(); oDeleteDialog.close(); };
|
37
|
+
mParms.error = function(error){
|
38
|
+
oDeleteDialog.close();
|
39
|
+
MessageToast.show("Delete failed"); } ;
|
40
|
+
var sMsg;
|
41
|
+
if (iIndex < 0) {
|
42
|
+
sMsg = "no item selected";
|
43
|
+
} else {
|
44
|
+
|
45
|
+
sMsg = oTable.getContextByIndex(iIndex);
|
46
|
+
mParms.context = sMsg;
|
47
|
+
oModel.remove("",mParms); }
|
48
|
+
}
|
49
|
+
})
|
50
|
+
|
51
|
+
);
|
52
|
+
oDeleteDialog.open();
|
53
|
+
},
|
54
|
+
onSelectionChange: function (evt) {
|
55
|
+
var oTable = this.getView().byId("breeder_table");
|
56
|
+
var iIndex = oTable.getSelectedIndex();
|
57
|
+
|
58
|
+
var oCtxt = oTable.getContextByIndex(iIndex);
|
59
|
+
var sToPageId = oCtxt.getProperty("id") ;
|
60
|
+
|
61
|
+
var oRouter = sap.ui.core.UIComponent.getRouterFor(this);
|
62
|
+
// MessageToast.show(" navTo cultivar_detail -->"+sToPageId);
|
63
|
+
oRouter.navTo( "breeder_detail", {id: sToPageId} );
|
64
|
+
}
|
65
|
+
});
|
66
|
+
});
|
67
|
+
|
68
|
+
|
@@ -0,0 +1,82 @@
|
|
1
|
+
sap.ui.define([
|
2
|
+
"sap/ui/core/mvc/Controller",
|
3
|
+
"sap/m/MessageToast",
|
4
|
+
"sap/ui/core/routing/History"
|
5
|
+
], function (Controller, MessageToast, History) {
|
6
|
+
"use strict";
|
7
|
+
return Controller.extend("vibert.controller.Breeder_Create", {
|
8
|
+
onInit: function () {
|
9
|
+
this._oRouter = sap.ui.core.UIComponent.getRouterFor(this);
|
10
|
+
this._oRouter.getRoute("breeder_detail").attachPatternMatched(this._onDetailMatched, this);
|
11
|
+
this.byId('last_name').setValue("");
|
12
|
+
this.byId('first_name').setValue("");
|
13
|
+
|
14
|
+
},
|
15
|
+
onBeforeRendering : function (){
|
16
|
+
this.byId('last_name').setValue("");
|
17
|
+
this.byId('first_name').setValue("");
|
18
|
+
},
|
19
|
+
_onDetailMatched : function (oEvent) {
|
20
|
+
|
21
|
+
|
22
|
+
// twoway bindingmode has to be set from start on creation of the Model,
|
23
|
+
// otherwise it does not wotk apparently
|
24
|
+
// BindingMode: "TwoWay"});
|
25
|
+
|
26
|
+
},
|
27
|
+
_onBindingChange : function (oEvent) {
|
28
|
+
var oRouter = sap.ui.core.UIComponent.getRouterFor(this);
|
29
|
+
// No data for the binding
|
30
|
+
//if (!this.getView().getBindingContext()) {
|
31
|
+
// oRouter.navTo("notFound");
|
32
|
+
//}
|
33
|
+
},
|
34
|
+
onNavPress: function() {
|
35
|
+
var oHistory = History.getInstance();
|
36
|
+
var sPreviousHash = oHistory.getPreviousHash();
|
37
|
+
|
38
|
+
|
39
|
+
if (sPreviousHash !== undefined) {
|
40
|
+
// history contains a previous entry
|
41
|
+
window.history.go(-1);
|
42
|
+
} else { this._oRouter.navTo("breederList"); }
|
43
|
+
},
|
44
|
+
onCreate: function() {
|
45
|
+
|
46
|
+
var myForm = sap.ui.getCore().byId("breeder_create_form");
|
47
|
+
var sObjectPath = "/breeder" ;
|
48
|
+
var oView = this.getView() ;
|
49
|
+
var oModel = oView.getModel();
|
50
|
+
|
51
|
+
var oEntry = {};
|
52
|
+
|
53
|
+
oEntry.last_name = this.byId('last_name').getValue();
|
54
|
+
oEntry.first_name = this.byId('first_name').getValue();
|
55
|
+
|
56
|
+
|
57
|
+
function onSuccessHandler(){
|
58
|
+
oModel.refresh();
|
59
|
+
MessageToast.show("Create success");
|
60
|
+
}
|
61
|
+
function onErrorHandler(){
|
62
|
+
MessageToast.show("Create failed"); }
|
63
|
+
|
64
|
+
oModel.create( sObjectPath, oEntry, {success: onSuccessHandler, error: onErrorHandler } );
|
65
|
+
|
66
|
+
},
|
67
|
+
|
68
|
+
|
69
|
+
onNavBack: function () {
|
70
|
+
var oHistory = History.getInstance();
|
71
|
+
var sPreviousHash = oHistory.getPreviousHash();
|
72
|
+
|
73
|
+
|
74
|
+
if (sPreviousHash !== undefined) {
|
75
|
+
window.history.go(-1);
|
76
|
+
} else {
|
77
|
+
var oRouter = sap.ui.core.UIComponent.getRouterFor(this);
|
78
|
+
oRouter.navTo("breederList", true);
|
79
|
+
}
|
80
|
+
}
|
81
|
+
});
|
82
|
+
});
|
@@ -0,0 +1,89 @@
|
|
1
|
+
sap.ui.define([
|
2
|
+
"sap/ui/core/mvc/Controller",
|
3
|
+
"sap/m/MessageToast",
|
4
|
+
"sap/ui/core/routing/History"
|
5
|
+
], function (Controller, MessageToast, History) {
|
6
|
+
"use strict";
|
7
|
+
return Controller.extend("vibert.controller.Breeder_Detail", {
|
8
|
+
onInit: function () {
|
9
|
+
this._oRouter = sap.ui.core.UIComponent.getRouterFor(this);
|
10
|
+
this._oRouter.getRoute("breeder_detail").attachPatternMatched(this._onDetailMatched, this);
|
11
|
+
},
|
12
|
+
_onDetailMatched : function (oEvent) {
|
13
|
+
this._sObjectID = oEvent.getParameter("arguments").id ;
|
14
|
+
var sObjectPath = "/breeder(" + this._sObjectID + ")" ;
|
15
|
+
this._sObjectPath = sObjectPath;
|
16
|
+
var oView = this.getView();
|
17
|
+
var oModel = sap.ui.getCore().getModel();
|
18
|
+
oView.setModel(oModel);
|
19
|
+
oView.bindElement({ path: sObjectPath});
|
20
|
+
|
21
|
+
},
|
22
|
+
_onBindingChange : function (oEvent) { },
|
23
|
+
onCultivarSelectionChange: function() {
|
24
|
+
var oTable = this.byId("breeder_cultivar_table");
|
25
|
+
var iIndex = oTable.getSelectedIndex();
|
26
|
+
|
27
|
+
var oCtxt = oTable.getContextByIndex(iIndex);
|
28
|
+
var sToPageParID = oCtxt.getProperty("id") ;
|
29
|
+
var oRouter = sap.ui.core.UIComponent.getRouterFor(this);
|
30
|
+
oRouter.navTo( "cultivar_detail", {id: sToPageParID } );
|
31
|
+
|
32
|
+
},
|
33
|
+
|
34
|
+
onSave: function() {
|
35
|
+
var oView = this.getView();
|
36
|
+
var oModel = oView.getModel();
|
37
|
+
var sPath = this._sObjectPath;
|
38
|
+
var mParms = {};
|
39
|
+
var oEntry = {};
|
40
|
+
|
41
|
+
var oData = oModel.getData(sPath);
|
42
|
+
|
43
|
+
oEntry.last_name = this.byId('last_name').getValue();
|
44
|
+
oEntry.first_name = this.byId('first_name').getValue();
|
45
|
+
|
46
|
+
function onSuccessHandler(){
|
47
|
+
oModel.refresh();
|
48
|
+
oModel.updateBindings();
|
49
|
+
MessageToast.show("Update success");
|
50
|
+
}
|
51
|
+
function onErrorHandler(){ MessageToast.show("Update failed"); }
|
52
|
+
console.log("Model data:", oData);
|
53
|
+
console.log("View data:", oEntry);
|
54
|
+
console.log("Model has pending changes:", oModel.hasPendingChanges());
|
55
|
+
console.log("Pending changes:", oModel.getPendingChanges());
|
56
|
+
|
57
|
+
mParms.success = onSuccessHandler;
|
58
|
+
mParms.error = onErrorHandler;
|
59
|
+
mParms.merge = false;
|
60
|
+
oModel.setTokenHandlingEnabled(true);
|
61
|
+
oModel.updateSecurityToken();
|
62
|
+
oModel.update( this._sObjectPath, oEntry, mParms );
|
63
|
+
|
64
|
+
},
|
65
|
+
|
66
|
+
onCheck: function() {
|
67
|
+
var oView = this.getView();
|
68
|
+
var oModel = oView.getModel();
|
69
|
+
var sPath = this._sObjectPath;
|
70
|
+
var oData = oModel.getData(sPath);
|
71
|
+
console.log("Model data:", oData);
|
72
|
+
console.log("Model has pending changes:", oModel.hasPendingChanges());
|
73
|
+
console.log("Pending changes:",
|
74
|
+
oModel.getPendingChanges()); },
|
75
|
+
|
76
|
+
onNavBack: function () {
|
77
|
+
var oHistory = History.getInstance();
|
78
|
+
var sPreviousHash = oHistory.getPreviousHash();
|
79
|
+
|
80
|
+
|
81
|
+
if (sPreviousHash !== undefined) {
|
82
|
+
window.history.go(-1);
|
83
|
+
} else {
|
84
|
+
var oRouter = sap.ui.core.UIComponent.getRouterFor(this);
|
85
|
+
oRouter.navTo("breederList", true);
|
86
|
+
}
|
87
|
+
}
|
88
|
+
});
|
89
|
+
});
|
@@ -0,0 +1,46 @@
|
|
1
|
+
sap.ui.define(["sap/ui/core/mvc/Controller",
|
2
|
+
"sap/m/MessageToast",
|
3
|
+
"sap/ui/model/odata/ODataModel",
|
4
|
+
"sap/ui/model/resource/ResourceModel"],
|
5
|
+
function (Controller, MessageToast, ODataModel, ResourceModel) {
|
6
|
+
"use strict";
|
7
|
+
return Controller.extend("vibert.controller.CultivarList", {
|
8
|
+
|
9
|
+
|
10
|
+
onInit : function() {
|
11
|
+
|
12
|
+
},
|
13
|
+
onCreatePress: function (evt) {
|
14
|
+
|
15
|
+
var oRouter = sap.ui.core.UIComponent.getRouterFor(this);
|
16
|
+
oRouter.navTo( "cultivar_create" );
|
17
|
+
|
18
|
+
},
|
19
|
+
|
20
|
+
|
21
|
+
onSelectionChange: function (evt) {
|
22
|
+
var oTable = this.getView().byId("cultivar_table");
|
23
|
+
var iIndex = oTable.getSelectedIndex();
|
24
|
+
|
25
|
+
var oCtxt = oTable.getContextByIndex(iIndex);
|
26
|
+
var sToPageId = oCtxt.getProperty("id") ;
|
27
|
+
|
28
|
+
var oRouter = sap.ui.core.UIComponent.getRouterFor(this);
|
29
|
+
// MessageToast.show(" navTo cultivar_detail -->"+sToPageId);
|
30
|
+
oRouter.navTo( "cultivar_detail", {id: sToPageId} );
|
31
|
+
},
|
32
|
+
//onDisplayPress: function (evt) {
|
33
|
+
//var oTable = this.getView().byId("cultivar_table");
|
34
|
+
//var iIndex = oTable.getSelectedIndex();
|
35
|
+
|
36
|
+
//var oCtxt = oTable.getContextByIndex(iIndex);
|
37
|
+
//var sToPageId = oCtxt.getProperty("ID") ;
|
38
|
+
|
39
|
+
//var oRouter = sap.ui.core.UIComponent.getRouterFor(this);
|
40
|
+
//// MessageToast.show(" navTo cultivar_detail -->"+sToPageId);
|
41
|
+
//oRouter.navTo( "cultivar_detail", {ID: sToPageId} );
|
42
|
+
//}
|
43
|
+
});
|
44
|
+
});
|
45
|
+
|
46
|
+
|
@@ -0,0 +1,100 @@
|
|
1
|
+
sap.ui.define([
|
2
|
+
"sap/ui/core/mvc/Controller",
|
3
|
+
"sap/m/MessageToast",
|
4
|
+
"sap/ui/core/routing/History"
|
5
|
+
], function (Controller, MessageToast, History) {
|
6
|
+
"use strict";
|
7
|
+
return Controller.extend("vibert.controller.Cultivar_Create", {
|
8
|
+
onInit: function () {
|
9
|
+
|
10
|
+
var oRouter = sap.ui.core.UIComponent.getRouterFor(this);
|
11
|
+
this._oRouter = oRouter;
|
12
|
+
},
|
13
|
+
|
14
|
+
onCreatePress: function() {
|
15
|
+
|
16
|
+
var myForm = sap.ui.getCore().byId("cultivar_create_form");
|
17
|
+
var sObjectPath = "/cultivar" ;
|
18
|
+
var oView = this.getView() ;
|
19
|
+
var oModel = oView.getModel();
|
20
|
+
|
21
|
+
var oEntry = {};
|
22
|
+
|
23
|
+
oEntry.name = this.byId('name').getValue();
|
24
|
+
oEntry.common_name = this.byId('common_name').getValue();
|
25
|
+
oEntry.year = this.byId('year').getValue();
|
26
|
+
oEntry.breeder_ID = this.byId('breeder_ID').getValue();
|
27
|
+
var _that = this;
|
28
|
+
|
29
|
+
function onSuccessHandler(data){
|
30
|
+
oModel.refresh();
|
31
|
+
_that.byId('name').setValue("");
|
32
|
+
_that.byId('common_name').setValue("");
|
33
|
+
_that.byId('year').setValue("");
|
34
|
+
_that.byId('breeder_ID').setValue("");
|
35
|
+
MessageToast.show("Create success");
|
36
|
+
_that._oRouter.navTo( "cultivar_detail", {ID: data.ID} );
|
37
|
+
}
|
38
|
+
function onErrorHandler(){
|
39
|
+
MessageToast.show("Create failed"); }
|
40
|
+
|
41
|
+
oModel.create( sObjectPath, oEntry,
|
42
|
+
{success: onSuccessHandler, error: onErrorHandler } );
|
43
|
+
|
44
|
+
},
|
45
|
+
|
46
|
+
|
47
|
+
onNavBack: function () {
|
48
|
+
var oHistory = History.getInstance();
|
49
|
+
var sPreviousHash = oHistory.getPreviousHash();
|
50
|
+
|
51
|
+
if (sPreviousHash !== undefined) {
|
52
|
+
window.history.go(-1);
|
53
|
+
} else {
|
54
|
+
this._oRouter.navTo("cultivarList", true);
|
55
|
+
}
|
56
|
+
},
|
57
|
+
|
58
|
+
inputId : "",
|
59
|
+
inputDescrId: "",
|
60
|
+
|
61
|
+
onBreederIDValueHelp : function (oEvent) {
|
62
|
+
|
63
|
+
this.inputId = oEvent.getSource().getId();
|
64
|
+
this.inputDescrId = this.inputId + "_descr";
|
65
|
+
|
66
|
+
// create value help dialog
|
67
|
+
if (!this._valueHelpDialog) {
|
68
|
+
this._valueHelpDialog = sap.ui.xmlfragment(
|
69
|
+
"vibert.view.BreederOptio", this );
|
70
|
+
|
71
|
+
this.getView().addDependent(this._valueHelpDialog);
|
72
|
+
}
|
73
|
+
|
74
|
+
this._valueHelpDialog.open( '' );
|
75
|
+
},
|
76
|
+
|
77
|
+
_handleValueHelpSearch : function (evt) {
|
78
|
+
var sValue = evt.getParameter("value");
|
79
|
+
var oFilter = new Filter( "name",
|
80
|
+
sap.ui.model.FilterOperator.Contains, sValue
|
81
|
+
);
|
82
|
+
evt.getSource().getBinding("items").filter([oFilter]);
|
83
|
+
},
|
84
|
+
|
85
|
+
_handleValueHelpClose : function (evt) {
|
86
|
+
var oSelectedItem = evt.getParameter("selectedItem");
|
87
|
+
if (oSelectedItem) {
|
88
|
+
var IDInput = this.getView().byId(this.inputId);
|
89
|
+
IDInput.setValue(oSelectedItem.getDescription());
|
90
|
+
|
91
|
+
var oText = this.getView().byId(this.inputDescrId);
|
92
|
+
oText.setText(oSelectedItem.getTitle());
|
93
|
+
|
94
|
+
}
|
95
|
+
evt.getSource().getBinding("items").filter([]);
|
96
|
+
|
97
|
+
}
|
98
|
+
|
99
|
+
});
|
100
|
+
});
|