Some additional cleanup of event names and fixing of the bubbles property not being placed in the right place. TODO in a follow-up change: + Comments are not considered in context, yet. So if there is a comment made in a span of common lines that are hidden, it will be there underneath the context control but wont show the code. Feature: Issue 3649 Change-Id: I8117b243a7d8d529e0c1cea155a4b6b436c0c768
		
			
				
	
	
		
			101 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			101 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
<!--
 | 
						|
Copyright (C) 2015 The Android Open Source Project
 | 
						|
 | 
						|
Licensed under the Apache License, Version 2.0 (the "License");
 | 
						|
you may not use this file except in compliance with the License.
 | 
						|
You may obtain a copy of the License at
 | 
						|
 | 
						|
http://www.apache.org/licenses/LICENSE-2.0
 | 
						|
 | 
						|
Unless required by applicable law or agreed to in writing, software
 | 
						|
distributed under the License is distributed on an "AS IS" BASIS,
 | 
						|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
						|
See the License for the specific language governing permissions and
 | 
						|
limitations under the License.
 | 
						|
-->
 | 
						|
 | 
						|
<link rel="import" href="../bower_components/polymer/polymer.html">
 | 
						|
<link rel="import" href="../bower_components/iron-ajax/iron-ajax.html">
 | 
						|
 | 
						|
<dom-module id="gr-ajax">
 | 
						|
  <template>
 | 
						|
    <iron-ajax id="xhr"
 | 
						|
        auto="[[auto]]"
 | 
						|
        url="[[url]]"
 | 
						|
        params="[[params]]"
 | 
						|
        json-prefix=")]}'"
 | 
						|
        last-response="{{lastResponse}}"
 | 
						|
        loading="{{loading}}"
 | 
						|
        on-response="_handleResponse"
 | 
						|
        on-error="_handleError"
 | 
						|
        debounce-duration="300"></iron-ajax>
 | 
						|
  </template>
 | 
						|
  <script>
 | 
						|
  (function() {
 | 
						|
    'use strict';
 | 
						|
 | 
						|
    Polymer({
 | 
						|
      is: 'gr-ajax',
 | 
						|
 | 
						|
      /**
 | 
						|
       * Fired when a response is received.
 | 
						|
       *
 | 
						|
       * @event response
 | 
						|
       */
 | 
						|
 | 
						|
      /**
 | 
						|
       * Fired when an error is received.
 | 
						|
       *
 | 
						|
       * @event error
 | 
						|
       */
 | 
						|
 | 
						|
      hostAttributes: {
 | 
						|
        hidden: true
 | 
						|
      },
 | 
						|
 | 
						|
      properties: {
 | 
						|
        auto: {
 | 
						|
          type: Boolean,
 | 
						|
          value: false,
 | 
						|
        },
 | 
						|
        url: String,
 | 
						|
        params: {
 | 
						|
          type: Object,
 | 
						|
          value: function() {
 | 
						|
            return {};
 | 
						|
          },
 | 
						|
        },
 | 
						|
        lastResponse: {
 | 
						|
          type: Object,
 | 
						|
          notify: true,
 | 
						|
        },
 | 
						|
        loading: {
 | 
						|
          type: Boolean,
 | 
						|
          notify: true,
 | 
						|
        },
 | 
						|
      },
 | 
						|
 | 
						|
      ready: function() {
 | 
						|
        // Used for debugging which element a request came from.
 | 
						|
        var headers = this.$.xhr.headers;
 | 
						|
        headers['x-requesting-element-id'] = this.id || 'gr-ajax (no id)';
 | 
						|
        this.$.xhr.headers = headers;
 | 
						|
      },
 | 
						|
 | 
						|
      generateRequest: function() {
 | 
						|
        return this.$.xhr.generateRequest();
 | 
						|
      },
 | 
						|
 | 
						|
      _handleResponse: function(e, req) {
 | 
						|
        this.fire('response', req, {bubbles: false});
 | 
						|
      },
 | 
						|
 | 
						|
      _handleError: function(e, req) {
 | 
						|
        this.fire('error', req, {bubbles: false});
 | 
						|
      },
 | 
						|
 | 
						|
    });
 | 
						|
  })();
 | 
						|
  </script>
 | 
						|
</dom-module>
 |