aboutsummaryrefslogtreecommitdiff
path: root/contexts/data/lib/closure-library/closure/goog/ui/ac/remotearraymatcher.js
diff options
context:
space:
mode:
Diffstat (limited to 'contexts/data/lib/closure-library/closure/goog/ui/ac/remotearraymatcher.js')
-rw-r--r--contexts/data/lib/closure-library/closure/goog/ui/ac/remotearraymatcher.js270
1 files changed, 0 insertions, 270 deletions
diff --git a/contexts/data/lib/closure-library/closure/goog/ui/ac/remotearraymatcher.js b/contexts/data/lib/closure-library/closure/goog/ui/ac/remotearraymatcher.js
deleted file mode 100644
index 248c4f4..0000000
--- a/contexts/data/lib/closure-library/closure/goog/ui/ac/remotearraymatcher.js
+++ /dev/null
@@ -1,270 +0,0 @@
-// Copyright 2007 The Closure Library Authors. All Rights Reserved.
-//
-// 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.
-
-/**
- * @fileoverview Class that retrieves autocomplete matches via an ajax call.
- *
- */
-
-goog.provide('goog.ui.ac.RemoteArrayMatcher');
-
-goog.require('goog.Disposable');
-goog.require('goog.Uri');
-goog.require('goog.events');
-goog.require('goog.json');
-goog.require('goog.net.XhrIo');
-
-
-
-/**
- * An array matcher that requests matches via ajax.
- * @param {string} url The Uri which generates the auto complete matches. The
- * search term is passed to the server as the 'token' query param.
- * @param {boolean=} opt_noSimilar If true, request that the server does not do
- * similarity matches for the input token against the dictionary.
- * The value is sent to the server as the 'use_similar' query param which is
- * either "1" (opt_noSimilar==false) or "0" (opt_noSimilar==true).
- * @constructor
- * @extends {goog.Disposable}
- */
-goog.ui.ac.RemoteArrayMatcher = function(url, opt_noSimilar) {
- goog.Disposable.call(this);
-
- /**
- * The base URL for the ajax call. The token and max_matches are added as
- * query params.
- * @type {string}
- * @private
- */
- this.url_ = url;
-
- /**
- * Whether similar matches should be found as well. This is sent as a hint
- * to the server only.
- * @type {boolean}
- * @private
- */
- this.useSimilar_ = !opt_noSimilar;
-
- /**
- * The XhrIo object used for making remote requests. When a new request
- * is made, the current one is aborted and the new one sent.
- * @type {goog.net.XhrIo}
- * @private
- */
- this.xhr_ = new goog.net.XhrIo();
-};
-goog.inherits(goog.ui.ac.RemoteArrayMatcher, goog.Disposable);
-
-
-/**
- * The HTTP send method (GET, POST) to use when making the ajax call.
- * @type {string}
- * @private
- */
-goog.ui.ac.RemoteArrayMatcher.prototype.method_ = 'GET';
-
-
-/**
- * Data to submit during a POST.
- * @type {string|undefined}
- * @private
- */
-goog.ui.ac.RemoteArrayMatcher.prototype.content_ = undefined;
-
-
-/**
- * Headers to send with every HTTP request.
- * @type {Object|goog.structs.Map}
- * @private
- */
-goog.ui.ac.RemoteArrayMatcher.prototype.headers_ = null;
-
-
-/**
- * Key to the listener on XHR. Used to clear previous listeners.
- * @type {?number}
- * @private
- */
-goog.ui.ac.RemoteArrayMatcher.prototype.lastListenerKey_ = null;
-
-
-/**
- * Set the send method ("GET", "POST").
- * @param {string} method The send method; default: GET.
- */
-goog.ui.ac.RemoteArrayMatcher.prototype.setMethod = function(method) {
- this.method_ = method;
-};
-
-
-/**
- * Set the post data.
- * @param {string} content Post data.
- */
-goog.ui.ac.RemoteArrayMatcher.prototype.setContent = function(content) {
- this.content_ = content;
-};
-
-
-/**
- * Set the HTTP headers.
- * @param {Object|goog.structs.Map} headers Map of headers to add to the
- * request.
- */
-goog.ui.ac.RemoteArrayMatcher.prototype.setHeaders = function(headers) {
- this.headers_ = headers;
-};
-
-
-/**
- * Set the timeout interval.
- * @param {number} interval Number of milliseconds after which an
- * incomplete request will be aborted; 0 means no timeout is set.
- */
-goog.ui.ac.RemoteArrayMatcher.prototype.setTimeoutInterval =
- function(interval) {
- this.xhr_.setTimeoutInterval(interval);
-};
-
-
-/**
- * Builds a complete GET-style URL, given the base URI and autocomplete related
- * parameter values.
- * <b>Override this to build any customized lookup URLs.</b>
- * <b>Can be used to change request method and any post content as well.</b>
- * @param {string} uri The base URI of the request target.
- * @param {string} token Current token in autocomplete.
- * @param {number} maxMatches Maximum number of matches required.
- * @param {boolean} useSimilar A hint to the server.
- * @param {string=} opt_fullString Complete text in the input element.
- * @return {?string} The complete url. Return null if no request should be sent.
- * @protected
- */
-goog.ui.ac.RemoteArrayMatcher.prototype.buildUrl = function(uri,
- token, maxMatches, useSimilar, opt_fullString) {
- var url = new goog.Uri(uri);
- url.setParameterValue('token', token);
- url.setParameterValue('max_matches', String(maxMatches));
- url.setParameterValue('use_similar', String(Number(useSimilar)));
- return url.toString();
-};
-
-
-/**
- * Returns whether the suggestions should be updated?
- * <b>Override this to prevent updates eg - when token is empty.</b>
- * @param {string} uri The base URI of the request target.
- * @param {string} token Current token in autocomplete.
- * @param {number} maxMatches Maximum number of matches required.
- * @param {boolean} useSimilar A hint to the server.
- * @param {string=} opt_fullString Complete text in the input element.
- * @return {boolean} Whether new matches be requested.
- * @protected
- */
-goog.ui.ac.RemoteArrayMatcher.prototype.shouldRequestMatches =
- function(uri, token, maxMatches, useSimilar, opt_fullString) {
- return true;
-};
-
-
-/**
- * Parses and retrieves the array of suggestions from XHR response.
- * <b>Override this if the response is not a simple JSON array.</b>
- * @param {string} responseText The XHR response text.
- * @return {Array.<string>} The array of suggestions.
- * @protected
- */
-goog.ui.ac.RemoteArrayMatcher.prototype.parseResponseText = function(
- responseText) {
-
- var matches = [];
- // If there is no response text, unsafeParse will throw a syntax error.
- if (responseText) {
- /** @preserveTry */
- try {
- matches = goog.json.unsafeParse(responseText);
- } catch (exception) {
- }
- }
- return /** @type {Array.<string>} */ (matches);
-};
-
-
-/**
- * Handles the XHR response.
- * @param {string} token The XHR autocomplete token.
- * @param {Function} matchHandler The AutoComplete match handler.
- * @param {goog.events.Event} event The XHR success event.
- */
-goog.ui.ac.RemoteArrayMatcher.prototype.xhrCallback = function(token,
- matchHandler, event) {
- var text = event.target.getResponseText();
- matchHandler(token, this.parseResponseText(text));
-};
-
-
-/**
- * Retrieve a set of matching rows from the server via ajax.
- * @param {string} token The text that should be matched; passed to the server
- * as the 'token' query param.
- * @param {number} maxMatches The maximum number of matches requested from the
- * server; passed as the 'max_matches' query param. The server is
- * responsible for limiting the number of matches that are returned.
- * @param {Function} matchHandler Callback to execute on the result after
- * matching.
- * @param {string=} opt_fullString The full string from the input box.
- */
-goog.ui.ac.RemoteArrayMatcher.prototype.requestMatchingRows =
- function(token, maxMatches, matchHandler, opt_fullString) {
-
- if (!this.shouldRequestMatches(this.url_, token, maxMatches, this.useSimilar_,
- opt_fullString)) {
- return;
- }
- // Set the query params on the URL.
- var url = this.buildUrl(this.url_, token, maxMatches, this.useSimilar_,
- opt_fullString);
- if (!url) {
- // Do nothing if there is no URL.
- return;
- }
-
- // The callback evals the server response and calls the match handler on
- // the array of matches.
- var callback = goog.bind(this.xhrCallback, this, token, matchHandler);
-
- // Abort the current request and issue the new one; prevent requests from
- // being queued up by the browser with a slow server
- if (this.xhr_.isActive()) {
- this.xhr_.abort();
- }
- // This ensures if previous XHR is aborted or ends with error, the
- // corresponding success-callbacks are cleared.
- if (this.lastListenerKey_) {
- goog.events.unlistenByKey(this.lastListenerKey_);
- }
- // Listen once ensures successful callback gets cleared by itself.
- this.lastListenerKey_ = goog.events.listenOnce(this.xhr_,
- goog.net.EventType.SUCCESS, callback);
- this.xhr_.send(url, this.method_, this.content_, this.headers_);
-};
-
-
-/** @override */
-goog.ui.ac.RemoteArrayMatcher.prototype.disposeInternal = function() {
- this.xhr_.dispose();
- goog.ui.ac.RemoteArrayMatcher.superClass_.disposeInternal.call(
- this);
-};