]> git.proxmox.com Git - extjs.git/blame - extjs/examples/modern/touchtomatoes/app/controller/Main.js
add extjs 6.0.1 sources
[extjs.git] / extjs / examples / modern / touchtomatoes / app / controller / Main.js
CommitLineData
6527f429
DM
1Ext.define('TouchTomatoes.controller.Main', {\r
2 extend: 'Ext.app.Controller',\r
3 requires: ["TouchTomatoes.view.MovieDetails", "Ext.util.InputBlocker"],\r
4\r
5 config: {\r
6 refs: {\r
7 main: 'main',\r
8 moviesList: 'moviesearch > list',\r
9 searchField: 'moviesearch > toolbar > formpanel > searchfield'\r
10 },\r
11\r
12 control: {\r
13 searchField: {\r
14 action: 'onSearch'\r
15 },\r
16\r
17 'movieslistview > toolbar > button': {\r
18 tap: function() {\r
19 Ext.Viewport.toggleMenu("left");\r
20 }\r
21 },\r
22\r
23 'menu > button': {\r
24 tap: function(btn) {\r
25 var newActiveItem = Ext.ComponentQuery.query("movieslistview[menu="+btn.getMenu()+"]"),\r
26 main = this.getMain();\r
27\r
28 newActiveItem = newActiveItem.length > 0 ? newActiveItem[0] : null;\r
29 if(newActiveItem) {\r
30 main.setActiveItem(newActiveItem);\r
31 Ext.Viewport.hideAllMenus();\r
32\r
33 Ext.Viewport.getTranslatable().on('animationend', function() {\r
34 var list = newActiveItem.down("list"),\r
35 store;\r
36 if(list) {\r
37 store = list.getStore();\r
38 if(!store.isLoaded()) {\r
39 store.load();\r
40 }\r
41 }\r
42 }, this, {single:true});\r
43 }\r
44 }\r
45 },\r
46 'moviedetails': {\r
47 swipe: function(moviedetails, e) {\r
48 var target = Ext.fly(e.target);\r
49 if (target.findParent('.x-scroll-container', 10, true)) return;\r
50 if (e.direction === "up") {\r
51 moviedetails.hide();\r
52 }\r
53 }\r
54 },\r
55 'moviedetails > button[action="close"]': {\r
56 tap: function(button) {\r
57 var details = button.up("moviedetails");\r
58 details.hide();\r
59 Ext.util.InputBlocker.unblockInputs();\r
60 }\r
61 },\r
62 'movieslistview > list': {\r
63 itemtap: function(list, index, item, record, event) {\r
64 this._movieDetails = this.getMovieDetails();\r
65 this._movieDetails.setRecord(record);\r
66 Ext.Viewport.add(this._movieDetails);\r
67 Ext.util.InputBlocker.blockInputs();\r
68\r
69 this._movieDetails.on({\r
70 show: {\r
71 fn: function() {\r
72 list.deselectAll(true);\r
73 },\r
74 scope: this,\r
75 single: true\r
76 }\r
77 });\r
78\r
79 this._movieDetails.show();\r
80 }\r
81 }\r
82 }\r
83 },\r
84\r
85 onSearch: function() {\r
86 var searchField = this.getSearchField();\r
87 this.fireAction('search', [searchField.getValue()], 'doSearch');\r
88 },\r
89\r
90 doSearch: function(search) {\r
91 search = search.replace(/^\s+|\s+$/g, '');\r
92 if (search.length <= 0) return;\r
93 var moviesList = this.getMoviesList(),\r
94 moviesStore = moviesList.getStore();\r
95 moviesStore.currentPage = 1;\r
96 moviesStore.filter('query', search);\r
97\r
98 moviesList.setScrollToTopOnRefresh(true);\r
99 moviesStore.load();\r
100 },\r
101\r
102 getMovieDetails: function() {\r
103 if (!this._movieDetails) {\r
104 this._movieDetails = Ext.create("TouchTomatoes.view.MovieDetails");\r
105 }\r
106 return this._movieDetails;\r
107 }\r
108});\r