]>
git.proxmox.com Git - extjs.git/blob - extjs/build/examples/classic/data/associations.js
4 'Ext.layout.container.Card',
5 'Ext.tip.QuickTipManager'
8 Ext
.define('Customer', {
9 extend
: 'Ext.data.Model',
26 extend
: 'Ext.data.Model',
38 belongsTo
: 'Customer',
50 Ext
.define('OrderItem', {
51 extend
: 'Ext.data.Model',
72 Ext
.define('CustomerGrid', {
73 extend
: 'Ext.grid.Panel',
74 alias
: 'widget.customergrid',
78 initComponent: function(){
85 Logger
.log('Customer store loaded', false);
107 handler
: this.loadOrders
,
113 this.getSelectionModel().on('selectionchange', this.onSelectChange
, this);
116 onSelectChange: function(selModel
, selections
) {
117 this.active
= selections
[0];
118 this.down('#load').setDisabled(!this.active
);
121 loadOrders: function(){
122 var rec
= this.active
,
123 name
= rec
.get('name'),
124 owner
= this.ownerCt
,
128 orders
= rec
.orders();
129 if (orders
.isLoading()) {
130 Logger
.log('Begin loading orders: ' + rec
.getId(), true);
132 orders
.on('load', function(){
133 Logger
.log('Order store loaded - ' + rec
.getId(), false);
136 title
: 'Orders - ' + rec
.getId(),
141 owner
.getLayout().next();
145 Ext
.define('OrderGrid', {
146 extend
: 'Ext.grid.Panel',
147 alias
: 'widget.ordergrid',
149 initComponent: function(){
158 renderer
: Ext
.util
.Format
.dateRenderer('Y-m-d')
165 handler
: this.onBackClick
168 text
: 'Load Order Items',
170 handler
: this.loadItems
,
176 this.getSelectionModel().on('selectionchange', this.onSelectChange
, this);
179 onBackClick: function(){
180 this.ownerCt
.getLayout().prev();
184 onSelectChange: function(selModel
, selections
) {
185 this.active
= selections
[0];
186 this.down('#load').setDisabled(!this.active
);
189 loadItems: function(){
190 var rec
= this.active
,
191 owner
= this.ownerCt
,
194 orderitems
= rec
.orderItems();
195 if (orderitems
.isLoading()) {
196 Logger
.log('Begin loading order items - ' + rec
.getId(), true);
198 orderitems
.on('load', function(){
199 Logger
.log('Order items loaded - ' + rec
.getId(), false);
202 title
: 'Order Items - ' + rec
.getId(),
203 xtype
: 'orderitemgrid',
206 owner
.getLayout().next();
210 Ext
.define('OrderItemGrid', {
211 extend
: 'Ext.grid.Panel',
212 alias
: 'widget.orderitemgrid',
214 initComponent: function(){
225 dataIndex
: 'quantity'
229 renderer
: Ext
.util
.Format
.usMoney
236 handler
: this.onBackClick
239 text
: 'Parent association loader',
240 tooltip
: 'Demonstrate loading parent relationships - A new record will be created so we ignore any previous associations setup',
242 handler
: this.onLoadClick
,
248 this.getSelectionModel().on('selectionchange', this.onSelectChange
, this);
251 onSelectChange: function(selModel
, selections
) {
252 this.active
= selections
[0];
253 this.down('#load').setDisabled(!this.active
);
256 onBackClick: function(){
257 this.ownerCt
.getLayout().prev();
261 onLoadClick: function(){
262 var rec
= this.active
,
269 title
: this.title
.replace('Order Items', 'Order Item ' + id
),
270 orderItemData
: rec
.data
,
276 Ext
.define('ItemLoader', {
277 extend
: 'Ext.window.Window',
279 initComponent: function(){
286 text
: 'Print order detail',
288 handler
: this.onOrderClick
291 text
: 'Print company detail',
294 handler
: this.onCompanyClick
298 tpl
: '<div>{type} {id} - {value}</div>',
299 tplWriteMode
: 'append'
302 this.orderItem
= new OrderItem(this.orderItemData
);
305 onOrderClick: function(){
306 var id
= this.orderItem
.get('order_id'),
307 hasOrder
= !!this.order
;
310 Logger
.log('Begin loading order - ' + id
, true);
312 this.orderItem
.getOrder({
314 success: function(order
){
316 this.down('#company').enable();
318 Logger
.log('Order loaded - ' + id
, false);
323 value
: Ext
.Date
.format(order
.get('date'), 'Y-m-d')
329 onCompanyClick: function(){
330 var id
= this.order
.get('customer_id'),
331 hasCustomer
= !!this.customer
;
334 Logger
.log('Begin loading customer - ' + id
, true);
336 this.order
.getCustomer({
338 success: function(customer
){
339 this.customer
= customer
;
341 Logger
.log('Customer loaded - ' + id
, false);
345 id
: customer
.getId(),
346 value
: customer
.get('name')
353 Logger
= (function(){
361 log: function(msg
, isStart
){
364 cls
: isStart
? 'beforeload' : 'afterload',
367 panel
.body
.scroll('b', 100000, true);
372 Ext
.onReady(function(){
374 var main
= Ext
.create('Ext.panel.Panel', {
375 renderTo
: document
.body
,
391 tplWriteMode
: 'append',
392 tpl
: '<div class="{cls}">[{now:date("H:i:s")}] - {msg}</div>',
400 Logger
.log('Begin loading customer store', true);
401 main
.items
.first().add({
402 xtype
: 'customergrid'