1 | <!DOCTYPE html> |
---|
2 | <html> |
---|
3 | <head> |
---|
4 | <meta http-equiv="Content-type" content="text/html; charset=utf-8"> |
---|
5 | <title>Static Master/Detail Pattern -- Multiple Address Detail example</title> |
---|
6 | <script> |
---|
7 | require = { |
---|
8 | parseOnLoad: 0, |
---|
9 | isDebug: 1, |
---|
10 | async: 1, |
---|
11 | mvc: {debugBindings: 1} |
---|
12 | }; |
---|
13 | </script> |
---|
14 | <script src="../../../dojo/dojo.js" type="text/javascript"></script> |
---|
15 | <style type="text/css"> |
---|
16 | @import "css/app-format.css"; |
---|
17 | @import "../../../dijit/themes/claro/claro.css"; |
---|
18 | </style> |
---|
19 | <script type="text/javascript"> |
---|
20 | require([ |
---|
21 | "dojo/_base/declare", |
---|
22 | "dojo/parser", |
---|
23 | "dojox/mvc/getStateful", |
---|
24 | "dojox/mvc/EditModelRefController", |
---|
25 | "dojox/mvc/ListController", |
---|
26 | "dijit/form/Button", |
---|
27 | "dijit/form/TextBox", |
---|
28 | "dojox/mvc/Output", |
---|
29 | "dojox/mvc/Group" |
---|
30 | ], function(declare, parser, getStateful, EditModelRefController, ListController){ |
---|
31 | var clz = declare([EditModelRefController, ListController], {}); |
---|
32 | ctrl = new clz({ |
---|
33 | sourceModel: getStateful({ |
---|
34 | Serial: "360324", |
---|
35 | First: "John", |
---|
36 | Last: "Doe", |
---|
37 | Email: "jdoe@example.com", |
---|
38 | ShipTo: { |
---|
39 | Type: "Home", |
---|
40 | Address: { |
---|
41 | Street: "123 Valley Rd", |
---|
42 | City: "Katonah", |
---|
43 | State: "NY", |
---|
44 | Zip: "10536" |
---|
45 | }, |
---|
46 | Telephone: { |
---|
47 | AreaCode: "123", |
---|
48 | Landline: { |
---|
49 | Number: "456-7890", |
---|
50 | Extension: "42" |
---|
51 | }, |
---|
52 | Cell: { |
---|
53 | Number: "765-4321" |
---|
54 | } |
---|
55 | } |
---|
56 | }, |
---|
57 | BillTo: { |
---|
58 | Type: "Office", |
---|
59 | Address: { |
---|
60 | Street: "17 Skyline Dr", |
---|
61 | City: "Hawthorne", |
---|
62 | State: "NY", |
---|
63 | Zip: "10532" |
---|
64 | }, |
---|
65 | Telephone: { |
---|
66 | AreaCode: "098", |
---|
67 | Landline: { |
---|
68 | Number: "765-4321", |
---|
69 | Extension: "24" |
---|
70 | }, |
---|
71 | Cell: { |
---|
72 | Number: "123-4567" |
---|
73 | } |
---|
74 | } |
---|
75 | } |
---|
76 | }), |
---|
77 | cursorIndex: 'ShipTo' |
---|
78 | }); |
---|
79 | parser.parse(); |
---|
80 | }); |
---|
81 | </script> |
---|
82 | </head> |
---|
83 | <body class="claro"> |
---|
84 | <script type="dojo/require">at: "dojox/mvc/at"</script> |
---|
85 | <div id="wrapper"> |
---|
86 | <div id="header"> |
---|
87 | <div id="navigation"></div> |
---|
88 | <div id="headerInsert"> |
---|
89 | <h1>Order Shipping Details</h1> |
---|
90 | <h2>Data Binding Example - Hierarchical data.</h2> |
---|
91 | </div> |
---|
92 | </div> |
---|
93 | <div id="main"> |
---|
94 | <div id="leftNav"></div> |
---|
95 | <div id="mainContent"> |
---|
96 | <div class="row" data-dojo-type="dojox.mvc.Group" data-dojo-props="target: at(ctrl, 'model')"> |
---|
97 | <div class="row"> |
---|
98 | <label class="cell" for="serialInput">Order #:</label> |
---|
99 | <input class="cell" id="serialInput" data-dojo-type="dijit.form.TextBox" data-dojo-props="value: at('rel:', 'Serial')"/> |
---|
100 | </div> |
---|
101 | <div class="row"> |
---|
102 | <label class="cell" for="lastnameInput">Last name:</label> |
---|
103 | <input class="cell" id="lastnameInput" data-dojo-type="dijit.form.TextBox" data-dojo-props="value: at('rel:', 'Last')"/> |
---|
104 | </div> |
---|
105 | <div class="row"> |
---|
106 | <label class="cell" for="emailInput">Email:</label> |
---|
107 | <input class="cell" id="emailInput" data-dojo-type="dijit.form.TextBox" data-dojo-props="value: at('rel:', 'Email')"/> |
---|
108 | </div> |
---|
109 | </div> |
---|
110 | <br/> |
---|
111 | Choose: |
---|
112 | <button type="button" data-dojo-type="dijit.form.Button" data-dojo-props="onClick: function(){ ctrl.set('cursorIndex', 'ShipTo'); }">Ship To</button> |
---|
113 | <button type="button" data-dojo-type="dijit.form.Button" data-dojo-props="onClick: function(){ ctrl.set('cursorIndex', 'BillTo'); }">Bill To</button> |
---|
114 | <br/> |
---|
115 | <div class="row"> |
---|
116 | <label class="cell" for="addrLabel">Selected Address:</label> |
---|
117 | <div class="cell" data-dojo-type="dojox.mvc.Output" id="addrLabel" data-dojo-props="value: at(ctrl, 'cursorIndex')"/></div> |
---|
118 | </div> |
---|
119 | <br/> |
---|
120 | <div id="addrGroup" data-dojo-type="dojox.mvc.Group" data-dojo-props="target: at(ctrl, 'cursor')"> |
---|
121 | <div class="row"> |
---|
122 | <label class="cell" for="typeInput">Type:</label> |
---|
123 | <input class="cell" id="typeInput" data-dojo-type="dijit.form.TextBox" data-dojo-props="value: at('rel:', 'Type')"/> |
---|
124 | </div> |
---|
125 | <div id="postalGroup" data-dojo-type="dojox.mvc.Group" data-dojo-props="target: at('rel:', 'Address')"> |
---|
126 | <div class="row"> |
---|
127 | <label class="cell" for="streetInput">Street:</label> |
---|
128 | <input class="cell" id="streetInput" data-dojo-type="dijit.form.TextBox" data-dojo-props="value: at('rel:', 'Street')"/> |
---|
129 | </div> |
---|
130 | <div class="row"> |
---|
131 | <label class="cell" for="cityInput">City:</label> |
---|
132 | <input class="cell" id="cityInput" data-dojo-type="dijit.form.TextBox" data-dojo-props="value: at('rel:', 'City')"/> |
---|
133 | </div> |
---|
134 | <div class="row"> |
---|
135 | <label class="cell" for="stateInput">State:</label> |
---|
136 | <input class="cell" id="stateInput" data-dojo-type="dijit.form.TextBox" data-dojo-props="value: at('rel:', 'State')"/> |
---|
137 | </div> |
---|
138 | <div class="row"> |
---|
139 | <label class="cell" for="zipInput">Zipcode:</label> |
---|
140 | <input class="cell" id="zipInput" data-dojo-type="dijit.form.TextBox" data-dojo-props="value: at('rel:', 'Zip')"/> |
---|
141 | </div> |
---|
142 | </div> |
---|
143 | <div id="telGroup" data-dojo-type="dojox.mvc.Group" data-dojo-props="target: at('rel:', 'Telephone')"> |
---|
144 | <div class="row"> |
---|
145 | <label class="cell" for="areacodeInput">Area code:</label> |
---|
146 | <input class="cell" id="areacodeInput" data-dojo-type="dijit.form.TextBox" data-dojo-props="value: at('rel:', 'AreaCode')"/> |
---|
147 | </div> |
---|
148 | <div id="llGroup" data-dojo-type="dojox.mvc.Group" data-dojo-props="target: at('rel:', 'Landline')"> |
---|
149 | <div class="row"> |
---|
150 | <label class="cell" for="numberInput">Landline Number:</label> |
---|
151 | <input class="cell" id="numberInput" data-dojo-type="dijit.form.TextBox" data-dojo-props="value: at('rel:', 'Number')"/> |
---|
152 | </div> |
---|
153 | <div class="row"> |
---|
154 | <label class="cell" for="extInput">Extension:</label> |
---|
155 | <input class="cell" id="extInput" data-dojo-type="dijit.form.TextBox" data-dojo-props="value: at('rel:', 'Extension')"/> |
---|
156 | </div> |
---|
157 | </div> |
---|
158 | <div class="row" id="cellGroup" data-dojo-type="dojox.mvc.Group" data-dojo-props="target: at('rel:', 'Cell')"> |
---|
159 | <label class="cell" for="cellInput">Cell Number:</label> |
---|
160 | <input class="cell" id="cellInput" data-dojo-type="dijit.form.TextBox" data-dojo-props="value: at('rel:', 'Number')"/> |
---|
161 | </div> |
---|
162 | </div> |
---|
163 | <br/> |
---|
164 | Model: |
---|
165 | <button id="reset" type="button" data-dojo-type="dijit.form.Button" data-dojo-props="onClick: function(){ ctrl.reset(); }">Reset</button> |
---|
166 | </div> |
---|
167 | </div> |
---|
168 | </div> |
---|
169 | </div> |
---|
170 | </body> |
---|
171 | </html> |
---|