123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- <!DOCTYPE html>
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>The source code</title>
- <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />
- <script type="text/javascript" src="../resources/prettify/prettify.js"></script>
- <style type="text/css">
- .highlight { display: block; background-color: #ddd; }
- </style>
- <script type="text/javascript">
- function highlight() {
- document.getElementById(location.hash.replace(/#/, "")).className = "highlight";
- }
- </script>
- </head>
- <body onload="prettyPrint(); highlight();">
- <pre class="prettyprint lang-js"><span id='Ext-ux-ajax-XmlSimlet'>/**
- </span> * This class simulates XML-based requests.
- */
- Ext.define('Ext.ux.ajax.XmlSimlet', {
- extend: 'Ext.ux.ajax.DataSimlet',
- alias: 'simlet.xml',
- <span id='Ext-ux-ajax-XmlSimlet-property-xmlTpl'> /**
- </span> * This template is used to populate the XML response. The configuration of the Reader
- * is available so that its `root` and `record` properties can be used as well as the
- * `fields` of the associated `model`. But beyond that, the way these pieces are put
- * together in the document requires the flexibility of a template.
- */
- xmlTpl: [
- '<{root}>\n',
- '<tpl for="data">',
- ' <{parent.record}>\n',
- '<tpl for="parent.fields">',
- ' <{name}>{[parent[values.name]]}</{name}>\n',
- '</tpl>',
- ' </{parent.record}>\n',
- '</tpl>',
- '</{root}>'
- ],
- doGet: function (ctx) {
- var me = this,
- data = me.getData(ctx),
- page = me.getPage(ctx, data),
- reader = ctx.xhr.options.proxy.reader,
- ret = me.callParent(arguments), // pick up status/statusText
- response = {
- data: page,
- reader: reader,
- fields: reader.model.getFields(),
- root: reader.root,
- record: reader.record
- };
- if (ctx.groupSpec) {
- response.summaryData = me.getSummary(ctx, data, page);
- }
- var tpl = Ext.XTemplate.getTpl(me, 'xmlTpl'),
- xml = tpl.apply(response),
- doc;
- if (typeof DOMParser != 'undefined') {
- doc = (new DOMParser()).parseFromString(xml, "text/xml");
- } else {
- // IE doesn't have DOMParser, but fortunately, there is an ActiveX for XML
- doc = new ActiveXObject("Microsoft.XMLDOM");
- doc.async = false;
- doc.loadXML(xml);
- }
- ret.responseText = xml;
- ret.responseXML = doc;
- return ret;
- }
- });
- </pre>
- </body>
- </html>
|