]> git.proxmox.com Git - extjs.git/blame - extjs/examples/classic/locale/multi-lang.js
add extjs 6.0.1 sources
[extjs.git] / extjs / examples / classic / locale / multi-lang.js
CommitLineData
6527f429
DM
1Ext.require([\r
2 'Ext.data.*',\r
3 'Ext.tip.QuickTipManager',\r
4 'Ext.form.*',\r
5 'Ext.grid.Panel'\r
6]);\r
7\r
8Ext.onReady(function(){\r
9 MultiLangDemo = (function() {\r
10 // get the selected language code parameter from url (if exists)\r
11 var params = Ext.urlDecode(window.location.search.substring(1));\r
12 //Ext.form.Field.prototype.msgTarget = 'side';\r
13\r
14 return {\r
15 init: function() {\r
16 Ext.tip.QuickTipManager.init();\r
17\r
18 /* Language chooser combobox */\r
19 var store = Ext.create('Ext.data.ArrayStore', {\r
20 fields: ['code', 'language'],\r
21 data : Ext.exampledata.languages // from languages.js\r
22 });\r
23\r
24 var combo = Ext.create('Ext.form.field.ComboBox', {\r
25 renderTo: 'languages',\r
26 store: store,\r
27 displayField:'language',\r
28 queryMode: 'local',\r
29 emptyText: 'Select a language...',\r
30 hideLabel: true,\r
31 listeners: {\r
32 select: function(cb, record) {\r
33 var search = location.search,\r
34 index = search.indexOf('&'),\r
35 params = Ext.urlEncode({'lang': record.get('code')});\r
36\r
37 location.search = (index === -1) ? params : params + search.substr(index);\r
38 }\r
39 }\r
40 });\r
41\r
42 var record, url;\r
43\r
44 if (params.lang) {\r
45 // check if there's really a language with that language code\r
46 record = store.findRecord('code', params.lang, null, null, null, true);\r
47 // if language was found in store assign it as current value in combobox\r
48 if (record) {\r
49 combo.setValue(record.data.language);\r
50 }\r
51\r
52 url = Ext.util.Format.format('../../../' + (Ext.devMode ? 'build/' : '') + 'classic/locale/locale-{0}.js', params.lang);\r
53\r
54 Ext.Loader.loadScript({\r
55 url: url,\r
56 onLoad: this.onSuccess,\r
57 onError: this.onFailure,\r
58 scope: this\r
59 }\r
60 );\r
61 } else {\r
62 this.setupDemo();\r
63 }\r
64 },\r
65 onSuccess: function() {\r
66 var me = this;\r
67 // Give the locale file onReady a chance to process\r
68 setTimeout(function() {\r
69 me.setupDemo();\r
70 }, 1);\r
71 },\r
72 onFailure: function() {\r
73 Ext.Msg.alert('Failure', 'Failed to load locale file.');\r
74 this.setupDemo();\r
75 },\r
76 setupDemo: function() {\r
77 // Grid needs to be this wide to handle the largest language case for the toolbar.\r
78 // In this case, it's Russian.\r
79\r
80 var width = 720;\r
81 /* Email field */\r
82 Ext.create('Ext.FormPanel', {\r
83 renderTo: 'emailfield',\r
84 labelWidth: 100, // label settings here cascade unless overridden\r
85 frame: true,\r
86 title: 'Email Field',\r
87 bodyPadding: '5 5 0',\r
88 width: width,\r
89 defaults: {\r
90 msgTarget: 'side',\r
91 width: width - 40\r
92 },\r
93 defaultType: 'textfield',\r
94 items: [{\r
95 fieldLabel: 'Email',\r
96 name: 'email',\r
97 vtype: 'email'\r
98 }]\r
99 });\r
100\r
101 /* Datepicker */\r
102 Ext.create('Ext.FormPanel', {\r
103 renderTo: 'datefield',\r
104 labelWidth: 100, // label settings here cascade unless overridden\r
105 frame: true,\r
106 title: 'Datepicker',\r
107 bodyPadding: '5 5 0',\r
108 width: width,\r
109 defaults: {\r
110 msgTarget: 'side',\r
111 width: width - 40\r
112 },\r
113 defaultType: 'datefield',\r
114 items: [{\r
115 fieldLabel: 'Date',\r
116 name: 'date'\r
117 }]\r
118 });\r
119\r
120 // shorthand alias \r
121 var monthArray = Ext.Array.map(Ext.Date.monthNames, function (e) { return [e]; });\r
122 var ds = Ext.create('Ext.data.Store', {\r
123 fields: ['month'],\r
124 remoteSort: true,\r
125 pageSize: 6,\r
126 proxy: {\r
127 type: 'memory',\r
128 enablePaging: true,\r
129 data: monthArray,\r
130 reader: {\r
131 type: 'array'\r
132 }\r
133 }\r
134 });\r
135\r
136 Ext.create('Ext.grid.Panel', {\r
137 renderTo: 'grid',\r
138 width: width,\r
139 height: 330,\r
140 title:'Month Browser',\r
141 columns:[{\r
142 text: 'Month of the year',\r
143 dataIndex: 'month',\r
144 width: 240\r
145 }],\r
146 store: ds,\r
147 bbar: Ext.create('Ext.toolbar.Paging', {\r
148 pageSize: 6,\r
149 store: ds,\r
150 displayInfo: true\r
151 })\r
152 });\r
153\r
154 // trigger the data store load\r
155 ds.load();\r
156 }\r
157 };\r
158\r
159 })();\r
160 MultiLangDemo.init();\r
161});\r