~azzar1/unity/add-show-desktop-key

« back to all changes in this revision

Viewing changes to www/media/common/util.js

  • Committer: mattgiuca
  • Date: 2008-01-11 04:06:24 UTC
  • Revision ID: svn-v3-trunk0:2b9c9e99-6f39-0410-b283-7f802c844ae2:trunk:177
util: Split the creation of the query string in build_url into
make_query_string.
ajax_call now just calls make_query_string directly in a POST request.

Show diffs side-by-side

added added

removed removed

Lines of Context:
190
190
    return obj;
191
191
}
192
192
 
 
193
/** Builds a query_string from an args object. Encodes the arguments.
 
194
 * \param args Args object as described in parse_url.
 
195
 * \return Query string portion of a URL.
 
196
 */
 
197
function make_query_string(args)
 
198
{
 
199
    var query_string = "";
 
200
    var arg_val;
 
201
    for (var arg_key in args)
 
202
    {
 
203
        arg_val = args[arg_key];
 
204
        if (arg_val instanceof Array)
 
205
            for (var i=0; i<arg_val.length; i++)
 
206
                query_string += "&" + encodeURIComponent(arg_key) + "=" +
 
207
                    encodeURIComponent(arg_val[i]);
 
208
        else
 
209
            query_string += "&" + encodeURIComponent(arg_key) + "=" +
 
210
                encodeURIComponent(arg_val);
 
211
    }
 
212
    if (query_string == "")
 
213
        query_string = null;
 
214
    else
 
215
        /* Drop the first "&" */
 
216
        query_string = query_string.substr(1);
 
217
 
 
218
    return query_string;
 
219
}
 
220
 
193
221
/** Given an object exactly of the form described for the output of parseurl,
194
222
 * returns a URL string built from those parameters. The URL is properly
195
223
 * encoded.
222
250
    if (("query_string" in obj) && obj.query_string != null)
223
251
        query_string = obj.query_string.toString();
224
252
    else if (("args" in obj) && obj.args != null)
225
 
    {
226
 
        query_string = "";
227
 
        var arg_val;
228
 
        for (var arg_key in obj.args)
229
 
        {
230
 
            arg_val = obj.args[arg_key];
231
 
            if (arg_val instanceof Array)
232
 
                for (var i=0; i<arg_val.length; i++)
233
 
                    query_string += "&" + encodeURIComponent(arg_key) + "=" +
234
 
                        encodeURIComponent(arg_val[i]);
235
 
            else
236
 
                query_string += "&" + encodeURIComponent(arg_key) + "=" +
237
 
                    encodeURIComponent(arg_val);
238
 
        }
239
 
        if (query_string == "")
240
 
            query_string = null;
241
 
        else
242
 
            /* Drop the first "&" */
243
 
            query_string = query_string.substr(1);
244
 
    }
 
253
        query_string = make_query_string(obj.args);
245
254
 
246
255
    if (query_string != null)
247
256
        url += "?" + query_string;
362
371
        xhr.open(method, url, false);
363
372
        xhr.setRequestHeader("Content-Type",
364
373
            "application/x-www-form-urlencoded");
365
 
        var message = build_url({"args": args}).substr(1); /* Remove "?" */
 
374
        var message = make_query_string(args);
366
375
        xhr.send(message);
367
376
    }
368
377
    return xhr;